2017-04-06 7 views
1

Ms Wordデータベースフィールドは、データベーステーブルの結果をWordテーブルに挿入します。MS AccessおよびVBAを使用してMs Word文書のフィールドコード(データベース)フィールドを更新する

VBAを使用してmsワードでテーブルを作成したい、私はすでにVBA MsAccessを使用していました& MsWordブックマーク、データからのテンプレートはドキュメントを非常に難しくします。私はMSwordがデータベースを挿入するオプションを持っていることを発見し、あなたがmsaccessのデータを実現し、更新の間にあらかじめ作成したものを保存できるようにします。 次データベースフィールドDatabaseコマンドを使用してODBC経由で私のAccessデータベースからクエリからコード結果:

{DATABASEの\ dの "C:World.odcをテストするには、\マイデータソース\" \ C "Provider = MSDASQL.1; Security Info = True; Extended プロパティ= \" DSN = MS Accessデータベース; DBQ = H:\ CIP BOOK \ CIP2.accdb; DefaultDir = H:\ CIP BOOK; DriverId = 25; FIL = MS アクセス;のMaxBufferSize = 2048; PageTimeoutと= 5; \ ";初期カタログ= H:\ CIP BOOK \ CIP2.accdb" \ s「のDescriptionTAEntry Title、 を選択 ((Project_id = 'PCP13ZOOA06'))」の\ L "26私のwdFieldDatabaseまず

} 191 "\さh *のMERGEFORMAT " \ b" はインデックスフィールド(インデックス)を有する qryTransactions ExtendedWordFill_test FROMインデックス番号(Fieldオブジェクト)です。インデックス番号は、フィールドを追加する場合、私はこの例Fields.Add方法(ワード) を見つけ、選択中のフィールドの位置を表し範囲、または文書

第二のListNum

Selection.Collapse Direction:=wdCollapseEnd 
ActiveDocument.Fields.Add Range:=Selection.Range, _ 
Type:=**wdFieldListNum**, Text:="\s 3" 

何I VBAコードを(フィールドコード:データベースフィールド)のインデックスを使用して更新し、(Project_id = 'PCP13ZOOA06)を変更します。他の選択肢は、VBAでコードを作成して特定の範囲のデータベース、文書の場所を追加することができます。私はアクセスからこれを管理したい、アイデアは2oo以上のプロジェクトのための経費のテーブルを使ってステータスレポートを作成することです。

Field codes: Database field

答えて

1

私は今それをテストしていないが、あなたのために、この作品のようなものではないでしょうか?

Option Explicit 

Public Sub UpdateDatabaseField() 
    Dim fldTarget As Field: Set fldTarget = ActiveDocument.Fields(1) ' TODO: Find your field based on your knowledge of your document 
    Dim strProjectIdNew As String: strProjectIdNew = "123456" ' TODO: Determine new project code 

    Dim strCodeOld As String: strCodeOld = fldTarget.Code.Text 
    Dim ixBegin As Long: ixBegin = InStr(1, strCodeOld, "Project_id") + Len("Project_id") 
    Dim ixEnd As Long: ixEnd = InStr(ixBegin, strCodeOld, ")") 
    Dim strCodeNew As String: strCodeNew = Left(strCodeOld, ixBegin) & "='" & strProjectIdNew & "'" & Mid(strCodeOld, ixEnd) 
    fldTarget.Code.Text = strCodeNew 
End Sub 

最終的なコード:0 - - レン( "PROJECT_ID")に1

Public Sub UpdateDatabaseField() 
Dim fldTarget As Field: Set fldTarget = ActiveDocument.Fields(1) ' TODO: Find your field based on your knowledge of your document 
Dim strProjectIdNew As String: strProjectIdNew = "PCP13ZOOA08" ' TODO: Determine new project code 

Dim strCodeOld As String: strCodeOld = fldTarget.Code.Text 
Dim ixBegin As Long: ixBegin = InStr(1, strCodeOld, "Project_id") + Len("Project_id") - 0 
Dim ixEnd As Long: ixEnd = InStr(ixBegin, strCodeOld, ")") 
Dim strCodeNew As String: strCodeNew = Left(strCodeOld, ixBegin) & "='" & strProjectIdNew & "'" & Mid(strCodeOld, ixEnd) 
fldTarget.Code.Text = strCodeNew 
ActiveDocument.Fields(1).Update 

End Subの

+0

が仕事ですが、私は唯一レン( "PROJECT_ID")を修正します –

関連する問題