我从访问数据库中填充了几个组合框(CB)。它们都从同一个表中拉出来并使用表中相同的隐藏主键。当我从其中一个CB中选择一个值时,我希望根据匹配的主键更新其他值和相关值。
这可能吗?
我一直尝试使用以下各种变体,但没有成功:
Dim strSQL As String
strSQL = "SELECT gsr_id FROM task WHERE task_wid = " & Me.cboTask.Column(0)
Me.cboGSRTask.Section = CurrentDb.OpenRecordset(strSQL)
Debug.Print "SELECT gsr_id FROM task WHERE task_wid = " & Me.cboTask.Column(0)
谢谢。
答案 0 :(得分:1)
如果打开记录集,则需要从中读取值,不能将记录集用作值。 我想你要找的是:
Dim strSQL As String
Dim RS As Recordset
strSQL = "SELECT gsr_id FROM task WHERE task_wid = " & Me.cboTask.Column(0)
Set RS = CurrentDb.OpenRecordset(strSQL)
' This assumes that gsr_id is the bound column of cboGSRTask
Me.cboGSRTask = RS!gsr_id
RS.Close
或者以上所有,使用DLookup():
Me.cboGSRTask = DLookup("gsr_id", "task", "task_wid = " & Me.cboTask.Column(0))
或者将gsr_id
添加到cboTask的行源(作为宽度为0的列)并使用该列分配给cboGSRTask可能更容易。