首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA SQL:语法错误从子句,双内连接密码

VBA SQL:语法错误从子句,双内连接密码
EN

Stack Overflow用户
提问于 2018-10-11 11:02:51
回答 2查看 243关注 0票数 0

我对SQL相当陌生,我正在尝试创建一个收集以下内容的字符串:

  • 目录信息中的代码为c
  • 来自产品信息的说明为p
  • P的权重
  • PPB来自p
  • CP-UK来自p
  • CP-EU来自p
  • 1来自受外部密码保护的数据库C:\mypath\db.accdb作为pl。

下面的代码不断地在From子句中给我一个语法错误。我假设这与内部连接周围的括号有关,但我不确定。

在添加第二个内部JOIN子句(外部DB)之前,这段代码工作得非常好,My & ORDER子句工作得很好。

代码语言:javascript
复制
                sqlProd = "SELECT c.Code," _
            & " p.Description, p.weight, p.[Pack Size], p.PPB, p.[CP-UK], p.[CP-EU]," _
            & " pl.1" _
            & " FROM ([Catalogue Info] c" _
            & " INNER JOIN [Product Information] p" _
                & " on c.code = p.code)" _
            & " INNER JOIN [;database=C:\mypath\db.accdb;PWD=password123].table_name pl" _
                & " on c.code = pl.code" _
            & " WHERE c.Sub_Cat_1 = '" & rstSub1!Sub_Cat_1 & "'" _
            & " AND c.Sub_Cat_2 = '" & rstSub2!Sub_Cat_2 & "'" _
            & " ORDER BY c.Page ASC, c.Page_Position ASC;"

有什么想法吗?

Access 2016,Excel 2016,Windows 10

谢谢!多姆

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-11 12:31:10

我想我已经找到了解决这个问题的办法--这不是括号,而是我使用的密码。

我使用的密码(不是原始问题中的密码)使用了特殊字符(#>`{(= ),这似乎产生了语法错误)。我将Access数据库中的密码更改为仅用于字母/数字,并且原始代码运行良好。

希望这能帮到其他人。最终代码:

代码语言:javascript
复制
sqlProd = "SELECT c.Code," _
        & " p.Description, p.weight, p.[Pack Size], p.PPB, p.[CP-UK], p.[CP-EU]," _
        & " pl.[1]" _
        & " FROM [Catalogue Info] as c" _
        & " INNER JOIN [Product Information] as p" _
        & " on c.code = p.code" _
        & " INNER JOIN [;database=C:\mypath\db.accdb;PWD=password123].table_name as pl" _
        & " on c.code = pl.code" _
        & " WHERE c.Sub_Cat_1 = '" & rstSub1!Sub_Cat_1 & "'" _
        & " AND c.Sub_Cat_2 = '" & rstSub2!Sub_Cat_2 & "'" _
        & " ORDER BY c.Page ASC, c.Page_Position ASC;"

感谢您的反馈。

票数 0
EN

Stack Overflow用户

发布于 2018-10-11 11:27:06

我认为这是可行的,因为我认为您在FROM子句中有不必要的括号:

代码语言:javascript
复制
sqlProd = "SELECT c.Code," _
            & " p.Description, p.weight, p.[Pack Size], p.PPB, p.[CP-UK], p.[CP-EU]," _
            & " pl.1" _
            & " FROM [Catalogue Info] c" _
            & " INNER JOIN [Product Information] p" _
            & " on c.code = p.code" _
            & " INNER JOIN [;database=C:\mypath\db.accdb;PWD=password123].table_name pl" _
            & " on c.code = pl.code" _
            & " WHERE c.Sub_Cat_1 = '" & rstSub1!Sub_Cat_1 & "'" _
            & " AND c.Sub_Cat_2 = '" & rstSub2!Sub_Cat_2 & "'" _
            & " ORDER BY c.Page ASC, c.Page_Position ASC;"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52758458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档