#178 | もう1つのAccessデータベースを開く方法(API版) | VBA、API | |
WindowsAPIの「ShellExecute」関数を使って、もう1つのAccessデータベースを開くサンプルです。 ShellExecuteは、「ファイルタイプ(拡張子)に関連付けられたアプリケーションでファイルを開く」関数です。したがって、「.MDB」にはAccessが関連付けられているはずですので、Access本体(MSACCESS.EXE)のフルパスを指定する必要はなく、データベースファイルのパスを指定してやるだけで、Accessの起動とそのファイルのオープンを行うことができます。 まず標準モジュールに次のコードを記述します。"Declare"の前に"Private"を付けることによってフォームのモジュールにも記述できます。 Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
続いて、もう1つのAccessデータベースを開く処理を実行するコマンドボタンなどに、次のようなコードを記述します。
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _ ByVal lpParameters As String, ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Const SW_SHOWNORMAL = 1 Dim strDBPath As String
Dim lngRet As Long 'データベースファイルのパスを設定 strDBPath = """C:\My Documents\db1.MDB""" 'WinAPIを使って関連付けられたアプリケーションを起動 lngRet = ShellExecute(hWndAccessApp, "open", strDBPath, vbNullString, CurDir(), SW_SHOWNORMAL) '返り値が32以下の場合はエラー If lngRet <= 32 Then MsgBox "データベースを開けませんでした!" End If ただし、この方法には次のようなデメリットや制約があります。
|
|||
|
Copyright © T'sWare All rights reserved |