首页 > 解决方案 > MS ACCESS - 查询通过查询工作,并且 VBA 中存在错误。如何修改查询?

问题描述

我编写了一个不在 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 中的另一个查询有效(类似):

strSql = "SELECT Ewidencje.E_dataPlanowaneZakonczenieProjektu from Ewidencje INNER JOIN KP_KartyProjektow on Ewidencje.ID_kartyProjektu = KP_KartyProjektow.ID_kartyProjektu WHERE KP_KartyProjektow.KP_krotkaNazwaProjektu = '" & (krotkaNazwaProjektu) & "' "
Set rst = CurrentDb.OpenRecordset(strSql)
przypisanie2 = rst!E_dataPlanowaneZakonczenieProjektu
rst.Close

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

语法错误(无运算符)。

如何处理查询?

标签: sqlvbams-access

解决方案


打印完成的 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 的内容。

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


推荐阅读