无法让级联组合框工作

Posted

技术标签:

【中文标题】无法让级联组合框工作【英文标题】:Can't get the cascading combo boxes to work 【发布时间】:2015-10-23 16:01:11 【问题描述】:

我正在尝试制作级联组合框,但我似乎无法让它工作。例如,如果我在第一个组合框中选择了一台特定的计算机,那么第二个组合框应该只显示与该计算机兼容的 HDD。我还提供了一个指向我创建的数据库的链接。谁能帮我解决这个问题?

我有 2 个包含字段的表:

tblComputer(计算机) tblHDD(硬盘,计算机)

cboxComputer 行来源: SELECT tblComputer.Computer FROM tblComputer;

cboxHDD 行源: SELECT tblHDD.HDD, tblHDD.Computer FROM tblHDD;

Private Sub cboxComputer_AfterUpdate()
    Me.cboxHDD.RowSource = "SELECT HDD " & _
                           "FROM tblHDD " & _
                           "WHERE Computer = " & Nz(Me.cboxComputer) & _
                           "ORDER BY HDD"
End Sub

https://drive.google.com/file/d/0Bye-M8FI1tRURmQ0MEFzRjBCdWM/view?usp=sharing

【问题讨论】:

什么不起作用? cboxHDD 没有加载吗?有错误信息吗? 很抱歉没有包括错误的内容。第二个组合框不起作用。当我选择第二个组合框时,它显示“查询表达式'Computer = SonyORDER BY HDD'中的语法错误(缺少运算符)。” 【参考方案1】:

数据库中的计算机字段是字符串数据类型。尝试像这样在名称周围加上撇号:

Private Sub cboxComputer_AfterUpdate()
    Me.cboxHDD.RowSource = "SELECT HDD " & _
                       "FROM tblHDD " & _
                       "WHERE Computer = '" & Nz(Me.cboxComputer) & "' " & _
                       "ORDER BY HDD"
End Sub

【讨论】:

我输入它并显示“编译错误:语法错误” 您还需要在结束撇号之后或单词 ORDER 之前留一个空格。我更新了我的答案以解决这个问题。 即使我在单词 ORDER 之前添加了一个空格,我仍然收到相同的错误消息。我还在结束撇号后添加了一个空格。 好的,我省略了最后一个&符号。答案已更新。 太棒了,这行得通!所以如果 cboxComputer 是数字数据,那我就不用撇号和引号了,对吗?

以上是关于无法让级联组合框工作的主要内容,如果未能解决你的问题,请参考以下文章

组合框级联效应不适用于不同的行

ASP.NET MVC 3 级联组合框不起作用

级联组合框不会显示更新的值

访问级联组合框自动填充当留下一个选项时

MS Access - 级联第二个组合框不级联

Access 2010 级联组合框运行时错误 424