【发布时间】:2013-03-22 13:37:13
【问题描述】:
我们建立了一个数据库,其中包含一个主客户详细信息表单 - 其中有几个与客户访问的服务相关的子表单。我们无法搜索整个子表单字段,因为它只是搜索单个客户的记录,因为链接。
最好的搜索方式是什么?我在想也许在总机上有一个搜索选项,单击该选项后,用户可以选择一个表单,然后自行打开该表单。我该怎么做?
谢谢。
【问题讨论】:
标签: database ms-access search subform
我们建立了一个数据库,其中包含一个主客户详细信息表单 - 其中有几个与客户访问的服务相关的子表单。我们无法搜索整个子表单字段,因为它只是搜索单个客户的记录,因为链接。
最好的搜索方式是什么?我在想也许在总机上有一个搜索选项,单击该选项后,用户可以选择一个表单,然后自行打开该表单。我该怎么做?
谢谢。
【问题讨论】:
标签: database ms-access search subform
我经常在我的许多表单中添加“子表单过滤器”。它通常是一个按钮,它会弹出一个对话框,其中包含“要搜索的字段”下拉菜单和一个用于搜索字符串的文本框。假设您有一个父表 [Student] 和一个相关的子表 [Awards]:
[学生 ID] 数字(长整数)
[AwardName] 文本(255)
学生主窗体可以有一个子窗体显示学生获得的奖项。如果您想过滤学生记录以显示“数学奖”的收件人,那么要应用于 [Students] 表的过滤器将是
[StudentID] IN (SELECT [StudentID] FROM [Awards] WHERE [AwardName]="Math Prize")
对于子字符串搜索,要查找“本周运动员”、“年度女运动员”等的所有收件人,您可以构造一个过滤字符串,如
[StudentID] IN (SELECT [StudentID] FROM [Awards] WHERE [AwardName] LIKE "*athlete*")
【讨论】:
[StudentID] IN (SELECT [StudentID] FROM [Awards] WHERE [TimesAwarded]>1)
DoCmd.OpenForm 打开一个单独的访问表单。我的回答中描述了 that 表单的基本结构。当用户单击OK 按钮时,其On Click 事件中的VBA 代码将构建过滤器字符串并将其返回给主窗体。