首页 > 解决方案 > 无法连接到 Excel 中可访问的 Access 中的 DB2 表

问题描述

我正在尝试在 Access 2007 中链接 DB2 表以重新创建已在 Excel 中进行的查询。我遇到的问题是,当我使用import data -> Link data -> Select DSN from Machine Data Source -> Enter PasswordODBC 连接时,我需要的表没有列出。我还尝试使用下面的代码通过 VBA 链接到表,该代码使用与有效的 Excel 连接完全相同的连接字符串:

DoCmd.TransferDatabase acLink, "ODBC Database", _
     "ODBC;DSN=MyDSN;UID=UserName;PWD=Password;MODE=SHARE;DBALIAS=MyDSN;" _
      & "SCHEMALIST='ARS','BOM','DBA','FCS','HR','INT','INV','LCA','LCT','LCZ'," _
      & "'PCA','PCM','PCT','PTN','PUR','QCA','QCM','QCT','QCW','QXX','TIX','TSS'," _
      & "'UCX','WAR';", acTable, "RCX.RXSAL1", "DB2_RXSAL1"

这只会导致:

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

我认为RCX不在架构列表中可能会阻止 Access 在我尝试导入时显示它,但我不明白为什么它不允许我使用 VBA 直接连接到它。此外,当我在 Excel 中设置查询时,我能够绕过表选择并直接编写查询,但它也没有在可用表列表中显示我需要的表。

根据 Parfait 的要求进行编辑:

excel中的工作查询:

select distinct
SupLookup.Sup_Num,
suplookup.CONTAINER_CODE,
AllocationType.ALLOC_TYPE_DESC,
Allocation.ALLOC_QTY,
Allocation.SAFE_STOCK_QTY,
Allocation.ALLOC_QTY + Allocation.SAFE_STOCK_QTY AS TOT_ALLOC_REQ_QTY

from RCX.RXSAL1 Allocation
inner join rcx.RXALT1 AllocationType on Allocation.ALLOC_TYPE_ID = AllocationType.ALLOC_TYPE_ID
left join
(select distinct
    SUPPLIER_ID,
    concat(SUPPLIER_NO, SUPPLIER_LOCATION) as Sup_Num,
    CONTAINER_CODE,
    CONTAINER_TYPE_ID
from rcx.RXPIR1    
where PLANT_ID= '00000001'
) as SupLookup on Allocation.SUPPLIER_ID = suplookup.SUPPLIER_ID and allocation.CONTAINER_TYPE_ID = suplookup.CONTAINER_TYPE_ID

where Allocation.PLANT_ID= '00000001'

ORDER BY Sup_Num ASC

Excel中的连接字符串:

DSN=MyDSN;UID=UserName;PWD=Password;MODE=SHARE;DBALIAS=MyDSN;SCHEMALIST='ARS','BOM','DBA','FCS','HR','INT','INV','LCA','LCT','LCZ','PCA','PCM','PCT','PTN','PUR','QCA','QCM','QCT','QCW','QXX','TIX','TSS','UCX','WAR';

编辑2:

Excel查询输入方式如下:

数据选项卡 -> 从其他来源选择:从 Microsoft Query 在获取外部数据部分 -> 从列表连接到 DSN -> 输入用户名和密码 -> 关闭选择列对话框 -> 说“是”以继续在 MS 查询中编辑-> 关闭选择表对话框 -> 单击 MS 查询中的 SQL 按钮以查看 SQL -> 粘贴到查询中 -> 单击确定 -> 单击 MS 查询中的返回数据按钮 -> 选择结果位置。

然后查询运行并将数据放入电子表格。数据选项卡中的连接按钮允许您获取这些查询的属性,包括连接字符串。

标签: databasevbams-accessdb2ms-access-2007

解决方案


推荐阅读