Access 2013:嘗試編寫巨集以從查詢結果更新表單字段

Access 2013:嘗試編寫巨集以從查詢結果更新表單字段

我正在嘗試建立一個巨集來根據查詢結果更新表單中欄位的值。

我對在 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命令來取得表單以更新欄位。

相關內容