【问题标题】:JOIN query to DBF via VBA通过 VBA 对 DBF 进行 JOIN 查询
【发布时间】:2018-03-01 23:24:41
【问题描述】:

如果有人问过这个问题,我深表歉意,但我在这里找不到哪里出错了。

我需要查询 (2) dbf 表 AP 和 VENDOR,其中包含供应商和应付账款。我需要获取在两个指定日期之间输入的所有应付账款的列表。 ap_vendor 包含 AP 表中的供应商 ID,v_vendor 包含供应商表中的供应商 ID。

我需要使用连接来返回单独表格中的供应商名称和金额。

这是我的查询:

SELECT a.ap_invamt, a.ap_invoice, b.v_name 
          FROM AP a JOIN VENDOR b 
          ON a.ap_vendor = b.v_vendor

我还需要添加一个 WHERE 子句,但我什至无法让这部分运行。

不断出现错误:“FROM 子句中的语法错误”

【问题讨论】:

  • LEFT JOIN 有效吗?

标签: sql vba join inner-join dbf


【解决方案1】:

与其他 SQL 方言不同,在 Access (JET) SQL 中不能只使用单词 JOIN 来指定内部联接。您必须同时使用这两个关键字:a INNER JOIN b。

有趣的是,我刚刚对其进行了测试,JET 确实允许 LEFT JOIN 和 RIGHT JOIN,而无需 OUTER 关键字。

将您的查询更改为从 AP a INNER JOIN Vendor b 读取,它应该可以工作。

【讨论】:

  • 感谢您的提示。在“JOIN”之前添加“INNER”现在我得到一个“没有为一个或多个必需参数提供值”。所以看起来 JOIN 不再是问题。对此有什么想法吗?
  • 这听起来像是如果查询中的字段名称之一与表中的字段名称不匹配时您可能会遇到的错误 - 换句话说,如果您错过拼写某些内容,jet 会认为您'正试图将其作为参数传递。另一方面,SQL 服务器被视为语法错误。给这些支票,让我知道会发生什么。
  • 是的,第二个问题是我的愚蠢错误。我的字符串中有一个不正确的字段名称。 a.ap_vendor 应该是 a.v_vendor。
  • 很高兴为您提供帮助。第一次解决“参数”问题需要很长时间,因为语法中没有任何内容表明某些东西是 praramter。 (例如,与 Sql Server 中的 @ 不同)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-28
  • 1970-01-01
  • 2015-07-23
  • 2017-10-22
  • 1970-01-01
  • 2021-11-12
相关资源
最近更新 更多