2017-06-22 9 views
0

Apache Drillを照会するためのマクロを構築しようとしています。私はそれを働かせることはできません。VBA/Excel - Apache Drillに照会する

私は2つの方法を試しました。 最初にQueryTables.Addを使用してください。結果を更新しないように結果を追加し続けますが、古い結果のみを右にシフトし、A1に新しいセットを挿入します。
Q:クエリを作成して古い結果を削除し、新しい場所を同じ場所に配置するにはどうすればよいですか?

もう一度ADODB.Recordsetを試してみてください。接続が機能しないエラー:[Microsoft] [ODBC Driver Manager]データソース名が見つかりません。デフォルトドライバが指定されていません。
Q:Appachi Drillからデータを取得するのにADODB.ConnectionADODB.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 

答えて

0

所望の場所に)

Sub S3Download() 

    Dim sConn As String 
    Dim oQt As QueryTable 
    Dim sSql As String 


    'removing old query data 

    Sheets("Data").Cells.ClearContents 

    For Each qTable In Sheets("Data").QueryTables 
       qTable.Delete 
    Next qTable 



    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 
関連する問題