Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Access 2002中,如何从多个oracles源传输数据库?_Oracle_Ms Access_Vba - Fatal编程技术网

在Access 2002中,如何从多个oracles源传输数据库?

在Access 2002中,如何从多个oracles源传输数据库?,oracle,ms-access,vba,Oracle,Ms Access,Vba,我有一些简单的VBA从多个Oracle数据库导入表。我有一个ODBC条目,我使用不同的凭据连接到不同的数据库 我的传输数据库代码很简单: DoCmd.TransferDatabase导入、ODBC、ODBC;DNS=源;UID=用户;PWD=通过;,acTable,SomeRemoteTable,MyLocalTable,True 该代码可以工作,但当我在执行该命令后立即使用不同的用户/通行证运行同一命令时,会出现以下错误: 运行时错误“3011”:Microsoft Jet数据库引擎找不到对象

我有一些简单的VBA从多个Oracle数据库导入表。我有一个ODBC条目,我使用不同的凭据连接到不同的数据库

我的传输数据库代码很简单:

DoCmd.TransferDatabase导入、ODBC、ODBC;DNS=源;UID=用户;PWD=通过;,acTable,SomeRemoteTable,MyLocalTable,True

该代码可以工作,但当我在执行该命令后立即使用不同的用户/通行证运行同一命令时,会出现以下错误:

运行时错误“3011”:Microsoft Jet数据库引擎找不到对象“SomeRemoteTable”。确保对象存在,并且正确拼写其名称和路径名

这里有一个陷阱:

DNS、用户凭据和表名正确。如果我打开access并注释其中一行,则任何一个传输都将成功运行。但是,一旦一个命令运行,另一个命令将不会运行,直到访问被关闭并重新打开


我猜一定有办法在继续下一个连接之前关闭第一个连接。有人对我可以尝试什么有什么想法吗

如果数据库归您所有,那么在其中一个数据库上设置一个到另一个数据库的数据库链接怎么样?
然后,您只需要一个连接。

为了清楚起见,我可以运行多个TransferDatabase命令,但只需要一组凭据。如果我想使用备用凭据运行TransferDatabase命令,我必须重新启动access,然后运行它们。等待似乎没有任何效果。不确定是否对此感兴趣,但我可以在收到错误后成功运行原始的TransferDatabase命令,因此第一个连接仍然可用/工作。是的,Access似乎记住了用户凭据和其他信息?从上一次尝试可能是上一次成功的尝试?并试图重新利用记忆中的信息。重新启动访问会导致内存丢失。我以前从未遇到过这种情况。我可能会使用不同的用户凭据为TransferDatabase尝试一个新的DAO工作区会话。我不知道这是否会带来快乐。另外要考虑的是它可能是Oracle DB设置/问题。如果ODBC连接从未真正刷新过,DB引擎Oracle可能会感到困惑,因为它正在为现有连接发送新凭据?我不确定是否能在通道一侧解决这个问题。ADO/DAO可能是一个更好的选择,因为您有更多的连接控制。不幸的是,数据库不属于我自己,在数据库端更改任何内容都不是一个选项。我感觉您会这么说。您是否尝试过使用2个DSN进行连接