访问:仅使用与该行对应的一个项目填充列表框

时间:2015-01-22 11:52:13

标签: ms-access listbox

我有一个MS-Access表单,其中列表框绑定到表。表中的两列是“作者姓名”和“书籍”。我有一个显示作者姓名的文本字段和一个应该列出与该作者相对应的书籍的列表框。但是当我执行时,所有作者的书籍都会显示给每个作者。

如何显示仅属于特定作者的图书?我可以对此进行任何查询吗?

Author                        Book
 aaa                          Book1
 aaa                          Book2
 bbb                          Book3
 ccc                          Book4

以上是示例表结构。对于带有作者'aaa'的文本框,我想要一个只有他的书(即)book1和book2的列表框。但是我把所有的书都展示出来了。

1 个答案:

答案 0 :(得分:1)

假设您的文本框名为 myTextBox ,您的下拉列表名为 myList ,您的表单名为 myForm ,您的表名为 myTable的

转到myForm的设计视图。右键单击myList,转到属性表,转到“数据”选项卡,转到“数据集源”(应该调用类似的东西......我在德语中使用Access)。转到查询的SQL视图,该视图是myList的源。声明看起来像这样:

SELECT Authorname, Books
FROM myTable
WHERE Authorname = [Forms]![myForm]![myTextBox];

确保绑定列(也在“数据”选项卡下)为2

还要确保“格式”选项卡下的“列数”为2,“列宽”为0; 5cm

然后右键单击myTextBox,转到属性表,在“事件”选项卡下,单击“AfterUpdate”,选择“VBA代码”。 VBA代码应如下所示:

Private Sub myTextBox_AfterUpdate()
Me.myList = Null
Me.myList.Requery
End Sub

这应该有效,但我并不认为这是最有效的解决方案