0

我的 Access 客户端中有一个搜索结果表单,它使用了在 acDialog 模式下打开表单的技巧。如果用户取消搜索,表单会自行关闭,如果用户选择其中一个搜索项,则表单会将结果写入未绑定字段,然后使其自身不可见。

调用代码将暂停(由于acDialog模式),直到上一段中描述的两个事件中的任何一个发生。调用代码检查表单是否仍在加载 - 当它知道已请求搜索项时,它会从表单中检索该项目,然后将其关闭。如果表单尚未加载,我们假设选择了取消路由。

搜索结果数据源是一个选择语句"SELECT * FROM details ORDER BY ..."

这个技巧在“详细信息”是指向另一个 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

现在将退出。

我需要准确找出发生这种情况的原因并阻止它。

4

1 回答 1

1

我通过变通解决了这个问题。我为表单结果创建了一个全局变量,然后总是关闭搜索结果表单本身。试图获取结果的底层例程只使用全局变量。

这证明了使对话框不可见以检索结果是不可靠的-我一更改问题就消失了。

于 2012-11-12T23:07:24.143 回答