AccessのVBAには詳しくないので教えてください。 Excelの場合モジュールのThisWorkBook よりWorkBook_OpenやWorkbook_Before Closeよりファイルの起動時・終了時にマクロが 実行可能ですが、Accessにも同様にmdbファイルの起動時と終了時に マクロを実行させたいのですが、アドバイスください。
( Windows XP : Access 2003 )
マクロで実行する場合は... マクロ名に「AUTOEXEC」とすればど〜でしょ〜 短絡すぎる?かな...
“起動時の設定”でダミーフォームをHiddenで開くようにしておき、そのダミ ーフォームの“開く時”、“閉じる時”イベントにそれぞれ実行させたいプロ シージャを登録しておくのではいかがでしょう? メインメニューなど、もともと起動時に表示するフォームがあればなおさら良 いですよね。
エクセルで行った下記のようなことができればと思うのですが。 Public Iam As String Public MyPath As String Public MyName As String Public myFso As New FileSystemObject Public StrMsg As String Public objfs As Variant Private Sub Workbook_Open() With New IWshRuntimeLibrary.WshNetwork Iam = .UserName End With MyPath = "K:\Current Users\" MyName = MyPath & Iam & ".txt" StrMsg = Iam Open MyName For Output As #1 Write #1, StrMsg Close #1 End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Set myFso = CreateObject("Scripting.FileSystemObject") myFso.DeleteFile (MyName) Set myFso = Nothing End Sub
AutoExec という名前の関数を標準モジュールに 作成すれば良かったと思います。 (あくまで起動時です)
もし上記がダメなら、 AutoExecマクロから 作った関数を実行させればいいだけですね。
ねぼすけパパ さんの回答と同じですが、 F_ダミー というフォームを作成しておきます。 そのフォームの開くときのイベントプロシージャに、 Private Sub Form_Open() Me.Visible = False '起動時の処理 End Sub フォームの閉じるときのイベントプロシージャに、 Private Sub Form_Close() '終了時の処理 End Sub と記述します。 メニューより、[ツール]-[起動時の設定]で[フォーム/ページの表示]に F_ダミー と設定します。
みなさんのアドバイスを実行してみます。 お忙しいなかありがとうございました。