【发布时间】:2022-01-17 18:37:24
【问题描述】:
我有这个基本的 VBA SQL 语句。我搜索一个外部数据库并返回外部数据库中字段[LabNumberPrimary] = [labnummer] 的所有记录。
我的 VBA 代码重复了一些小的调整。如何组合这 2 条语句,使我的 VBA 代码变得更小且更易于使用?
第一个语句:
cmdString = "SELECT DISTINCT t.rapportnaam, t.norm, t.analysenaam FROM taken t, monsters m, opdrachten o WHERE o.labnummer = " & [LabNumberPrimary] & " AND m.opdrachtteller = o.opdrachtteller AND t.monsterteller = m.monsterteller"
第二条语句:
cmdString = "SELECT DISTINCT t.rapportnaam, t.norm, t.analysenaam FROM taken t, monsters m, opdrachten o WHERE o.labnummer = " & [LabNumber_4_CT] & " AND m.opdrachtteller = o.opdrachtteller AND t.monsterteller = m.monsterteller"
如何组合这两个语句?我试过了:
cmdString = "SELECT DISTINCT t.rapportnaam, t.norm, t.analysenaam FROM taken t, monsters m, opdrachten o WHERE o.labnummer = " & [LabNumberPrimary] & " AND o.labnummer = " & [LabNumber_4_CT] & " AND m.opdrachtteller = o.opdrachtteller AND t.monsterteller = m.monsterteller"
但似乎不起作用。
LabNumberPrimary 和 LabNumber_4_CT 是我的查询 qry_Administration 中的列名
编辑: 经过一番研究,我想我知道为什么没有返回记录了。
这段代码:
AND m.opdrachtteller = o.opdrachtteller AND t.monsterteller = m.monsterteller"
两个号码的“出纳员”不同。所以我认为解决方案应该是这样的:我想你们知道我要去哪里:
cmdString = "SELECT DISTINCT t.rapportnaam, t.norm, t.analysenaam" & _
" FROM taken t, monsters m, opdrachten o" & _
" WHERE (o.labnummer = " & [LabNumberPrimary] & _
" AND m.opdrachtteller = o.opdrachtteller" & _
" AND t.monsterteller = m.monsterteller")
" AND WHERE (o.labnummer = " & [LabNumber_4_CT] & _
" AND m.opdrachtteller = o.opdrachtteller" & _
" AND t.monsterteller = m.monsterteller")
这样的说法是否可以结合起来?
【问题讨论】:
-
它不起作用是什么意思?总是有2个
-
经过一些测试,我想我可以回答你的问题。不,并不总是 2。所以在我的综合声明中:我可以确认,如果两个字段都不为空,那么我在 Access 中没有收到错误,没有返回记录。如果字段 LabNumber_4_CT 为空,则我收到错误消息:[Miscrosoft][ODBC SQL Server Driver][SQL Server] 关键字“AND”附近的语法不正确。