MS Access:在设计指南视图中创建链接表不会显示要链接的表吗?

时间:2019-04-25 07:54:38

标签: oracle ms-access odbc database-connection ms-access-2010

在MS Access 2010中,我试图创建到Oracle表的链接表。

当我通过MS Access菜单使用传统的方式进行操作时:

  

外部数据> ODBC数据库>通过创建链接来链接到数据   桌子

我看不到我应该能够选择的Oracle服务器上的表。该表单为空,即使我知道服务器上有很多表。

这是什么问题?

我被迫使用的ODBC连接是否是控制面板下的“ ODBC数据源管理员”概述中的系统DSN 。 注意:连接正在其他程序中工作,所以不是问题。



PS:我当然可以通过VBA代码来完成它,可以按如下所示进行操作:

  

从此处获取的模板代码:https://www.techonthenet.com/access/modules/link_table.php


这里是链接中的模板代码:

DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DSN=AAAA;UID=BBBB;PWD=DDDD;SERVER=CCCC", acTable, "schema.table_name", "Access_table_name", False, False

这里是链接的评论:

  

请注意,您需要自定义上面的代码行,因此   

     

AAAA是您设置的ODBC数据源的名称。 BBBB是   您将用于登录Oracle的用户名。 CCCC是   您的Oracle服务器。 DDDD是用于登录的密码   甲骨文schema.table_name是您希望链接的Oracle表   至。例如,“ collect.suppliers”。 Access_table_name是名称   您希望Access分配给链接表。例如,   “供应商”。

3 个答案:

答案 0 :(得分:1)

使用菜单时,您需要在DSN中预先指定一个数据库(连接字符串中的Dbq参数)。

如果您未预先指定数据库,则MS Access将不知道在哪个数据库中查找表,并且它不会执行所有或所有它有权访问的操作,因此它根本不会执行。

>

答案 1 :(得分:1)

确保ODBC驱动程序与您的Access版本匹配
32位访问权限<-> 32位ODBC
64位访问<-> 64位ODBC

答案 2 :(得分:1)

您在这里有一些很好的评论。如果从控制面板启动ODBC面板,它将启动ODBC管理器的x64位版本。但是,大多数版本的Access是x32位。

确保使用正确位大小的ODBC管理器的最简单方法是让Access为您启动ODBC面板。 (如果您右键单击访问快捷方式并选择以管理员身份运行,通常会很有帮助。

正如其他人所述,在设置DSN时,请执行以下两项操作: 确保在创建连接期间选择数据库(默认情况下通常为system,该数据库将显示一堆系统表,但不显示任何系统表-您想要选择/选择数据库。应显示该数据库)在下拉菜单中。

在几个面板中,SQL服务器(不是oracle)将在您选择数据库的地方显示此信息:

enter image description here

非常重要,您还需要选中“保存密码”框-仅在创建新DSN的过程中出现-如果您错过此密码,则重新链接将永远不会提示您输入密码-因此请不要忘记此选项:

enter image description here

无论您使用哪种ODBC,上面的面板都会显示-别忘了检查保存密码。

下一步: 创建一个文件DSN。这样做的原因是Access为您将其自动转换为无DSN的连接。这意味着您可以将数据库移至其他计算机,甚至删除创建的DSN。访问仅在链接时使用DSN,此后不需要(但是,此建议仅适用于dsn文件-因此,您要创建它。)