MS-Access 2003 CurrentDb.TableDefs("tablename").Connect 数据库啥都不是

Posted

技术标签:

【中文标题】MS-Access 2003 CurrentDb.TableDefs("tablename").Connect 数据库啥都不是【英文标题】:MS-Access 2003 CurrentDb.TableDefs("tablename").Connect Database is nothingMS-Access 2003 CurrentDb.TableDefs("tablename").Connect 数据库什么都不是 【发布时间】:2015-08-05 17:32:22 【问题描述】:

所以我继承了这个在 Access 2003 中运行的工作项目,我们正在升级到更新版本的 windows(从 Windows Server 到 Windows 7)。

它使用 DSN 连接到我们的 mysql 数据库,但是,Access 没有从 DSN 设置中看到数据库名称。

我已经确定了ODBC错误,如下: [MySQL][ODBC 5.1 Driver][mysqld-5.6.22-log]没有选择数据库

当我在即时窗口中运行 ?myDB.TableDefs("tblusers").Connect 时,我得到以下响应: ODBC;DSN=bnr-rolodex;DATABASE=

我已经绞尽脑汁一两天了,想知道是否有其他人遇到过这种情况。

谢谢!

编辑:我还应该注意 ?CurrentDb.Connect 返回空白并突出显示它有一个工具提示说“Nothing = Nothing”

【问题讨论】:

我的猜测是您通过管理工具 > 数据源 (ODBC) 设置了 DSN。那是针对 64 位数据源的。您需要 32 位,它应该位于 C:\Windows\SysWOW64\odbcad32.exe。然后使用链接表管理器重新链接表。 尝试使用文件DNS添加数据库名称 DSN 已经设置好了,我已经尝试过 odbcad32 的 SysWOW64 和 system32 版本。我打开链接表管理器,它可以看到我的数据源,我什至创建了一个新的,但是,它仍然看不到我选择的数据库,只使用 DSN。不幸的是,我无法访问该应用程序的工作版本,因为旧服务器目前无法正常工作。 Annnnd 删除所有 DSN,重新启动并通过链接表管理器再次添加它们后,它修复了它。谢谢! 【参考方案1】:

AVG 在 cmets 中解决了我的问题。 DSN 已经设置好了,但我最终删除了它

之后我重新启动,启动应用程序,在 VB 的即时窗口中使用以下命令启动链接表管理器:

Application.Run "acwztool.att_Entry"

我从那里读取了 DSN,再次重新启动并重新启动访问并成功连接!谢谢!

【讨论】:

以上是关于MS-Access 2003 CurrentDb.TableDefs("tablename").Connect 数据库啥都不是的主要内容,如果未能解决你的问题,请参考以下文章

计数 MS-ACCESS 2003 列中的图像

如何在 VBA 代码中的 ms-access 中执行查询?

从 VBA (MS-Access) 填写 PDF 表单

在 MS-Access 中禁用除报告(打印预览)之外的功能区栏

access 2003 中的色域

MS-Access ODBC 连接到 Oracle for SQL