SQL代码在Excel VBA中不起作用

我正在使用Excel 2010 VBA并从PGSQL数据库查询3个表

以下SQL代码在MS ACCESS中完美工作:

SELECT user.surname,user.forename,recall.recalldate,telephone.number FROM (user INNER JOIN recall ON user.entity_id = recall.master_id) LEFT JOIN Telephone ON recall.master_id=Telephone.master_id 

但似乎并没有转移到EXCEL VBA:

 Dim RECALL As String RECALL = "SELECT user.surname,user.forename,recall.recalldate,telephone.number " _ & "FROM (user INNER JOIN recall ON user.entity_id = recall.master_id) " _ & "LEFT JOIN Telephone ON recall.master_id=Telephone.master_id " _ Set rs = conn.Execute(RECALL) With ActiveSheet.QueryTables.Add(Connection:=rs, Destination:=Range("A1")) .Refresh End With 

我得到一个运行时错误:…期望表源后FROM,得到

用户表使用user.entity_id = recall.master_id链接到召回表,并显示用户的所有召回logging。 然后我需要匹配用户的电话号码。 不是所有的人都会有电话号码,但我需要所有的回忆,不pipe他们是否有电话号码。

VBA中的SQL代码有什么问题?

似乎你有一个()后forms尝试没有

  SELECT user.surname,user.forename,recall.recalldate,telephone.number FROM user INNER JOIN recall ON user.entity_id = recall.master_id LEFT JOIN Telephone ON recall.master_id=Telephone.master_id 

对,不同的数据库可能是不同的SQL。 通常,SQL是非常相似的,但是不同的数据库之间总是有细微的差别。

当你有时间的时候,请看下面链接中的这个小工具。 这对于将SQL转换为VBA非常有用。 试一试,看看你是如何相处的。

http://allenbrowne.com/ser-71.html