教えて!ExcelVBA!

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

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

       f:id:m_kbou:20200508120431p:plain

ExcelVBAよりAccessデータベースに登録されているデータを使用するには、Accessデータベースに接続する必要があります。また、接続にてデータ操作が完了した後は、Accessデータベースとの切断作業も必要となります。今回はその接続と切断する方法について説明します。

 

【目次】

 

構文

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

(1)接続方法

=======================================================================

Set[参照データベース]= OpenDatabase[データベースの登録パス]

=======================================================================

[説明]:

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

[記述例]:

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

(2)切断方法

=======================================================================

[参照データベース].Close
Set[参照データベース= Nothing

=======================================================================

[説明]:

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

[記述例]:

db.Close
Set db = Nothing

 

使い方

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

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。また、Accessデータベースとの接続には事前設定が必要となります。事前準備はAccessとの連携をするための事前準備を参考にして下さい。

-------------------------------------------------

Sub サンプル()
    '↓処理①
    Dim db As Database

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

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

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

End Sub

-------------------------------------------------

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

[処理①]:変数の定義
Dimによる変数の定義となります。

[処理②]:データベースへの接続
データベースをOPENし[処理①]で定義した変数:dbにデータベースの参照を代入します。

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

[処理④]:データベースの切断
最後にデータベースの切断を行います。

[実行例]:

(実行前)

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

f:id:m_kbou:20200511165951p:plain

(実行後)

Accessデータベースに接続できたため、”データベースに接続しました。”のメッセージが表示されます。

f:id:m_kbou:20200510081212p:plain

C:\テストにAccessデータベース(従業員.accdb)が登録されていない場合は、以下の様な警告メッセージが表示され、接続ができなかった事を確認できます。

f:id:m_kbou:20200510081225p:plain

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

 

おわりに

今回はAccessデータベースに接続する及び切断する方法について説明しました。Accessデータベースへ接続する場合には必須の記述となります。是非覚えておいて下さい。