我希望我所要求的是有道理的。我希望有一个查询根据用户输入选择特定类型的内连接。
这就是我所拥有的。
查询:
表:
形式:
在我的主查询“qryFiltered”中,我有以下SQL代码:
SELECT qryAllOrder.*
FROM
SWITCH
(Forms!EnterWork!ogLandSea = 1, (qryAllOrder LEFT JOIN tblLowPriority ON qryAllOrder.[WORK_ORDER_NBR] = tblLowPriority.[WO]) INNER JOIN qrySea ON qryAllOrder.WORK_ORDER_NBR = qrySea.WORK_ORDER_NBR,
Forms!EnterWork!ogLandSea = 2, (qryAllOrder LEFT JOIN tblLowPriority ON qryAllOrder.[WORK_ORDER_NBR] = tblLowPriority.[WO]) INNER JOIN qryLand ON qryAllOrder.WORK_ORDER_NBR = qryLand.WORK_ORDER_NBR)
WHERE tblLowPriority.WO Is Null
基本上,我正在寻找的是根据用户在表单上选择的内容来选择连接。内连接将根据此输入选择qrySea或qryLand。我得到的错误是:“FROM子句中的语法错误。”
我在这里做错了什么?这是Switch功能不起作用。我在没有Switch功能的情况下单独尝试了两个陆地和海洋选项,它可以工作。我似乎无法找到根据用户输入进行内部连接更改的方法。
感谢您的所有回复!
答案 0 :(得分:0)
我能够通过从主查询到两个子查询的左连接来实现此功能。然后我在WHERE子句中添加了一个Switch标准:
WHERE (Switch([Forms]![EnterWork]![ogLandSea]=1,[qrySea]![WORK_ORDER_NBR] Is Not Null Or [qrySea]![WORK_ORDER_NBR] Is Null Or [qryLand]![WORK_ORDER_NBR] Is Not Null,[Forms]![EnterWork]![ogLandSea]=2,[qrySea]![WORK_ORDER_NBR] Is Not Null,[Forms]![EnterWork]![ogLandSea]=3,[qryLand]![WORK_ORDER_NBR] Is Not Null,[Forms]![EnterWork]![ogFN]=4,[qrySea]![WORK_ORDER_NBR] Is Null And [qryLand]![WORK_ORDER_NBR] Is Null))<>False)
&#13;
基本上,这就是它的作用: