Combobox 级联组合框不更新第二个框选项
我正在使用MS Access 2010存储在我们医院进行的审计记录。我正在尝试创建一个表单,它将根据选择的下拉选项过滤审计 我希望专业组合框从董事会层叠而来,因此,如果我选择家庭和公共卫生董事会,只有该董事会内的专业才会出现在下面的组合框中 我的ComboDirector行源是从tblDirectorate中选择[tblDirectorate].[Director Key],[tblDirectorate].[Director] 我的ComboSpeciality行源是SELECT TBLSSpecialty。[专业键],TBLSSpecialty.Specialty FROM TBLSSpecialty 然后,我更新了ComboDirection的代码:Combobox 级联组合框不更新第二个框选项,combobox,ms-access-2010,Combobox,Ms Access 2010,我正在使用MS Access 2010存储在我们医院进行的审计记录。我正在尝试创建一个表单,它将根据选择的下拉选项过滤审计 我希望专业组合框从董事会层叠而来,因此,如果我选择家庭和公共卫生董事会,只有该董事会内的专业才会出现在下面的组合框中 我的ComboDirector行源是从tblDirectorate中选择[tblDirectorate].[Director Key],[tblDirectorate].[Director] 我的ComboSpeciality行源是SELECT TBLSSp
Private Sub ComboDirectorate_AfterUpdate()
Me.ComboSpecialty.RowSource = _
& "SELECT [tblSpecialty].[Specialty Key], [tblSpecialty].[Specialty]" _
& "FROM tblSpecialty WHERE [tblSpecialty].[Directorate] = " _
& Me.ComboDirectorate
Me.ComboSpecialty.Requery
End Sub
这似乎对列出的专业没有任何影响
我试着按照
但它仍然没有根据所选董事会列出专业。我知道combobox已经损坏,我不得不创建新的combobox。但是,首先检查每个组合框的BoundColumn和ColumnCount属性是否设置正确 确保ComboDirector的值与保存到TBLSSpecialty中的值相同-我假设数值为PK/FK 我会将ComboSource设置为: 选择[Speciality Key],从TBLSSpecialty中选择Speciality,其中董事会=[ComboDirector] 然后我会把代码放在ComboFocus事件中
Sub ComboSpecialty_GotFocus()
Me.ComboSpecialty.Requery
End Sub
请注意,带有查找别名的级联组合框在连续或数据表形式下无法正常工作
建议不使用空格或标点符号/特殊字符下划线命名约定中唯一的例外。我知道combobox已损坏,我必须创建新的combobox。但是,首先检查每个组合框的BoundColumn和ColumnCount属性是否设置正确 确保ComboDirector的值与保存到TBLSSpecialty中的值相同-我假设数值为PK/FK 我会将ComboSource设置为: 选择[Speciality Key],从TBLSSpecialty中选择Speciality,其中董事会=[ComboDirector] 然后我会把代码放在ComboFocus事件中
Sub ComboSpecialty_GotFocus()
Me.ComboSpecialty.Requery
End Sub
请注意,带有查找别名的级联组合框在连续或数据表形式下无法正常工作
建议在命名约定中不要用空格或标点符号/特殊字符下划线,只有例外情况。使用June7的答案,我编写了以下代码:
Private Sub ComboSpecialty_GotFocus()
If IsNull(Me.ComboDirectorate) Then
Me.ComboSpecialty.RowSource = "SELECT [Specialty Key], Specialty FROM tblSpecialty"
ElseIf Not IsNull(Me.ComboDirectorate) Then
Me.ComboSpecialty.RowSource = "SELECT [Specialty Key], Specialty FROM tblSpecialty WHERE Directorate = [ComboDirectorate]"
End If
Me.ComboSpecialty.Requery
End Sub
如果用户没有从第一个组合框ComboDirector中选择值,则所有值都显示在第二个组合框ComboDirector中。如果在第一个框中选择了一个值,则在第二个组合框中仅显示相关值。使用June7的答案,我对以下内容进行了编码:
Private Sub ComboSpecialty_GotFocus()
If IsNull(Me.ComboDirectorate) Then
Me.ComboSpecialty.RowSource = "SELECT [Specialty Key], Specialty FROM tblSpecialty"
ElseIf Not IsNull(Me.ComboDirectorate) Then
Me.ComboSpecialty.RowSource = "SELECT [Specialty Key], Specialty FROM tblSpecialty WHERE Directorate = [ComboDirectorate]"
End If
Me.ComboSpecialty.Requery
End Sub
如果用户没有从第一个组合框ComboDirector中选择值,则所有值都显示在第二个组合框ComboDirector中。如果在第一个框中选择了一个值,则在第二个组合框中仅显示相关值。谢谢您的帮助。是否有办法调整它,以便在未选择董事会时,列出所有专业?目前,按照您的建议设置ComboSpeciality RowSource,如果我没有选择一个项目,专业框中不会显示任何内容。我在想,如果有人不知道该专业所在的董事会,但知道该专业。可能是一些类似于私有子组合专业的代码。\u单击dedirectory=Then Me.comboSpeciality.RowSource=SELECT tblsspecialty。[专业键],tblSpecialty.Specialty FROM tblSpecialty ElseIf Directority然后Me.ComboSpeciality.RowSource=选择[Speciality Key],Specialty FROM tblSpecialty其中Directority=[ComboDirectority]End如果End Sub要允许记录而不包含Directority?是的,如果符合您的需要,请使用代码设置RowSource。谢谢您的帮助。是否有办法调整它,以便在未选择董事会时,列出所有专业?目前,按照您的建议设置ComboSpeciality RowSource,如果我没有选择一个项目,专业框中不会显示任何内容。我在想,如果有人不知道该专业所在的董事会,但知道该专业。可能是一些类似于私有子组合专业的代码。\u单击dedirectory=Then Me.comboSpeciality.RowSource=SELECT tblsspecialty。[专业键],tblSpecialty.Specialty FROM tblSpecialty ElseIf Directority然后Me.ComboSpeciality.RowSource=选择[Speciality Key],Specialty FROM tblSpecialty其中Directority=[ComboDirectority]End如果End Sub要允许记录而不包含Directority?是的,如果符合您的需要,请使用代码设置行源代码。