【问题标题】:Connecting to several data sources from Excel via VBA通过 VBA 从 Excel 连接到多个数据源
【发布时间】:2017-11-19 16:54:24
【问题描述】:

尝试从 Excel 内部连接到不同的数据源(VFP 数据库和 Access 文件)以根据来自两个源的条件提取特定数据并遇到创建组合查询的问题。对 VFP 表的查询已经完成,现在我需要处理 MS Access 表。 我尝试过以下方式,但没有成功:

"left join [tblInAccess] in " & "[Microsoft.ACE.OLEDB.12.0;Data 
Source='D:\Data\temp_dump.accdb'] on [tblInVFP].ID=[tblInAccess].ID"

谁能指出正确的语法?

UPD: 整个查询代码(仅查询):

SELECT DB.DATE AS DBF_DATE,
    DB.EN AS DBF_EN,
    DB.NU AS DBF_NUMERO,
    LIB.LL AS DBF_LIBELLE,
    SUM(IIF(DB.DEBIT = '1000', - DB.AMOUNT, 0.00) + IIF(DB.CREDIT = '1000', DB.AMOUNT, 0.00))
FROM [VFP_DB] AS DB
LEFT JOIN (
    SELECT LT.LL AS LL,
        LT.EN
    FROM [VFP_DB] AS LT
    ) AS LIB ON DB.EN = LIB.EN
LEFT JOIN (
    SELECT id
    FROM [Provider=Microsoft.ACE.OLEDB.12.0;Data Source="D:\Data\temp_dump.accdb";].[tblTemp]
    ) TEMP_DB ON DB.NN = TEMP_DB.id
WHERE DB.DATE >= { ^ 2015.12 .30 }
    AND DB.DATE <= { ^ 2017.01 .07 }
    AND TEMP_DB.id IS NULL
GROUP BY DB.DATE,
    DB.NU,
    DB.EN,
    LIB.LL
HAVING SUM(IIF(DB.DEBIT = '1000', - DB.AMOUNT, 0.00) + IIF(DB.CREDIT = '1000', DB.AMOUNT, 0.00)) <> 0
ORDER BY DB.DATE,
    DB.NU,
    DB.EN ASC

实际上,如果没有第二个“左连接”,它可以正常工作。尝试引用Access数据库时出现问题

【问题讨论】:

  • 欢迎来到 StackOverflow。虽然它不是我的域,但我认为您只有部分查询。拥有整个查询以及您遇到的错误将很有帮助。
  • @ZiyanJunaideen 所说的,+ 您还需要共享执行查询的代码。这都是相关的。

标签: sql excel vba ms-access ado


【解决方案1】:

如果您在 Access 数据库上执行查询,则无需指定数据库类型,只需指定位置:

LEFT JOIN [tblInAccess] in D:\Data\temp_dump.accdb on [tblInVFP].ID=[tblInAccess].ID

更多详情请参阅MSDN

另请注意:{ ^ 2015.12 .30 } 可能会导致 Access 中出现语法错误。如果要按日期过滤,正确的语法是 #2015/12/30# 来定义日期常量。

【讨论】:

  • Erik,感谢您抽出一些时间来解决我的问题!问题是整个查询通过 ADO 从 EXCEL 传递到 VisualFoxPro 数据库,而不是 MS Access。但我想让 ADO 了解某些数据将从临时 Access 表中获取。所以我正在寻找在查询中使用它的驱动程序来引用 Access db 文件的方法(可能还有另一种方法 - 我不知道)。关于日期格式:VFP数据库需要这种格式,在这种情况下是正确的
  • 之前已经发布过类似问题 (stackoverflow.com/questions/34294382/…),但它与 Excel 相关联。在我的情况下,我只需要构建一个有效的 Access 连接字符串
猜你喜欢
  • 2012-10-25
  • 1970-01-01
  • 2013-05-17
  • 2022-08-03
  • 2018-06-20
  • 2018-03-23
  • 2017-11-14
  • 1970-01-01
  • 2017-03-30
相关资源
最近更新 更多