如果用户在另一个组合框中选择一个值,请选择组合框的值

时间:2015-07-30 08:26:44

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

我有一个MS Access 2010表单,其中有一个名为cbxClass的组合框和另一个名为cbxCourse的组合框+另一个名为cbxInstitute的组合框。现在,表格通过选择研究所来工作,并且cbxCourse中的所有值根据研究所的变化而变化。 cbxClass也是如此,组合框内的值根据研究所的不同而变化。基本上cbxClass值根据属于该机构的类而变化,现在的问题是,我希望用户能够从cbxClass中选择类,一旦这个事件发生,cbxCourse的选定值就会根据课程注册的课程....一个课程只能注册一门课程,所以只有一个选项,我想在用户从下拉菜单中选择课程时自动选择。

我对MS访问很新,我通常在处理其他事情,而且在配置宏时我没有多少经验。

1 个答案:

答案 0 :(得分:0)

为您的组合框cbxClass创建OnLostFocus事件并添加
cbxCourse.value = findCourse(cbxClass.value)

findCourse将是一个函数,它将相应的课程返回给定的课程,因为只有您知道哪个课程属于给定的课程。每次你离开cbxClass组合框时都会调用它。您也可以使用OnChange事件,然后每次在cbxClass组合框中更改内容时都会执行它。

如果单击cbxClass控件并打开控件属性,应该有一个名为“Events”的选项卡或类似的东西,我只用德语。在该选项卡中应该有OnLostFocus,OnChange,OnAfterUpdate等事件。双击你想要使用的那个,你应该看到这样的事情:

Option Compare Database
Option Explicit

Private Sub cbxClass_AfterUpdate()

End Sub

然后只需添加上面的语句并在AfterUpdate事件之外添加你的findCourse函数,如下所示:

Option Compare Database
Option Explicit

Private Function findCourse(selectedClass as String) As String
    '// do your stuff here
    '// and return your course by using the following:
    findCourse = "theFoundCourse"
End function

Private Sub cbxClass_AfterUpdate()
    cbxCourse.value = findCourse(cbxClass.value)
End Sub