更新:我在我的VBA中运行了一个SQL连接测试功能,它从我的主工作站读取打开,我在客户端工作站运行相同的连接脚本,运行时崩溃了。我还检查确保它使用的是32位驱动程序而不是62位驱动程序,并且凭据与另一个工作的工作站相同。
如果我运行连接测试运行时崩溃,如果我只尝试运行查询,它说连接无法找到。两者均来自用户计算机。
我在系统DSN级别从客户端计算机成功打开了与MySQL数据库的ODBC Unicode连接。当我打开Access Runtime文件并尝试使用表单查询数据库时,我收到错误:" ODBC - 连接到' servername'失败&#34。我尝试了很多名字,包括改变区分大小写。我验证了我使用的TCPIP地址确实是该数据库的主机,并且使用ipconfig / all的名称具有适当的区分大小写。我无法弄清楚Access和Runtime是否存在问题,但我不能确定这是问题所在。表的名称是" tbl_panel,"它肯定在我使用ODBC确切名称连接到的数据库中。
我使用的连接的用户要求基本上是"只读"特权,但这是它应该需要的全部,因为我只检查数据。除非创建记录集超出了SELECT,SHOW VIEW,CREATE TEMP TABLES的范围。此外,它无法找到服务器本身的事实告诉我它可能与我的SQL / VBA编码无关。将鼠标悬停在Access导航窗格中的tbl_panel上显示" ODBC; DSN =' servername' ;; TABLE = tbl_panel"。
以下是用于创建记录集的SQL字符串(由于语句本身正常工作,因此截断了空格):
stSQL1 = "SELECT tbl_panel.PNL_SN_ID FROM tbl_panel " & _ etc.
Set qryList = dbsInspect.OpenRecordset(stSQL1)
这让我非常难过,而且我是ODBC的新手,所以如果它是明显的,请善待。我做了很多搜索,但大多数ODBC查询都会返回初始设置数据源或在代码中打开连接的问题。这可能是我必须做的吗?在VBA中包含表的开始语句,以便Runtime知道该怎么做?如果这就是问题的可能性,我会感到愚蠢,而且我一无所知地打了这一切。
答案 0 :(得分:0)
这最终有点问题。尽管在控制面板中使用ODBC连接工具 - >管理工具。我需要一个32位连接。这在另一个SO问题中得到了回答。
但是,我会注意到,我最终获得有用的错误消息的唯一方法是创建一个后端。然后它在下面的链接问题中显示错误消息: