繁体   English   中英

MS Access VBA:内部联接的语法错误

[英]MS Access VBA: Syntax error with inner join

我试图将一个简单的内部联接添加到MS Access查询中。 我试图将表与单个字段连接起来只是为了将结果限制在cusnums的子集。 我收到了我根本不理解的语法错误(见下文)。

我在下面包括了旧代码和新代码。 唯一的变化是内部联接的添加。 任何帮助,将不胜感激。 谢谢。

错误信息:

查询表达式中的语法错误(缺少运算符)

'(qry_Co_1_PRET_Routed_2_Days_Out.cusnum = tbl_Store_With_Sat_Ord.shpcusnum)
LEFT JOIN 
        qry_Co_1_PRET_Open_Order_2_Days_Out 
ON      
        (qry_Co_1_PRET_Routed_2_Days_Out.co_num = qry_Co_1_PRET_Open_Order_2_Days_Out.co_num) 
    AND 
        (qry_Co_1_PRET_Routed_2_Days_Out.cusnum = qry_Co_1_PRET_Open_Order_2_Days_Out.shpcusnum'

旧代码:

SELECT 
        IIf([totordqty]>0, "Order In","No Order") AS OO_Staus, 
        qry_Co_1_PRET_Routed_2_Days_Out.co_num, 
        qry_Co_1_PRET_Routed_2_Days_Out.prislscod, 
        qry_Co_1_PRET_Routed_2_Days_Out.cusnum, 
        qry_Co_1_PRET_Routed_2_Days_Out.co_nam, 
        qry_Co_1_PRET_Routed_2_Days_Out.cusphn, 
        Switch([totordqty]>0,"",[cusphn]<>"",[cusphn],True,"No Phone # on File") AS Cust_Phone, 
        qry_Co_1_PRET_Routed_2_Days_Out.rtedow, 
        qry_Co_1_PRET_Routed_2_Days_Out.rtecod, 
        qry_Co_1_PRET_Routed_2_Days_Out.stpnum, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.plnshpdat, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.totordqty, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.ordnetwgt, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.ordcub, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.shptotamt, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.prcflg, 
        qry_Co_1_PRET_Routed_2_Days_Out.cusemaadd, 
        qry_Co_1_PRET_Routed_2_Days_Out.TD_Email
FROM 
        qry_Co_1_PRET_Routed_2_Days_Out 
LEFT JOIN 
        qry_Co_1_PRET_Open_Order_2_Days_Out 
ON 
        (qry_Co_1_PRET_Routed_2_Days_Out.co_num = qry_Co_1_PRET_Open_Order_2_Days_Out.co_num) 
    AND 
        (qry_Co_1_PRET_Routed_2_Days_Out.cusnum = qry_Co_1_PRET_Open_Order_2_Days_Out.shpcusnum)
WHERE 
        (((IIf([totordqty]>0,"Order In","No Order"))="No Order"))
ORDER BY 
        IIf([totordqty]>0,"Order In","No Order"), 
        qry_Co_1_PRET_Routed_2_Days_Out.rtecod, 
        qry_Co_1_PRET_Routed_2_Days_Out.stpnum;

新代码:

SELECT 
        IIf([totordqty]>0,"Order In","No Order") AS OO_Staus, 
        qry_Co_1_PRET_Routed_2_Days_Out.co_num, 
        qry_Co_1_PRET_Routed_2_Days_Out.prislscod, 
        qry_Co_1_PRET_Routed_2_Days_Out.cusnum, 
        qry_Co_1_PRET_Routed_2_Days_Out.co_nam, 
        qry_Co_1_PRET_Routed_2_Days_Out.cusphn, 
        Switch([totordqty]>0,"",[cusphn]<>"",[cusphn],True,"No Phone # on File") AS Cust_Phone, 
        qry_Co_1_PRET_Routed_2_Days_Out.rtedow, 
        qry_Co_1_PRET_Routed_2_Days_Out.rtecod, 
        qry_Co_1_PRET_Routed_2_Days_Out.stpnum, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.plnshpdat, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.totordqty, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.ordnetwgt, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.ordcub, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.shptotamt, 
        qry_Co_1_PRET_Open_Order_2_Days_Out.prcflg, 
        qry_Co_1_PRET_Routed_2_Days_Out.cusemaadd, 
        qry_Co_1_PRET_Routed_2_Days_Out.TD_Email
FROM 
        qry_Co_1_PRET_Routed_2_Days_Out 
INNER JOIN
        tbl_Store_With_Sat_Ord
ON
        (qry_Co_1_PRET_Routed_2_Days_Out.cusnum = tbl_Store_With_Sat_Ord.shpcusnum)
LEFT JOIN 
        qry_Co_1_PRET_Open_Order_2_Days_Out 
ON      
        (qry_Co_1_PRET_Routed_2_Days_Out.co_num = qry_Co_1_PRET_Open_Order_2_Days_Out.co_num) 
    AND 
        (qry_Co_1_PRET_Routed_2_Days_Out.cusnum = qry_Co_1_PRET_Open_Order_2_Days_Out.shpcusnum)
WHERE 
        (((IIf([totordqty]>0,"Order In","No Order"))="No Order"))
ORDER BY 
        IIf([totordqty]>0,"Order In","No Order"), 
        qry_Co_1_PRET_Routed_2_Days_Out.rtecod, 
        qry_Co_1_PRET_Routed_2_Days_Out.stpnum;

将您的SQL代码的FROM部分开始更改为:

FROM 
(
            qry_Co_1_PRET_Routed_2_Days_Out 
    LEFT JOIN 
            qry_Co_1_PRET_Open_Order_2_Days_Out 
    ON      
            (qry_Co_1_PRET_Routed_2_Days_Out.co_num = qry_Co_1_PRET_Open_Order_2_Days_Out.co_num) 
        AND 
            (qry_Co_1_PRET_Routed_2_Days_Out.cusnum = qry_Co_1_PRET_Open_Order_2_Days_Out.shpcusnum)
)
INNER JOIN
        tbl_Store_With_Sat_Ord
ON
        (qry_Co_1_PRET_Routed_2_Days_Out.cusnum = tbl_Store_With_Sat_Ord.shpcusnum)
WHERE 
        [totordqty] <= 0
ORDER BY 
        [totordqty] <= 0, 
        qry_Co_1_PRET_Routed_2_Days_Out.rtecod, 
        qry_Co_1_PRET_Routed_2_Days_Out.stpnum;

注意对WHEREORDER BY子句的更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM