通过查询更新基于另一个组合框的组合框

Update combobox based on another combobox through query

我有几个组合框 (CB) 从我的访问数据库中填充。它们都来自同一个 table,并使用来自 table 的相同隐藏主键。当我 select 来自其中一个 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)

谢谢。

如果你打开一个记录集,你需要从中读取一个值,你不能使用记录集作为值。 我猜你要找的是:

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