通过查询

时间:2015-08-14 19:43:13

标签: vba ms-access ms-access-2010

我从访问数据库中填充了几个组合框(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)

谢谢。

1 个答案:

答案 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可能更容易。