我在 ms access 2010 数据库中有一个客户表,包括 CustomerID、FullName、Address、City、StateProvince、PostalCode 等。
我想设置一个包含两个子表单的主表单。ListSubForm 只有一个全名列表,用户可以通过在文本框中输入来过滤。DetailSubForm 然后为用户从 ListSubForm 的过滤列表中选择的特定客户打印出地址、城市、州省、邮政编码等内容。
我在网上可以找到的所有示例都是针对 Master/Detail 子表单的,其中 master 和 detail 是两个不同的表,具有一对多的关系。那不是我想要的。谁能指出我基于同一张表设置主/详细子表单的说明?一个子表单只是提供有关从第一个子表单中选择的特定记录的更多详细信息?
或者,如果您没有指向工作示例的链接,至少请告诉我如何设置它?我想避免对 VBA 太深入,因为我是新手。我更喜欢可以使用简单宏进行设置的东西。
以下是设计视图中 MainForm 上的两个子窗体:
以下是表单视图中 MainForm 上的两个子表单:
这是单击 ClientListForm 属性表中 On Current Event 旁边的 ... 按钮的结果:
我从这里去哪里?
编辑:
我按照 Yawar 的建议创建了一个拆分表格。它允许用户选择一个客户,然后在左侧更详细地显示其数据,但它看起来像这样:
数据表很丑陋,而且数据表不可过滤,因此用户必须浏览数千条记录。有没有办法让它看起来不是左边的数据表?也许一开始就不让它成为数据表?在我上面的原始示例中,带有文本框过滤器的连续表单看起来不错。此外,有没有办法使左侧的客户列表可过滤,以便用户可以输入客户的姓名,然后能够将客户列表缩小为仅具有所需名称的客户列表?
第二次编辑:
在 Yawar 的编辑之后,我再次按照组合框的说明再次收到错误消息。此外,这种方法也存在问题,因为它是一个下拉列表,不会一次显示所有选项,而且组合框也没有像我在上面的原始帖子中显示的那样被过滤。但是,我将结果发布如下。这是出现的错误消息,请注意右侧的详细信息与左侧选定的客户端不匹配:
如果单击上图中的调试按钮,您将被定向到以下代码行:
为了更好地衡量,这里是基础表的部分数据表的图像,以表明字段名称是正确的:
第三次编辑:
我更改了代码以匹配 Yawar 的新建议,并在尝试更改组合框的选择时收到以下错误消息:
当我单击调试按钮时,它给了我以下信息: