5

完成したフォームからデータをインポートするように Access データベースをプログラミングすることを目的として、Word .docm (マクロが有効な Word 2013 doc) でフォームを作成しています。ユーザー入力を受け取るために textBox コントロールとomboBox コントロールを配置しましたが、データを取り戻すことができません。

私が見た例では、Document.FormFieldsコレクションを (Word で) 次のように使用しています。

Dim fld as FormField
for each fld in ActiveDocument.FormFields
    Debug.Print fld.Name & " - " & fld.Result.Text
next

ただし、私のドキュメントDocument.FormFieldsは空ですがDocument.Fields、フォーム内のコントロールの数である 19 個の要素があります。これは素晴らしいことですが、Fieldオブジェクトを使用してコントロールの名前や値を取得できないようです。Field.Result.Textは常に空白で、Field.Name属性はありません。

Fieldでは、オブジェクトとオブジェクトの違いは何ですか?また、私が見たすべての例で使用されているのにFormField、なぜ私のコントロールが表示されるのでしょうか?FieldsFormFields

間違ったフォーム コントロールを使用していませんか? レガシー コントロール、ActiveX コントロール、およびコンテンツ コントロールの 3 種類があります (これがばかげていると思うのは私だけではないと思います)。ActiveX タイプを使用しています。

4

3 に答える 3

1

現在持っているフィールドを使用することだけが必要な場合は、OLEFormat.Object から値または名前を取得できます。

Application.ActiveDocument.Fields.Item(1).OLEFormat.Object.Value

または

Application.ActiveDocument.Fields.Item(1).OLEFormat.Object.Name

ただし、ActiveX コントロールを避けることを推奨する Chris の意見には同意します。Microsoft が言うように、非常に特殊な場合を除いて、Word フォームの最適な選択ではない理由はたくさんあります。

于 2013-10-30T19:58:14.430 に答える