VBAから ADO を使わずにODBC経由でデータベースにアクセスする方法です。 サンプルデータベース 次のようなアクセスのデータベースがあるとします。 テーブル名は「商品マスター」 カラム名は、ID, 商品名, 金額 保存してあるファイルは C:\Test\SampleDB.accdb DSNの用意 このファイルにアクセスするための DSN を作成します。(作成方法は後述) VBAの実行 Excel でシートを開き、次のプロシージャーを実行します。これはテーブルを作成するプロシージャーなので、最初に一回実行するだけです。 Private Sub uCreateTableWithQuery() Dim uWS As Worksheet Dim uList As ListObject Set uWS = ActiveSheet Set uList = uWS.ListObjects.Add( _ SourceType:=xlSrcQuery, _ Source:="ODBC;DSN=NK Test", Destination:=Range("A3")) uList.DisplayName = "ExcelProductMaster" End Sub DSN=にDSN名を指定します。この例では、NK Test。 Destination はテーブルの左上を配置するセルです。この例ではA3セル。 DisplayName はテーブル名を指定します。この例ではExcelProductMaster。 実行すると次のようにテーブルが作成されます。テーブルはQueryTableに接続され、QueryTableはDSNを利用可能です。 次のプロシージャーを実行します。 Public Sub uRefleshQueryTable() Dim uList As ListObject Dim uSQL As String Set uList = ActiveSheet.ListObjects("ExcelProductMaster") uSQL = "SELEC
コメント
コメントを投稿