sql - 获取 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 查询,并能够轻松地在子表单中编辑这些结果。如果我的问题不清楚,我可以详细说明。这个问题有点开放式,因为我在网上找不到任何可以说明这个过程的东西。
解决方案
你的想法是个好主意。
因此,假设您构建了一个表单(继续项目)。设置它 - 让它看起来很好。该表格当然将是您的子表格。您现在创建该主窗体。这个主窗体只需要顶部的那个文本框。底部可以是子窗体。
那么,如果这是为了说发票?然后我们使用精确匹配。
在文本框(或您的“搜索”按钮)的更新后事件中,您可以使用以下代码:
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 表单)。作为最后一步,我将删除此子表单所基于的数据源(表)。这样,当您开始时,表单(现在是主搜索表单上的子表单)将不会显示或包含任何数据 - 因此整个表单/子表单将在您开始搜索之前快速加载。
推荐阅读
- python - Android Studio - Gradle 更新失败
- r - 如何从一个数据帧复制到另一个(空)数据帧
- node.js - 使用 nodemailer 时图像 src 不起作用
- raku - 确定是否设置了 Raku 中的变量
- apache-kafka - Kafka 侦听器:轮询间隔:如何安排 15 分钟间隔的 kafka 消费者轮询()
- java - 在vavr中迭代正则表达式
- c++ - 为什么我的代码不返回 0?我正在使用 scanf() 而不是 cin
- javascript - jQuery setIntervel 直到条件为真
- javascript - 如何合并具有唯一值的对象数组
- c - 为什么如果我使用“C”是错误的,但如果我使用“c”它可以工作?