ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

Excel VBA のクラスを使ってデータベースへ接続する(ADO)

      2018/07/16

データベースの処理をクラスモジュールに書く

ExcelVBAで、クラス使用する方法の詳細については、VBAで、クラスを作成(クラスモジュール・インスタンス) を参照してください。
また、ADOで、データベースに接続する方法に関しては、Excel VBA データベース(ADO) を参照してください。

データベースへの接続をクラスを使用して処理する例です。
ここでは、データベースへの接続・解除、トランザクションの処理等をクラスモジュールに記述します。クラス名は「DBConnection」とします(サンプルVBAソース その1)。
実際にクラスを利用するには、標準モジュールを使用します。
・「Access に接続し、重複レコードを削除」(サンプルVBAソース その2
・「Excel にデータベースとして接続しデータを表示」(サンプルVBAソース その3


サンプルVBAソース その1(クラスモジュール)



サンプルVBAソース その2(標準モジュール)


実行結果

サンプルVBAソースその2 実行前の Access(mydb1.accdb)テーブル6

DB Class Access 重複レコードの削除1

サンプルVBAソースその2 実行後の Access(mydb1.accdb)テーブル6

DB Class Access 重複レコードの削除2



サンプルVBAソース その3(標準モジュール)


実行結果

DB Class Excel へ接続



 - データベース , , , , , , , , , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

ADOX テーブル名・クエリ名を取得
テーブル名、クエリ名の取得(ADOX)

テーブル名の取得 Table.Type プロパティ 【書式】 <取得> obje …

トランザクション01
トランザクション(ADO)BeginTrans、CommitTrans、RollbackTrans

ADO でのトランザクション処理 【書式】 Sub Sample_Transac …

ora ファイル
データベース(Oracle)に接続する(OLE DB を使用)

OLE DB プロバイダ OLE DBには、Oracle 提供の Oracle …

RecordCount プロパティ(ADO)
Recordset オブジェクト内のレコード数(ADO)RecordCount プロパティ

RecordCount プロパティ Recordset オブジェクトのレコード数 …

Excelに接続する(ADO)
Excelファイルに接続(ADO)

ADOでExcelファイルに接続 ADO を使用してExcelファイルを読み込み …

Delete メソッド(ADO)
レコードの削除(ADO)Delete メソッド

データベースのレコードを削除する Delete メソッド カレントレコードを削除 …

ADOX クエリを作成
クエリの作成・削除(ADOX)

ADOX を使用してクエリを作成・削除 クエリを作成する手順 【書式】 <参照設 …

Filter プロパティ(ADO)
レコードを指定した条件で抽出する(ADO)Filter プロパティ

データベースのレコードを指定した条件で抽出する Filter プロパティ 【書式 …

CopyFromRecordset メソッド
Recordset オブジェクトの内容をワークシートにコピーする(CopyFromRecordset メソッド・ADO)

CopyFromRecordset メソッド ADO の Recordset オ …

Command.Execute Insert Into 文
SQL文を実行する(ADO)Execute メソッド

Command オブジェクトの Execute メソッドで、SQL文を実行 Co …