Access 2013:クエリ結果からフォーム フィールドを更新するマクロを作成しようとしています

Access 2013:クエリ結果からフォーム フィールドを更新するマクロを作成しようとしています

クエリの結果に基づいてフォーム内のフィールドの値を更新するマクロを作成しようとしています。

私は Access で vba を操作するのがまったく初めてなので、基本的な質問をしている場合はお詫びします。

「test」クエリは正確に 1 つの結果を返すことに注意してください。これは基本的に VLookup と同様に使用されます。

現在私のコードは次のとおりです:

Private Sub UpdateBasic_Click()
  Dim bucket As String
  DoCmd.OpenQuery "test", acViewNormal, acReadOnly
  'this line is meant to record the result of the query into a variable. It is not working but I haven’t found the right command to get it to pick up the data yet.
  bucket = A1
  DoCmd.Close acQuery, "test", acSaveNo
  DoCmd.OpenForm "BasicData", acNormal, , , acFormEdit, acWindowNormal, "Global_ID = 'sdkfa'"
  'this line is meant to update the value of the field on the form.
  DoCmd.SetProperty testfield, acPropertyValue, bucket
End Sub

SetProperty コマンドがまったく機能しません。bucket のような変数を指定しようとしても、10 のような値を指定しようとしても、常にデータ型が一致しないというメッセージが表示されます。エラー メッセージは次のとおりです。

実行時エラー '2948': 入力した式のデータ型が、引数の 1 つに対して間違っています。

どのような助けでもいただければ幸いです。

答え1

DoCmd.SetProperty testfield, acPropertyValue, bucket

上記のコードを使用して、propertyコントロールのために、変更しないvalueプロパティは背景色、高さ、幅などです。

me値を設定する場合は、フォーム上のコントロールを参照する関数を使用するだけです。

me.testfield = bucket

testfieldこれは、変数によって保持されている値を、名前が付けられたフォーム コントロールに入力するようにアクセスに指示しますbucket

me.refresh注:フォームのフィールドを更新するには、その後にコマンドを追加する必要がある場合があります。

関連情報