
我正在嘗試建立一個巨集來根據查詢結果更新表單中欄位的值。
我對在 Access 中使用 vba 完全陌生,所以如果我問一個基本問題,我深表歉意。
我應該提到,“測試”查詢僅傳回一個結果。它的使用本質上與 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
DoCmd.SetProperty testfield, acPropertyValue, bucket
使用上面的程式碼,您嘗試設定property
對於控制,不改變value
。屬性可以是背景顏色、高度、寬度等。
如果要設定該值,您只需使用該me
函數來引用表單上的控制項即可。
me.testfield = bucket
這告訴訪問填充testfield
以變數保存的值命名的表單控制項bucket
。
注意:您可能需要在該命令之後新增一個me.refresh
命令來取得表單以更新欄位。