2012-02-09 79 views
2

我想通過ODBC使用ADO從數據庫表中提取記錄並將它們放入Excel工作表中。我可以做這個。最終,我想要將數據包含在Excel表格中。我知道如何通過選擇適當的單元格並使用「插入」菜單創建表格來手動執行此操作。我如何在我的VBA代碼中將返回的查詢結果放入Excel表格中的目標工作表中?我嘗試使用宏記錄器,但生成的代碼沒有幫助。如何使用Excel VBA和ADO將查詢結果放入數據表中?

+0

你想要的表是刷新?請問什麼是數據源,品牌和版本?你使用的是什麼版本的Excel?你準確記錄了什麼行爲?我發現這是一種非常有用的方式,可以開始使用這種代碼。 – 2012-02-09 03:43:51

+0

是的,我希望它是可刷新的,但不一定可更新。我正在使用PostgreSQL ODBC 9.0驅動程序。我記錄的操作是:選擇數據範圍,選擇插入選項卡,單擊表並給它一個名稱。我也離開了檢查標題框。我沒有看到如何將生成的代碼與我的數據檢索代碼集成。我正在使用Excel 2007. – n8gard 2012-02-09 17:03:38

回答

2

是這樣的嗎?

在導入數據後添加此代碼。我假設以下。請相應修改。

  • 的數據在Sheet1

    的單元格A1
  • 行1導入具有列標題

    Sub Sample() 
    
        Dim LastRow As Long, LastCol As Long 
        Dim ws As Worksheet 
        Dim rng As Range 
    
        Set ws = Sheets("Sheet1") 
    
        LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row 
        LastCol = ws.Cells(1, Columns.Count).End(xlToLeft).Column 
    
        Set rng = Range("$A$1:$" & Split(Cells(, LastCol).Address, "$")(1) & "$" & LastRow) 
    
        With ws 
         .ListObjects.Add(xlSrcRange, rng, , xlYes).Name = "Table1" 
         .ListObjects("Table1").TableStyle = "TableStyleLight2" 
        End With 
    
    End Sub 
    
+0

這是完美的。非常感謝。我將這個子文件添加到我的模塊中,稍微調整它以將目標工作表作爲參數,所以現在我可以在多個位置使用它。 – n8gard 2012-02-10 18:52:07

1

如果您單擊「數據」選項卡上的「從其他源」按鈕,應該會看到列出的ODBC。然後您可以指定要連接的表格。然後,您將擁有一個包含數據的可刷新表格,換句話說,它將您已經在做的和您想要的內容組合到一個步驟中。根據您在評論中所說的內容,我認爲這是一條路,但如果我錯過了某些東西,請告訴我。

+0

嗨,道格。當我通過ADO從數據庫中提取記錄時,我期待在VB代碼中執行此操作。我一直無法在任何地方找到任何代碼示例。 – n8gard 2012-02-09 23:53:34

相關問題