我的Access客户端中有一个搜索结果表单,它使用的是在acDialog模式下打开的表单。如果用户取消搜索表单自行关闭,如果用户选择其中一个搜索项,表单会将结果写入未绑定字段,然后使其自身不可见。
调用代码将暂停(因为acDialog
模式),直到前一段中描述的两个事件中的任何一个发生。调用代码检查表单是否仍然被加载 - 当它知道已经请求了搜索项时,它从表单中检索项目然后关闭它。如果表格尚未加载,我们假设选择了取消路线。
搜索结果数据源是一个选择语句"SELECT * FROM details ORDER BY ..."
这个技巧在代码中工作了一段时间,其中“details”是另一个Access数据库的链接表
我正在移植到SQL Server,现在详细信息表在启动时动态链接到正确的SQL Server实例。使用以下连接字符串
ODBC;driver=SQL Server;SERVER=ROO\SQLEXPRESS;DATABASE=Test_DB;UID=my_app;PWD=xxxx;
(密码等改为保护无辜者)
当Access退出应用程序时(仅此而已) - 如果通过代码的路径导致使用visible = false技巧,则它将退出并显示错误消息。如果有一个应用程序出口,其中路径已通过搜索表单但表单在返回之前自行关闭,则不会显示错误消息。
错误消息是:
Cannot access database because of Error [Microsoft][ODBC Driver Manager] Data source
name not found and no default driver specified
现在退出。
我需要弄清楚为什么会发生这种情况并阻止它。
答案 0 :(得分:1)
我通过解决方法解决了这个问题。我为表单结果创建了一个全局变量,然后始终关闭搜索结果表单本身。试图获取结果的基础例程只使用全局变量。
这证明使对话框不可见以检索结果是不可靠的 - 一旦我改变它就会消失。