0
Apache Drillを照会するためのマクロを構築しようとしています。私はそれを働かせることはできません。VBA/Excel - Apache Drillに照会する
私は2つの方法を試しました。 最初にQueryTables.Add
を使用してください。結果を更新しないように結果を追加し続けますが、古い結果のみを右にシフトし、A1に新しいセットを挿入します。
Q:クエリを作成して古い結果を削除し、新しい場所を同じ場所に配置するにはどうすればよいですか?
もう一度ADODB.Recordset
を試してみてください。接続が機能しないエラー:[Microsoft] [ODBC Driver Manager]データソース名が見つかりません。デフォルトドライバが指定されていません。
Q:Appachi Drillからデータを取得するのにADODB.Connection
、ADODB.Recordset
を使用できますか?私は(マクロが最初の「データ」シートをクリアし、クエリからの結果を加算最初の方法を中心に働いた
最初の試み
Sub S3Download()
Dim sConn As String
Dim oQt As QueryTable
Dim sSql As String
sConn = "ODBC;DSN=MapR Drill;"
sSql = "SQL statement"
Set oQt = Sheets("Data").QueryTables.Add(Connection:=sConn,_
Destination:=Sheets("Data").Range("A1"), SQL:=sSql)
With oQt
.Name = "Query1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=True
.RefreshStyle = xlInsertDeleteCells
End With
End Sub
第二の試み
Sub S3_download()
Dim oCn As ADODB.Connection
Dim oRS As ADODB.Recordset
Dim ConnString As String
Dim SQL As String
Dim qt As QueryTable
ThisWorkbook.Sheets("Data").Activate
ConnString = "Driver={MySQL ODBC 5.1 Driver};DSN=MapR Drill;"
Set oCn = New ADODB.Connection
oCn.ConnectionString = ConnString
oCn.Open
SQL = "SQL statement"
Set oRS = New ADODB.Recordset
oRS.Source = SQL
oRS.ActiveConnection = oCn
oRS.Open
Set qt = ThisWorkbook.Sheets("Data").ListObjects.Add(SourceType:=XlListObjectSourceType.xlSrcQuery, Source:=oRS, _
Destination:=ThisWorkbook.Sheets("Data").Range("A1")).QueryTable
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