
クエリの結果に基づいてフォーム内のフィールドの値を更新するマクロを作成しようとしています。
私は 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
注:フォームのフィールドを更新するには、その後にコマンドを追加する必要がある場合があります。