我有一個參數查詢(粉紅色)的Access窗體。這裏是我的形式:訪問:將值傳遞給使用VBA的參數查詢?
當用戶選擇一個物種,Access使用由選項組(稱爲「speciesSelection」)在表中查找該品種名稱產生的號碼,它的工作原理。但是,我想將物種名稱傳遞給參數查詢,以便記錄集可以是突出顯示的組合框(Combo12)的數據源。但是,當我選擇一個物種時,組合框是空白的。這裏是我的代碼:
Private Sub speciesSelection_AfterUpdate()
Dim dbs As Database
Dim qdf As QueryDef
Dim rst As Recordset
Set dbs = CurrentDb
'Get species name of the current Cases instance'
Dim speciesChosen As String
speciesChosen = DLookup("Species", "tblSpeciesList", "ID=" & speciesSelection)
'Get the parameter query
Set qdf = dbs.QueryDefs("qryClinicalObservations")
'Supply the parameter value
qdf.Parameters("enterSpecies") = speciesChosen
'Open a Recordset based on the parameter query
Forms!inputForm.Controls!Combo12.RowSource = qdf.OpenRecordset()
End Sub
我使用嚮導創建了我的查詢。這裏是一個快照:
在條件部分,我可以提示(例如,「貓」)時手動輸入一個物種,和它的工作原理。但不是用我的VBA代碼...
是否有明顯的錯誤?看來Combo12不被識別。
編輯:
這是我的新代碼。實際上,Combo12是一個名爲viewsSubform的子表單。這是我的代碼和新形式。正如你所看到的,在下拉菜單中,但選項是不可見的:
Private Sub speciesSelection_AfterUpdate()
Dim dbs As Database
Dim qdf As QueryDef
Dim rst As Recordset
Set dbs = CurrentDb
'Get species name of the current Cases instance'
Dim speciesChosen As String
speciesChosen = DLookup("Species", "tblSpeciesList", "ID=" & speciesSelection)
MsgBox (speciesChosen)
'Get the parameter query
Set qdf = dbs.QueryDefs("qryClinicalObservations")
'Supply the parameter value
qdf!enterSpecies = speciesChosen
Set Me!observationsSubform!Combo12.Recordset = qdf.OpenRecordset()
看起來你的組合框有2列,第一個無形,但是你的查詢只返回一列,所以可見的組合框列是空的。 – Andre
@Andre它的工作!像上次! :) – Johnathan