2017-12-27 28 views
1

を閉じるためにAHKを使用しているとき、私は「Form1の」という名前のAccessフォームを持っている、そしてフォームで、それはのForm_Load、は、Form_Unload、のような潜水艦のカップルを持っている、オブジェクト変数設定されていません(エラー91)アクセスアプリケーション

AutoHotKeyスクリプトを使用して、フォームの開閉を制御したいと考えています。

フォームオープニングコード:

acc:= ComObjCreate("Access.Application") 
acc.OpenCurrentDatabase("\\...\target_database.accdb") 
acc.Visible := True 
acc.UserControl := True 
acc.DoCmd.OpenForm("Form1") 

フォームを閉じるコード:それは、アプリケーションを閉じようとしたときに

acc.quit 

エラー91

がポップアップ表示されます。そして、エラーは、Form_Unloadサブに関連しているようです。 AutoHotKeyを使用する場合にのみ発生しますが、手動で問題を解決してアクセスを閉じることができます。ここで

はは、Form_Unloadのコードです:

Private Sub Form_Unload(Cancel As Integer) 
' update the data in txt, signal and datetime 
Dim fso As New FileSystemObject 
'the file we're going to write to 
Dim ts As TextStream 
'open this file to write to it 
Set ts = fso.CreateTextFile("\\cp-apps01\ExtruderDataCollector\TESTING\log.txt", True) 
For Each Key In Module1.dict_pre_Signal.Keys 
    ts.WriteLine (Key & " " & Module1.dict_pre_Signal.Item(Key) & " " _ 
     & DateValue(CStr(Module1.dict_pre_Time.Item(Key))) & " " _ 
     & TimeValue(CStr(Module1.dict_pre_Time.Item(Key)))) 
Next Key 
ts.Close 
Set fso = Nothing 
End Sub 

は、私は、フォームを閉じるか、私がアクセスアプリケーションを閉じる前に、デザインビューにフォームを変更することができます方法はありますか?

答えて

0

フォームを閉じるのはどうですか?

acc.DoCmd.OpenForm("Form1") 
acc.DoCmd.Close(acForm, "Form1", acSaveNo) 
acc.Quit 

や定数の数値を持つ:

acc.DoCmd.OpenForm("Form1") 
acc.DoCmd.Close(2, "Form1", 2) 
acc.Quit 
+0

私が前にあることを試してみましたが、2番目のコマンドで –

+0

は、定数の値を使用してみてください、それは私の型の不一致エラーを与えるだろう。どうぞ編集してください。 – Gustav

+0

それは非常にうまく動作します、ありがとう! –

関連する問題