你的想法不错。
因此,假设您构建了一个表单(继续项目)。设置它 - 让它看起来很好。该表格当然将是您的子表格。您现在创建该主窗体。这个主窗体只需要顶部的那个文本框。底部可以是子窗体。
那么,如果这是为了发票?然后我们使用完全匹配。
在文本框(或您的“搜索”按钮)的更新后事件中,您可以使用以下代码:
Dim strSQL As String
strSQL = "select * from tblInvoices WHERE InvoiceNumber = " & Me.Text26
Me.MySubForm.Form.RecordSource = strSQL
现在,上面是一个数字列。
但是,如果是说公司名称?那么你必须这样写:
Dim strSQL As String
strSQL = "select * from tblCustomers WHERE CompanyName LIKE '" & Me.Text26 & "*'"
Me.MySubForm.Form.RecordSource = strSQL
注意关闭,如何用 ' (单引号)包围结果。
但是,为了完全匹配,我使用了“like”。所以上面将匹配公司名称的开头。 (搜索要好一些)。
所以
如果您输入的是 North
然后它会匹配
北溪啤酒
北极光剧院等
而且你可以变得很花哨。这是一个表单和子表单,我使用了上述方法。用户输入 Smi(代表 smith),我会显示如下搜索结果:
在多个项目子表单上,我还放置了一个按钮(眼镜图标)。当用户单击该按钮时,我会启动该 ONE 记录的主编辑表单。
那个按钮背后的代码?
我用这个:
docmd.OpenForm "frmCustomer",,,"ID = " & me!id
因此,您可以通过构建一个漂亮的搜索表单来真正提高易用性。另一个非常好的特性是它的工作速度非常快——即使在非常大的桌子上也是如此。那么,如果你有 500,000 甚至 100 万行呢?如果结果集很小,搜索将非常快。然后有了点击按钮的想法,你就有了一个漂亮的用户界面。
大多数应用程序 - 甚至是谷歌?
你搜索
你显示结果
你让用户选择。
从网络到会计软件包,或者您将使用的任何软件?他们都遵循这种设计模式。
此外,一旦你构建了那个漂亮的子表单(比如一个继续项目表单)。作为最后一步,我将删除此子表单所基于的数据源(表)。这样,当您开始时,表单(现在是主搜索表单上的子表单)将不会显示或包含任何数据 - 因此整个表单/子表单将在您开始搜索之前快速加载。