通过查询更新基于另一个组合框的组合框
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 可能更容易。
我有几个组合框 (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 可能更容易。