【发布时间】:2017-11-28 15:16:11
【问题描述】:
我有一个链接到 SQL Server 数据库的多用户访问 UI,该数据库用于为抵押贷款公司执行贷款审查。用户当前正在使用 Access 中已经存在的“查找记录”功能,并且需要很长时间才能找到记录。虽然我确实理解为什么需要这么长时间以及理论上需要做什么,但我无法找出编写代码以直接执行所需记录的最佳方法。它需要是一个类似于现有查找记录功能的消息框,但它执行最有效的方式。我尝试了以下,其中不包含消息框,它不起作用:
Private Sub txtFindLoan_AfterUpdate()
Dim sSQL As String
sSQL = "SELECT * FROM dbo_PreCloseAuditEnc WHERE LOAN_NUM = '" &
Me.txtFindLoan & "'"
Me.RecordSource = sSQL
Me.Requery
End Sub
提前致谢!
【问题讨论】:
-
在访问 bobby 表之前,您需要阅读、理解并开始使用参数化查询。 bobby-tables.com 你不应该从用户那里接收输入,然后直接对任何数据库执行。
-
此外,可能值得精确探索瓶颈所在。如果没有索引或服务器是树莓派等,查询调优只会让你到目前为止。
-
您所拥有的应该可以正常工作。不清楚 LOAD_NUM 是文本列还是数字列。使用各种代码、存储过程等,这里并不会真正改变任何东西。在您的示例代码中是否假定 dbo_PreCloseAuditEnc 是标准链接表?如果有 500 或 5,000,000 行,那么如果 LOAD_NUM 上的索引存在于 sql server 上,那么您所拥有的应该可以立即工作。通过您的示例,访问只会将一条记录拉到网络管道中。除了您发布的内容之外,您不需要任何其他内容。
标签: sql-server ms-access vba