如何在 Access/SQL 服务器中查看使用内置查找功能编写的代码?

How do I view code written in built in Find function in Access/SQL server?

我使用的是 Access 前端和 SQL 服务器后端。我有一个搜索按钮,单击该按钮会执行调用 Find 函数的命令。当我尝试在 Access 表单中搜索字段时,在 SQL 中搜索了错误的字段。例如,如果我为 EmployeeID 字段执行查找 40,我得到的记录是 EmployeeAge = 40,但不是 EmployeeID。当我使用内置的查找功能时,如何查看执行了哪些代码?

我怀疑您混淆了 find 选项与 SQL 命令 access 发送到 SQL 服务器以获取记录的工作方式。

您当然可以启动 SQL 探查器和 watch/view Access 发送到 SQL 服务器以检索记录的 SQL 命令。

问题当然是查找选项仅适用于所有记录都已从 SQL 服务器下载的表单。换句话说,使用查找选项假定所有 SQL 命令已经发送到 sql 服务器,然后搜索表单记录。这意味着,如果您使用 Oracle、SQL 服务器,甚至是普通的 Jane Access 应用程序(基于本地文件),那么幕后的底层 SQL 命令不会发送到 SQL 服务器使用查找选项时的问题。

因此,在使用查找选项时,确实没有您可以查看的有用信息或 SQL 命令。事实上,这解释了为什么使用查找选项是一个糟糕的选择,因为它假定您在尝试使用查找之前已将所有记录下载到表单中。

用于加载表单数据和获取记录的SQL命令肯定可以查看。但是,find 命令是 Access 的内部软件,没有 SQL 命令等可供查看。

以上建议在大多数情况下代替查找命令,您只需像这样设置表单记录源:

strInvoiceNumber = InputBox("Enter Invoice Number")
strSQL = "select * from tblCustomers where InvoiceNum = " & strInvoiceNumber
Me.RecordSource = strSQL

以上意味着您可以看到底层的 SQL 代码,并且还意味着您不要先将 1000 条记录下载到表单然后再搜索(因为这很慢,为什么要下载大记录数,然后搜索 - 最好询问用户,然后只下载有问题的一条记录)。以上仅下载您搜索或请求的一条记录。

感谢您的帮助。问题最终出在表单上“查找”按钮后面的代码上。由于某种原因,它在数据库中搜索了错误的列。由于该代码是在您制作按钮时自动生成的,因此我只是将其更改为指定我想使用的列。我不确定这个问题是怎么来的,因为它已经工作了很多年。只有在某些情况下它才会失败。但是,通过稍微更改代码,现在一切似乎都可以正常工作了。