使用AHK关闭Access应用程序

时间:2017-12-27 22:30:54

标签: vba ms-access access-vba autohotkey

我有一个名为" Form1"的访问表单,并且在表单中有几个子表单,如Form_Load,Form_Unload等。

我想使用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时,我能够手动关闭Access而没有任何问题。

以下是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

在关闭访问应用程序之前,有没有办法可以关闭表单或将表单更改为设计视图?

1 个答案:

答案 0 :(得分: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