expression式中缺less值

执行下面的代码时,我收到一个通用的ODBC错误。 在错误之前,我还会收到一个popup框,提示参数1的“input参数值”。 我不知道什么范围在我的代码中被错误引用。

在这里输入图像说明

Sub CIABIConnect() Dim sConn As String Dim sSql As String Dim oQt As QueryTable Dim part As String Dim fromDate As String Dim toDate As String Dim reportSelect As String Dim thisBook As Workbook Dim inSheet As Worksheet Dim outSheet As Worksheet Dim connName As String Dim todateString As String Dim fromdateString As String Dim locString As String Dim lastRow As Integer Set thisBook = ActiveWorkbook Set inSheet = thisBook.Worksheets("Direct Query") Set outSheet = thisBook.Worksheets("Direct Data") inSheet.Select inSheet.Range("B6").Activate lastRow = inSheet.UsedRange.Rows.Count fromDate = Format(inSheet.Cells(2, 2).Value, "yyyymmdd") toDate = Format(inSheet.Cells(3, 2).Value, "yyyymmdd") fromdateString = " '" & fromDate & "' " todateString = " '" & toDate & "' " connName = inSheet.Cells(11, 2).Value Call deleteConnections outSheet.Cells.Clear outSheet.Select sConn = "ODBC;DSN=" & connName sConn = sConn & ";DBQ=" & connName sConn = sConn & ";" For i = 2 To lastRow Select Case i Case 37: sSql = sSql & inSheet.Cells(i, 4).Value & fromdateString Case 38: sSql = sSql & inSheet.Cells(i, 4).Value & todateString Case Else: sSql = sSql & inSheet.Cells(i, 4).Value End Select Next i Set oQt = ActiveSheet.QueryTables.Add( _ Connection:=sConn, _ Destination:=outSheet.Range("a1"), _ Sql:=sSql) oQt.refresh CrwOut.Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Columns.AutoFit End Sub Sub deleteConnections() For Each conn In ThisWorkbook.Connections conn.Delete Next conn End Sub 

SQL:

 SELECT 'Direct from APIA' as source_nm ,itm.merch_cat_desc ,case when data.purchase_type='EDGE' then 'Edge' when data.purchase_type='TRADITIONAL' then 'Traditional' else '?' end "EDGE/NON-EDGE" ,sum(data.item_qty) as Net_Quantity ,sum(data.bams_price) as Net_Cost ,sum(data.revenue) as Net_Revenue ,sum(DATA.IT_DISC_AMT * SIGN (DATA.ITEM_QTY)) as Net_Discount ,sum( case when data.item_qty > 0 then data.revenue else 0 end ) as Gross_Revenue ,sum( case when data.item_qty > 0 then data.item_qty else 0 end ) as Gross_Quantity FROM DATA -- JOIN INV.INV_STORE_EXTRACT STORE ON STORE.STORE_ID = DATA.STORE -- JOIN INV.INV_CODA_CHANNEL CODA ON CODA.CODA_DEPT = STORE.CODA_DEPT -- JOIN INV.ITEM_LIST_DRM ITM ON ITM.ITEM_CD = DATA.ITEM_CODE -- LEFT OUTER JOIN INV.PROGRAM_DRM PRGRM ON ITM.EQP_ITEM_PROGRAM_RPTKEY = PRGRM.PROGRAM_RPTKEY -- WHERE data.ord_comp_date between **20170426 and 20170427** --data.acct_prd='201708' and data.trade_in_ind = 'N' and CODA.CHANNEL_CATEGORY='DIRECT' and PRGRM.program_cd in ('APO','CPO','IOT','NEW','USED','VIR') and ITM.EQP_CLASS_DESC='Wireless Devices' group by itm.merch_cat_desc ,case when data.purchase_type='EDGE' then 'Edge' when data.purchase_type='TRADITIONAL' then 'Traditional' else '?' end