Sql MS ACCESS-查询通过查询工作,VBA中存在错误。如何修改查询?

Sql MS ACCESS-查询通过查询工作,VBA中存在错误。如何修改查询?,sql,vba,ms-access,Sql,Vba,Ms Access,我编写了一个不是用VBA代码执行的查询,但同一个查询通过MS Access中的查询工作。如何修改它 正在工作的代码: SELECT SLO_portfele.P_nazwaPortfela from ((SLO_portfele INNER JOIN Ewidencje on SLO_portfele.ID_portfela = Ewidencje.ID_portfela) INNER JOIN KP_KartyProjektow on KP_KartyProjektow.ID_kartyPro

我编写了一个不是用VBA代码执行的查询,但同一个查询通过MS Access中的查询工作。如何修改它

正在工作的代码:

SELECT SLO_portfele.P_nazwaPortfela from ((SLO_portfele INNER JOIN Ewidencje on SLO_portfele.ID_portfela = Ewidencje.ID_portfela) INNER JOIN KP_KartyProjektow on KP_KartyProjektow.ID_kartyProjektu = Ewidencje.ID_kartyProjektu) WHERE KP_KartyProjektow.KP_krotkaNazwaProjektu = "Generowanie CWU"
不工作的代码:

strSql = "SELECT SLO_portfele.P_nazwaPortfela from SLO_portfele INNER JOIN Ewidencje on SLO_portfele.ID_portfela = Ewidencje.ID_portfela INNER JOIN KP_KartyProjektow on KP_KartyProjektow.ID_kartyProjektu = Ewidencje.ID_kartyProjektu WHERE KP_KartyProjektow.KP_krotkaNazwaProjektu = '" & (krotkaNazwaProjektu) & "' "
Set rst = CurrentDb.OpenRecordset(strSql)
przypisanie5 = rst!P_nazwaPortfela
rst.Close
但是,这很奇怪,因为VBA中的另一个查询可以工作(类似):

出现的错误是..:此代码生成消息错误:

语法错误(无运算符)


如何处理查询?

打印完成的SQL:

strSql = "SELECT SLO_portfele.P_nazwaPortfela from SLO_portfele INNER JOIN Ewidencje on SLO_portfele.ID_portfela = Ewidencje.ID_portfela INNER JOIN KP_KartyProjektow on KP_KartyProjektow.ID_kartyProjektu = Ewidencje.ID_kartyProjektu WHERE KP_KartyProjektow.KP_krotkaNazwaProjektu = '" & (krotkaNazwaProjektu) & "' "
Debug.Print strSQL
然后打开一个新查询,并在SQL视图中复制粘贴strSQL的内容


运行查询,您将看到它“不工作”的原因。

打印完成的SQL:

strSql = "SELECT SLO_portfele.P_nazwaPortfela from SLO_portfele INNER JOIN Ewidencje on SLO_portfele.ID_portfela = Ewidencje.ID_portfela INNER JOIN KP_KartyProjektow on KP_KartyProjektow.ID_kartyProjektu = Ewidencje.ID_kartyProjektu WHERE KP_KartyProjektow.KP_krotkaNazwaProjektu = '" & (krotkaNazwaProjektu) & "' "
Debug.Print strSQL
然后打开一个新查询,并在SQL视图中复制粘贴strSQL的内容


运行查询,您将看到它“不工作”的原因。

krotkaNazwaProjektu是否可能包含一个
?不,不可能。我尝试了版本:“&(krotkaNazwaProjektu)&”,但它也不起作用。我看不到循环记录集的常用代码。以防万一,例如:dim przypisanie5作为某物:rst.movefirst:do直到rst.eof:przypisanie5=rst!P_nazwaPortfela:rst.movenext:loop krotkaNazwaProjektu是否可能包含一个
?不,不可能。我尝试了版本:“&(krotkaNazwaProjektu)&”,但它也不起作用。我看不到循环记录集的常用代码。以防万一,例如:dim przypisanie5作为某物:rst.movefirst:do直到rst.eof:przypisanie5=rst!P_nazwaPortfela:rst.movenext:loop我知道怎么了。我需要写:((SLO_portfele internal JOIN Ewidencje on SLO_portfele.ID_portfela=Ewidencje.ID_portfela)INNER JOIN KP_KartyProjektow on KP_KartyProjektow.ID_kartyProjektu=Ewidencje.ID_kartyProjektu)但不管怎样,我知道怎么了。我需要写:((SLO_portfele INNER JOIN Ewidencje on SLO_portfele.ID_portfela=Ewidencje.ID_portfela)INNER JOIN KP_KartyProjektow on KP_KartyProjektow.ID_kartyProjektu=Ewidencje.ID_kartyProjektu)不过还是谢谢你。