教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 外部アプリケーション連携】(Access連携)Accessデータベースに接続する及び切断するにはどうすればいいの?教えて!

f:id:m_kbou:20200508120431p:plain

ExcelVBAよりAccessデータベースに登録されているデータを使用するには、Accessデータベースに接続する必要があります。また、接続にてデータ操作が完了した後は、Accessデータベースとの切断作業も必要となります。今回はその接続と切断する方法について説明します。(※Excel⇔Accessの連携には事前の準備作業が必要となりますので、こちらは予め設定しておいて下さい。)

 

 

構文

記述方法は以下の通りとなります。

(1)接続方法

Set[変数]= OpenDatabase(”[データベースの登録パス]”)

[説明]:

Accessデータベースとの接続には「Set[変数]= OpenDatabase(”[データベースの登録パス]”)」と記述します。[データベースの登録パス]にはデータベースが登録されているパスを記述します。[データベースの登録パス]は「”」(ダブルクォーテーション)で囲みます。内容を纏めると、「[データベースの登録パス]で指定されているAccessデータベースを開き、接続情報を[変数]にセットして下さい。」との意味になります。

[記述例]:

Set db = OpenDatabase("C:\テスト\従業員.accdb")

(2)切断方法

[変数].Close
Set[変数]= Nothing

[説明]:

データベースへ接続をした場合には必ず切断処理が必要となります。よって、接続と切断は一連の処理と理解して下さい。接続されたAccessデータベースを切断するには「[変数].Close」及び「Set[変数]= Nothing」と記述します。[変数]には上記の(1)接続方法で説明した変数名をそのまま使用します。内容を纏めると、「[変数]にセットされている使用中のデータベスを切断して下さい。」との意味になります。

[記述例]:

db.Close
Set db = Nothing

 

使い方

使い方について具体的に説明します。

[プログラミング例]:

Sub サンプル()

  '↓処理①
  Dim db As Database

  '↓処理②
  Set db = OpenDatabase("C:\テスト\従業員.accdb")

  '↓処理③
  MsgBox "データベースに接続しました。"

  '↓処理④
  db.Close
  Set db = Nothing

  '↓処理⑤
  MsgBox "データベースを切断しました。"

End Sub

処理の流れは以下の通りとなります。

[処理①]:変数定義
データベースの接続を格納するための変数定義となります。

[処理②]:データベースへの接続
指定したデータベースに接続した後に[処理①]で定義した変数:dbに接続内容を格納します。今回はC:\テストに登録されている「従業員.accdb」を格納しました。

[処理③]:接続メッセージの表示
[処理②]のデータベースの格納(接続)が正常に終了した場合、”データベースに接続しました。”をMsgBoxで表示します。

[処理④]:データベースの切断
[処理②]で接続したデータベースを切断します。

[処理⑤]:切断メッセージの表示
[処理④]のデータベース切断が正常に終了した場合、”データベースを切断しました。”をMsgBoxで表示します。

f:id:m_kbou:20210511181605p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。また、Accessデータベースとの接続には事前設定が必要となります。事前準備はこちらを参考にして下さい。

[実行例]:

(事前準備)

C:\テストにAccessデータベース(従業員.accdb)が登録されている必要があります。

f:id:m_kbou:20200511165951p:plain

(実行内容)

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210511181759p:plain

②データベースに接続できたため「データベースに接続しました。」がMsgBoxで表示されます。

f:id:m_kbou:20210511181904p:plain

③データベースを切断したため「データベースを切断しました。」がMsgBoxで表示されます。

f:id:m_kbou:20210511181947p:plain

※C:\テストにAccessデータベース(従業員.accdb)が登録されていない場合は、以下の様な警告メッセージが表示されます。

f:id:m_kbou:20200510081225p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

Accessデータベースに接続する及び切断する方法についての説明は以上です。

 

おわりに

今回はAccessデータベースに接続及び切断する方法について説明しました。Accessデータベースとの連携には必須の記述となりますので覚えておいて下さい。また、上記でも説明しましたが、Excel⇔Accessの連携には事前の準備作業が必要となります。こちらは接続処理をする前に予め実施しておく様にして下さい。