各位老大,我用INSERT INTO向ACCESS添加数据的时候总会死提示别名循环使用,因为源表的字段很多,我只取几个想要的,所以用到一个变量S,代表要SELECT的字段名,代码如下请帮忙解答,谢谢!     s = "[ORDER_NUM],[SALES REP NAME],[QUOTATION NUMBER]," _
       & "[AIRWAYBILL NUMBER],[CUSTOMER NUMBER],[POSTAL CODE],[CITY CODE]," _
       & "[REGION CODE],[INVOICE DATE],[TIER],[ETA DATE]," _
       & "[LOB],[TOTAL TIE SYSTEM QUANTITY],[FTY TOTAL BOX QUANTITY],[FTY GROSS WEIGHT],[FTY VOLUMETRIC WEIGHT]," _
       & "[SALES PRICE],[MERGE ORDER FLAG],[HUB TOTAL BOX QTY],[HUB GROSS WEIGHT],[HUB VOLUMETRIC WEIGHT]," _
       & "[TOTAL ORDER BOX QUANTITY],[TOTAL ORDER GROSS WEIGHT],[TOTAL ORDER VOLUMETRIC WEIGHT],[MASTER LOCATION],[SHIP METHOD]"
strSQL = "select [ORDER_NUM] from TEMP"
strSQL = "(select * from [Excel 8.0;DATABASE=" & filename & ";].[SHEET1$a:av] where [ORDER_NUM] NOT IN (" & strSQL & "))"
’下面这句出错了
CNN.Execute "INSERT INTO [TEMP] select " & s & "  from " & strSQL

解决方案 »

  1.   

    在 From 中使用的子查询必须有别名
    CNN.Execute "INSERT INTO [TEMP] select " & s & "  from " & strSQL & " T"
      

  2.   

    给内部子查询也加别名试试
    strSQL = "select [ORDER_NUM] from TEMP T1"
      

  3.   

    这次提示操作符丢失:在“NOT IN (select [ORDER_NUM] from TEMP) t1”中,这是怎么回事啊
      

  4.   

    NOT IN 后面是个集合,集合是不能加别名的。
    别名 t1 应该在括号内。
      

  5.   

    strSQL = "(select * from [Excel 8.0;DATABASE=" & filename & ";].[SHEET1$a:av] t where [ORDER_NUM] NOT IN (select [ORDER_NUM] from TEMP T1))"CNN.Execute "INSERT INTO [TEMP] select " & s & "  from " & strSQL & " r"还是循环引用,真不明白了...