sql - 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
出现的错误是..:此代码生成消息错误:
语法错误(无运算符)。
如何处理查询?
解决方案
打印完成的 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 的内容。
运行查询,您将看到它“不工作”的原因。
推荐阅读
- docker - docker:查看网络 CIDR
- google-api - 我可以在哪里存储用户可访问的 Google 幻灯片模板?
- mysql - MySQL select two smallest id with duplicated conditions
- python - python _init_ 函数中令人困惑的属性分配
- cordova - Cordova resolveLocalFileSystemURL 在 Windows 上不返回文件对象
- matlab - 如何获得周末后新一个月的第一个工作日?
- java - Mybatis中使用注解的对象嵌套映射
- android - 我无法在 Visual Studio 2017 中创建 android 密钥库
- angular - 为什么 Angular 6 组件没有在延迟加载的模块中路由
- postgresql - postgres sql:获取统一的行