首页 > 解决方案 > 获取 SQL 查询以显示表条目,以便我可以编辑条目

问题描述

我正在使用 Microsoft Access 表单。我的目标是能够在框中输入文本,然后单击搜索按钮,以便我可以基于此文本执行 SQL 查询。我的目标是让这个 SQL 查询产生的条目显示在子表单中,以便我可以编辑表条目中存在的信息。

到目前为止,我已经能够使用 Access 中的 Query 功能来做我想做的事情Me.Browse.SourceObject = "Query.Find Item in Parts Query"Browse 是我的子表单, Find Item in Parts Query 是我的 Query。但是,我不喜欢的是查询来自单独的 Access 查询,并且文本框中的文本未使用。

相反,我希望能够根据我在文本框中输入的文本进行 SQL 查询,并能够轻松地在子表单中编辑这些结果。如果我的问题不清楚,我可以详细说明。这个问题有点开放式,因为我在网上找不到任何可以说明这个过程的东西。

标签: sqlvbams-access

解决方案


你的想法是个好主意。

因此,假设您构建了一个表单(继续项目)。设置它 - 让它看起来很好。该表格当然将是您的子表格。您现在创建该主窗体。这个主窗体只需要顶部的那个文本框。底部可以是子窗体。

那么,如果这是为了说发票?然后我们使用精确匹配。

在文本框(或您的“搜索”按钮)的更新后事件中,您可以使用以下代码:

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 Creek Beer Northen Lights Theatre 等。

你可以变得很花哨。这是一个表单和子表单,我使用了上述方法。用户输入 Smi(代表 smith),我会显示如下搜索结果:

在此处输入图像描述

在多个项目子表单上,我还放置了一个按钮(眼镜图标)。当用户单击该按钮时,我会启动该 ONE reocrd 的主编辑表单。

该按钮背后的代码?

我用这个:

docmd.OpenForm "frmCustomer",,,"ID = " & me!id

因此,您可以通过构建一个漂亮的搜索表单来真正提高易用性。另一个非常好的特性是它的工作速度非常快——即使在非常大的桌子上也是如此。那么,如果你有 500,000 甚至 100 万行呢?如果结果集很小,搜索将非常快。然后有了点击按钮的想法,你就有了一个漂亮的用户界面。

大多数应用程序 - 甚至谷歌?你搜索 你显示结果 你让用户挑选。从网络到会计软件包,还是您将使用的任何软件?他们都遵循这种设计模式。

此外,一旦你构建了那个漂亮的子表单(比如一个 continue items 表单)。作为最后一步,我将删除此子表单所基于的数据源(表)。这样,当您开始时,表单(现在是主搜索表单上的子表单)将不会显示或包含任何数据 - 因此整个表单/子表单将在您开始搜索之前快速加载。


推荐阅读