VBA 404号室:Accessデータベースのテーブル情報を削除

スポンサーリンク
VBAの部屋

ExcelからAccessデータベースのテーブルの情報を削除する

Kappo
Kappo

Excelのシート内データをAccessのデータベース(主にテーブルデータ)と比較しながら更新・追記していくのは結構手間で時間がかかっちゃいますよね

この部屋では、データベースのテーブルデータを一回ごっそり削除して新しくデータを追記していくと処理は簡単になりますよ!!

ただ、Accessってテーブルデータの削除ー>追記を繰り返しているとファイルサイズがどんどん増えて行っちゃいます↓↓泣

全体のプログラムのなかのどこかのタイミングで最適化をすることを絶対おすすめします!

※テーブルの作成は 「VBA:Accessデータベースの情報を取得ー別部屋」を参照してください

データベース(Access)の準備が出来たので取得のプログラムを記述します

「ADO」が使えるように参照設定で追加する
※追加の方法は 「参照ライブラリを追加する(参照設定)-別部屋」を参照してください

コマンドボタンがクリックされた時に実行されるプログラム
「CommandButton3」
「VBA:Accessデータベースの情報を取得」で作成したプログラムの「接続後の処理プログラム」の箇所を変更します

プログラム

 tblDataの情報を全て削除

tblDataの情報を全て削除

▼プログラム▼

Dim cnn As ADODB.Connection
Dim mySQL As String
Dim mdbPath As String

mdbPath = "C:\Sample¥Sample.accdb" '接続するAccessファイルのフルパス

Set cnn = New ADODB.Connection

'DB接続文字列
cnn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.16.0;" _
                            & "Data Source=" & mdbPath & ";"

cnn.Open '接続の確立

'------------------------------
'接続後の処理プログラム

    'レコード削除のSQL文
    mySQL = "DELETE FROM tblData"

    cnn.BeginTrans     '新しいトランザクションを開始します

    cnn.Execute mySQL    'SQLを実行

    cnn.CommitTrans      '現在のトランザクションを終了します

'------------------------------

cnn.Close

'------------------------------
'後片付け
Set cnn = Nothing

テーブルのデータ全てが削除されました

Amazon | 本, ファッション, 家電から食品まで | アマゾン
Amazon.co.jp 公式サイト。アマゾンで本, 日用品, ファッション, 食品, ベビー用品, カー用品ほか一億種の商品をいつでもお安く。通常配送無料(一部を除く)

  

VBAの部屋
スポンサーリンク
シェアする
Kappoをフォローする

コメント

  1. Media より:

    ExcelからAccessデータベースのテーブルの情報を削除するのは、確かに効率的な方法ですね。特に、データを一括で削除してから新しく追記することで、処理が簡単になります。しかし、削除と追記を繰り返すとファイルサイズが増えてしまう点には注意が必要です。定期的に最適化を行うことで、データベースのパフォーマンスを維持できるでしょう。どのタイミングで最適化を行うのが最も効果的だと思いますか?

    • Kappo Kappo より:

      こんにちは
      投稿ありがとうございます。また、返信遅れてすみません。
      おっしゃる通り、Accessは削除+追記を行うとファイルサイズがどんどん増えていってしまいます。
      Kappoは、テーブル削除ー>データ追記ー>最適化 と処理を連続で行っています。
      最適化は
      1.mdbを別名で最適化
      2.mdbを別名でリネーム(バックアップ)
      3.1のファイルの元名でリネーム
      の手順で行っています。
      参考になれば幸いです。

タイトルとURLをコピーしました