2014-04-04 18 views
2

下面的代碼是大項目中的一部分。SQL明顯不能在Excel中工作VBA

下面的代碼計算特定列中的記錄。

Sub qareportds() 
    Dim wb As Workbook 
    Dim ws As Worksheet 
    Dim con As ADODB.Connection 
    Dim rs As ADODB.Recordset 
    Dim sname As String 
    Dim i As Integer 
    Dim lrow As Integer 

    sname = ActiveSheet.Name 
    Set con = New ADODB.Connection 
    Set rs = New ADODB.Recordset 
    value1 = weeknum 

    con.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & ActiveWorkbook.FullName 

    If con.State = adStateClosed Then con.Open 

    Dim query1 As String 

    query1 = "SELECT COUNT(RETAIL_SKU) FROM [RETOUCH$]" 

    rs.Open query1, con, adOpenKeyset, adLockOptimistic 

    Sheets("SHEET3").Range("a1").CopyFromRecordset rs 

    rs.Close 

    Set rs = Nothing 
    Set con = Nothing 
    End Sub 

現在我需要的。我用下面的查詢

query1 = "SELECT COUNT(distinct RETAIL_SKU) FROM [RETOUCH$]" 

列計數不同的值,但它拋出下面的錯誤..

odbc driver does not support the requested properties 

更新部分:

是否有可能插入這個查詢 -

SELECT COUNT(A.RETAIL_SKU) AS TotalCount FROM (SELECT DISTINCT RETAIL_SKU FROM [RETOUCH$]) AS A)

這個

SELECT REGION + '-' + STUDIO_SHORT_NAME, 
    AVG(WorkedHours), 
    AVG(OVERALL_CYCLE_TIME_HRS), 
    'Studio Retouch - By Studio Locations - Non IA' as value1, 
    13 as date1 
FROM [RETOUCH$] 
WHERE RETOUCH_LEVEL IN (1,2,3,4,5,6) 
    AND MERCHANT='Amazon' 
    AND SOURCE_TYPE='Studio' 
GROUP BY REGION + '-' + STUDIO_SHORT_NAME 

回答

5

這是因爲COUNT(DISTINCT ...)尚未supprted。嘗試,

SELECT COUNT(A.RETAIL_SKU) AS TotalCount 
FROM 
(
    SELECT DISTINCT RETAIL_SKU 
    FROM [RETOUCH$] 
) AS A 
+0

完美的感謝..它的工作:) –

+0

是否可以在我的問題中更新部分幫助我? –