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

问题描述 投票:0回答:3

在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是您用于登录Oracle的密码。 schema.table_name是Oracle中要链接到的表。例如,“collect.suppliers”。 Access_table_name是您希望Access分配给链接表的名称。例如,“供应商”。

oracle ms-access odbc database-connection ms-access-2010
3个回答
1
投票

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

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


1
投票

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


1
投票

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

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

正如其他人所说,当您设置DSN时,请做两件事:确保在创建连接期间,您选择数据库(默认情况下通常是系统,它将显示一大堆系统表,但没有一个是您的想要 - 你想选择/选择你的数据库。它应该出现在下拉列表中。

几个面板中的SQL服务器(而不是oracle)将显示您选择数据库的位置:

enter image description here

非常重要的是,您还需要选中“保存密码”框 - 这只会在创建新DSN时出现 - 如果您错过了,那么重新链接将永远不会提示您输入密码 - 所以不要忘记此选项:

enter image description here

无论您使用什么ODBC,上面的面板都会显示 - 不要忘记检查保存密码。

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

© www.soinside.com 2019 - 2024. All rights reserved.