2017-12-27 30 views
1

Access 응용 프로그램을 닫습니다 AHK를 사용하는 경우 (오류 91)을 설정하지, 그리고 형태가의 Form_Load, Form_Unload 같은 잠수함의 커플 등이개체 변수는 내가 "을 Form1"라는 Access 폼이

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를 수동으로 닫을 수 있습니다.

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 

내가 액세스 응용 프로그램을 종료하기 전에 양식을 닫거나 뷰를 디자인하는 양식을 변경할 수있는 방법이 있나요 : 여기

는 Form_Unload에 대한 코드인가?

답변

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

나는 그 전에 시도하지만, 상수의 값을 사용해보십시오 두 번째 명령 –

+0

에서 나에게 형식 불일치 오류를 줄 것이다. 제발 편집하십시오. – Gustav

+0

아주 잘 작동합니다. 고마워요! –