不支持Excel VBA SQL JOIN表达式

时间:2018-02-12 16:55:50

标签: sql excel vba

我想执行一个简单的左连接。我有两个表t1和t2。两者都包含一列“ISIN”。我希望t1中的ISIN与t2中的“Issuer”列连接。代码给了我一个错误“JOIN表达式没有被推迟”。

conn.Open sconnect
    strSQL = "SELECT [t1$].[ISIN], [t2$].[ISSUER] " & _
         "FROM [t1$], [t2$] " & _
         "LEFT JOIN [t1$] ON [t1$].[ISIN] = [t2$].[ISIN]"
    mrs.Open strSQL, conn
        ws4.Range(ws4.Cells(1, 1), ws4.Cells(1, 1)).CopyFromRecordset mrs
    mrs.Close
conn.Close 

我是SQL的初学者,无法弄明白。我认为它可能与缺少括号有关。

2 个答案:

答案 0 :(得分:2)

请勿将FROM [t1$], [t2$]与明确的联接一起使用。

试试这个:

strSQL = "SELECT [t1$].[ISIN], [t2$].[ISSUER] " & _
         "FROM [t1$] " & _
         "LEFT JOIN [t2$] ON [t1$].[ISIN] = [t2$].[ISIN]"

答案 1 :(得分:1)

您的查询错误。如下所示:

conn.Open sconnect
    strSQL = "SELECT [t1$].[ISIN], [t2$].[ISSUER] " & _
         "FROM [t1$] " & _
         "LEFT JOIN [t2$] ON [t1$].[ISIN] = [t2$].[ISIN]"
    mrs.Open strSQL, conn
        ws4.Range(ws4.Cells(1, 1), ws4.Cells(1, 1)).CopyFromRecordset mrs
    mrs.Close
conn.Close