如何在Access / SQL服务器中查看内置的Find函数中编写的代码?

时间:2015-01-29 16:57:38

标签: sql sql-server sql-server-2008 ms-access

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

2 个答案:

答案 0 :(得分:1)

我怀疑你混淆find选项是如何工作的,而不是SQL命令访问发送到SQL服务器来获取记录。

您当然可以启动SQL事件探查器并观察/查看Access发送给SQL服务器以检索记录的SQL命令。

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

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

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

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

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

上面因此意味着您可以看到基础SQL代码,并且也意味着您不首先将1000的记录下载到表单然后搜索(因为这非常慢,以及为什么要下载大量记录然后搜索 - 最好问用户,然后只下载有问题的ONE记录)。以上仅下载您搜索或请求的一条记录。

答案 1 :(得分:0)

感谢您的帮助。问题最终成为表单上“查找”按钮后面的代码。由于某种原因,它正在搜索数据库中的错误列。由于该代码是在您创建按钮时自动生成的,因此我只是更改了它以指定我想要使用的列。我不确定这个问题是怎么发生的,因为它已经工作多年了。只是在某些情况下它失败了。然而,随着那些轻微的代码改变,现在一切似乎都在起作用。