2016-05-26 36 views
0

次のクエリは、Excelで結果を提供しています。 "Expr1000 RESULT"結果をヘッダーなしで取得する必要があります。クエリで重複は見つかりませんが、SUM関数を削除すると、ヘッダーが正しいヘッダーに戻ります。私はどんな考えにも非常に感謝しています。ExcelでSQLクエリでSUMを実行すると、Expr1000エラーが発生する

Sub CalculateComplete() 
Sheet2.Cells.ClearContents 

Dim oCn As ADODB.Connection 
Dim oRS As ADODB.Recordset 
Dim ConnString As String 
Dim SQL As String 

Dim QueryDPiN As String 
QueryDPiN = "SELECT IIF(SUM([Amount Due]) IS NULL, 0, SUM([Amount Due])) FROM [OP$] WHERE [Originator Dept]='BLC New Business' AND [Overpayment Category]='Dollars Paid in Error';" 

Call SQLQueries(QueryDPiN, "C2") 

End Sub 

Sub SQLQueries(QueryVariable As String, TableLocation As String) 

Dim oCn As ADODB.Connection 
Dim oRS As ADODB.Recordset 
Dim ConnString As String 
Dim SQL As String 
Dim qt As QueryTable 

ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\cnop0g\Desktop\OP.xlsx;Extended Properties=Excel 8.0;Persist Security Info=False" 
Set oCn = New ADODB.Connection 
oCn.ConnectionString = ConnString 
oCn.ConnectionTimeout = 30 
oCn.Open 

SQL = QueryVariable 

Set oRS = New ADODB.Recordset 
oRS.Source = SQL 
oRS.ActiveConnection = oCn 
oRS.Open 

Set qt = Worksheets(6).QueryTables.Add(Connection:=oRS, _ 
Destination:=Worksheets(6).Range(TableLocation)) 

    qt.Refresh 

If oRS.State <> adStateClosed Then 
oRS.Close 
End If 

If Not oRS Is Nothing Then Set oRS = Nothing 
If Not oCn Is Nothing Then Set oCn = Nothing 

End Sub 

あなたの助けをありがとう! - Zokah

答えて

0

あなたはSQLエンジンが自動的に1を生成しないようにクエリの列名AS [Amount Due]を指定する必要があります。

QueryDPiN = "SELECT IIF(SUM([Amount Due]) IS NULL, 0, SUM([Amount Due])) AS [Amount Due] FROM [OP$] WHERE [Originator Dept]='BLC New Business' AND [Overpayment Category]='Dollars Paid in Error';" 
+0

これは完全に働きました。早速のお返事ありがとうございます!ヘッダー全体を削除することを提案しましたか? – mapaul1977

関連する問題