我对SQL相当陌生,我正在尝试创建一个收集以下内容的字符串:
下面的代码不断地在From子句中给我一个语法错误。我假设这与内部连接周围的括号有关,但我不确定。
在添加第二个内部JOIN子句(外部DB)之前,这段代码工作得非常好,My & ORDER子句工作得很好。
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
谢谢!多姆
发布于 2018-10-11 12:31:10
我想我已经找到了解决这个问题的办法--这不是括号,而是我使用的密码。
我使用的密码(不是原始问题中的密码)使用了特殊字符(#>`{(= ),这似乎产生了语法错误)。我将Access数据库中的密码更改为仅用于字母/数字,并且原始代码运行良好。
希望这能帮到其他人。最终代码:
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;"感谢您的反馈。
发布于 2018-10-11 11:27:06
我认为这是可行的,因为我认为您在FROM子句中有不必要的括号:
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;"https://stackoverflow.com/questions/52758458
复制相似问题