2017-07-01 10 views
1

MS Access 2003データベースにスタートアップオプションを設定して、起動時にメインフォームapplicationが表示されるようにしました。ファイルを開いたときにSHIFTを押して、これらの起動オプションをバイパスすることができます。 (つまり、私が編集モードにしていたときに、それは現在だけでなく編集モードでのMS Accessを出るときに、私は希望MS Access 2003スタートアップオプションが実行/バイパスされたかどうかをテストできますか?

Private Sub Form_Close 
    DoCmd.Quit 
End Sub 

は、バイパスする:

しかし、私はこのメインフォームapplicationに次のコードを持っていますデザインモードでフォームを表示しているときではなく、起動オプションをバイパスした実際のフォームを表示するとき)。

VBAで起動オプションが実行されたかバイパスされたかを検出する方法はありますか?

+1

代わりに隠されたスタートアップについてはどうですか?それは見えないので、フォームデザインは必要ありません。起動時または終了時にコードを実行するために使用されます。また、 'Form_Unload'を使うと、確認ダイアログを追加して、必要に応じてキャンセルすることができます。 – BitAccesser

+0

@BitAccesserこれは素晴らしい提案です。ありがとう!それは私が探していたものではありませんが、それでも答えに入れることができ、私はそれをアップヴォートします。 :) –

答えて

1

デザインを必要としない、非表示の起動フォーム(Me.Visible = Falseでに表示)を使用します。その後、Form_Unload(Cancel as Integer)イベントを使用し、確認ダイアログを追加することもできます。あなたが検出することができますどのような

Private Sub Form_Unload(Cancel As Integer) 
    If MsgBox("Do you really want to quit?", vbYesNo) = vbNo Then 
     Cancel = True 
    Else 
     ' do something before quit, but Form_Close will raise too 
    End If 
End Sub 

それがロードされていないとして、(あなたが他の場所でそれを開始しない限り)スタートアップフォームが起動時にシフトをトリガするために使用することができ、シフトを使用する場合は、。

フォームを誤って閉じることはないことに注意してください(例:開いているフォームをすべて閉じる機能)。

+1

おそらくどこかのプロパティダイアログでフォームを非表示にすることはできますか?私はそれを見つけるように見えない。または、私は 'Form_Load'(あるいはどこか類似したもの)のVBAでこれを行う必要がありますか?私はこれが例えば 'Me.Visible = False'で行えることを知っています。 –

+0

良い点、私はそれを逃した:) – BitAccesser

関連する問題