我有两个表共享研究方案标题(字符串)。在一个表格"研究事件"中,我存储了与每个研究方案相关的报销信息,但我们关注的是两列,"协议"和" EventDefinition"。在此表中,我可以定义多个"事件"单一研究方案。
在另一个表格"研究访问和交互"中,我有与研究事件发生时间相关的信息,并为最终用户开发了一个输入该数据的表格。在该形式中,存在组合框,#34;研究协议",其允许用户从数据库中的唯一协议列表中进行选择。然后我有第二个组合框,我想填充" EventDefinition"可用于所选协议的字段。
我对我的RowSource语句使用以下查询:
SELECT [Study Events].EventDefinition
FROM [Study Events]
WHERE Protocol= [Me].[Study Protocol];
当我在编辑器中将[Study Protocol]定义为协议名称之一时,查询将返回正确的信息。但是当我以实际形式尝试时,没有任何回报。
如果在ControlSource表中将字符串定义为字符串,我是否使用了不正确的语法来引用Combobox值?
答案 0 :(得分:0)
要根据第一个组合框的选择过滤第二个组合框,您需要一些VBA代码在第一个组合框更改时刷新第二个组合框。
以下假定第一个组合框名称为cboStudyProtocol
,第二个为cboEventDefinition
。
cboEventDefinition的RowSource
应类似于以下内容:
SELECT [Study Events].EventDefinition
FROM [Study Events]
WHERE Protocol = [cboStudyProtocol];
然后,为第二个组合框添加一个事件:
Private Sub cboStudyProtocol_AfterUpdate()
cboEventDefinition.Requery
End Sub
当第一个组合框中的选择发生更改时,这会更新第二个组合框中的值列表。