【问题标题】:MS ACCESS - the query works through a query, and there is an error in the VBA. How to modify the query?MS ACCESS - 查询通过查询工作,并且 VBA 中存在错误。如何修改查询?
【发布时间】:2019-05-13 17:10:50
【问题描述】:

我编写了一个未在 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

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

语法错误(无运算符)。

如何处理查询?

【问题讨论】:

  • krotkaNazwaProjektu 是否可能包含'
  • 不,这是不可能的。我尝试了版本:“”” & (krotkaNazwaProjektu) & “””,它也不起作用。
  • 我没有看到循环记录集的常用代码。以防万一:dim przypisanie5 as something: rst.movefirst: do until rst.eof: przypisanie5 = rst!P_nazwaPortfela: rst.movenext: loop

标签: sql vba ms-access


【解决方案1】:

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

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

【讨论】:

  • 我知道出了什么问题。我需要写:(((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)但还是谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多