#600 ADPのデータリンクプロパティダイアログを表示するには? VBA

Accessプロジェクト(.adp)では、必ず初めにリンク先となるSQL Server上のデータベースを指定する必要があります。通常のマニュアル操作では、[ファイル]タブや[Office]ボタンなどから[サーバー]-[接続]メニューを選択して、「データリンクプロパティ」ダイアログを表示させ、そこで指定を行います。
データリンクプロパティダイアログ

一方、このダイアログは、VBAのプログラムにおいて「DoCmd」の「RunCommand」メソッドの引数に「acCmdConnection」を指定することで、任意のタイミングで意図的かつ自動的に表示させることができます。

次のプログラム例では、起動時に初期表示されるスタートアップフォームの「Load/読み込み時」イベントプロシージャを利用して、ダミー的に特定のテーブルにアクセスし、それがエラーとなった場合には”SQL Serverに接続できていない”と判断し、「データリンクプロパティ」ダイアログを表示させています。これによって再接続を促すことができます。

Private Sub Form_Load()

    Dim varDummy As Variant

    On Error Resume Next
    Do
        varDummy = DFirst("ID", "stblOptions")
        If Err.Number = 0 Then
          'エラーが発生していなければSQL Server接続OK!、ループを抜ける
          Exit Do
        Else
          'エラーが発生していたらデータリンクプロパティダイアログを表示
          DoCmd.RunCommand acCmdConnection
        End If
        '再チェックするためエラーをクリアして次のループへ
        Err.Clear
    Loop

End Sub


※このプログラム例では、表示された「データリンクプロパティ」ダイアログでSQL Serverへの接続が確立されない場合、無限に何度もダイアログが表示されてしまいます。本格的に適用する際には、MsgBox関数で「接続せずに終了しますか?・・・・[はい][いいえ]」などの確認メッセージを表示するなどして、データベースやAccess自体を終了させてループを抜ける処理が必要でしょう。

※また実際には、そもそも所定のSQL Serverに接続できない場合、データベースファイルを開こうとした時点で警告メッセージが表示されます。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved