2012-02-09 10 views
2

ODBC経由でADOを使用してデータベーステーブルからレコードを取り出し、Excelワークシートに配置したいと考えています。私がすることができます。最終的には、データをExcelテーブルに収めたいと思っています。適切なセルを選択し、[挿入]メニューを使用してテーブルを作成することで、手動でこれを行う方法を知っています。 VBAコードでこれを実行して、返されたクエリ結果をExcelワークシートのターゲットワークシートに配置する方法はありますか?私はマクロレコーダーを使ってみましたが、生成されたコードは役に立ちませんでした。Excel VBAとADOを使用してクエリ結果をデータテーブルに入れる方法は?

+0

を使用すると、表はリフレッシュになりたいですか持っていますか?データソース、ブランド、バージョンはどうですか?どのExcelのバージョンを使用していますか?正確にどのような行動を記録しましたか?私は、この種のコードを始めるには非常に便利な方法であることが分かっています。 –

+0

はい、私はリフレッシュ可能ですが、必ずしも更新可能ではありません。 PostgreSQL ODBC 9.0ドライバを使用しています。記録したアクションは、データ範囲の選択、挿入タブの選択、表のクリック、名前の入力です。私はまた、チェックされたヘッダーのボックスを残しました。生成されたコードをデータ検索コードと統合する方法はわかりません。私はExcel 2007を使用しています。 – n8gard

答えて

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

1

[データ]タブの[その他のソースから]ボタンをクリックすると、ODBCがリストされているはずです。次に、接続先の表を指定できます。あなたはあなたのデータを含んでいるリフレッシュ可能なテーブルを持っています。言い換えれば、あなたがしていることを1つのステップにしたいものと組み合わせます。あなたのコメントであなたが言ったことに基づいて、私はこれが行く方法だと思っていますが、もし私が何かを見逃しているなら教えてください。

+0

こんにちはダグ。私は私のVBコードでは、ADOを介してデータベースからレコードをプルするときにこれを行うために探しています。どこのコード例も見つけられませんでした。 – n8gard

関連する問題