Excel VBAとSQL Serverを使用してDISTINCT値を取得しようとしています。私はDBへの接続を確立し、他のクエリを実行することができます。ただし、次のSQLクエリは、私のVBAコードが破損する原因:Excel VBAの問題を使用してSQL Serverを照会
SQL文:
Select DISTINCT ZoneName, IsoName From vDeal
Where PeriodMonth >= '2015-03-01'
Order by IsoName, ZoneName ASC
エクセルVBA:
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$; & _
Location=LOADZONE_DISTINCT", Destination:=Range("$C$1")).QueryTable
.CommandText = "Select DISTINCT ZoneName, IsoName From vDeal Where PeriodMonth >= & _
'2015-03-01' Order by IsoName, ZoneName ASC"
.CommandType = xlCmdSql
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "LOADZONE_DISTINCT"
.Refresh BackgroundQuery:=False
End With
The field PeriodMonth is a date formatted "yyyy-mm-dd"
Excel error: "Run-time error '1004': Application-defined or object defined error
SQLクエリは、MS SQLサーブの管理に完璧に動作しますスタジオでは、Excel側で内訳が必要です。 VBA側で参照ライブラリが見つからないか、または日付書式の問題ですか?
これらの行継続をポストの目的で追加しましたか、コードはVBEエディタと同じですか?文字列リテラルは、このように複数の行にまたがることはできないので...そのコードはコンパイルされません。 –