首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据当前表单中的另一个下拉列表选项从下拉列表中删除列表项

如何根据当前表单中的另一个下拉列表选项从下拉列表中删除列表项
EN

Stack Overflow用户
提问于 2013-12-24 02:28:01
回答 2查看 2K关注 0票数 0

我的“添加医生”表单中有两个下拉列表。一个用于选择大学,另一个用于选择系。我想让系(有6个列表项)列表项根据所选的大学(有2个列表项)进行更改。如果用户选择了另一所大学,我还想让选择重置部门下拉列表。

如果艾伯塔大学被选中,我想从系下拉列表中删除“神经学”和“物理医学与康复”。

这是我到目前为止所用的代码:

代码语言:javascript
复制
Private Sub cboUniversity_AfterUpdate()
On Error GoTo err_trap

If Me.cboUniversity = "University of Alberta" Then
    Me.cboDepartment.RemoveItem "Neurology"
    Me.cboDepartment.RemoveItem "Physical Medicine & Rehabilitation"
End If

err_trap_exit:
    Exit Sub

err_trap:
    MsgBox "The following error has occurred: " & Err.Number & " - " & Err.Description     & " - University - After Update"
    Resume err_trap_exit

End Sub

我已经在cboUniversity Change、AfterUpdate和LostFocus事件以及cboDepartment Change事件上尝试过它,虽然我没有收到任何错误消息,但它实际上并没有从部门下拉列表中删除两个列表项“神经病学”和“物理医学和康复”。我做错了什么或遗漏了什么?

我也不知道如何让它重置,如果在大学下拉列表中的选择发生了变化?

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2013-12-24 04:53:42

如果您的cboUniversity_AfterUpdate过程不是从cboDepartment中删除项,而是相应地更改cboDepartment的行源-例如

代码语言:javascript
复制
Private Sub cboUniversity_AfterUpdate()
    if cboUniversity = "University of Alberta" then
        cboDepartment.RowSource = ... 'New ValueList, or New SQL which omits the unwanted departments
    else
        cboDepartment.RowSource = ...
    end if
end sub
票数 0
EN

Stack Overflow用户

发布于 2013-12-24 04:54:15

有两种方法可以填充#2组合框。

  1. 您可以将其作为值列表的基础,并对该列表进行修订。
  2. 可能更有用的是,在这种情况下,您可以将#2组合框建立在查询的基础上,并过滤其结果(或以其他方式修改查询)。

任何一种解决方案都比RemoveItem更有意义(我不确定它是否存在,真的……听起来像是来自DOM操作)。

使用说明可能会有所帮助:access.mvps.org/access/forms/frm0028.htm

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20749150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档