Variable d'objet non définie (erreur 91) lors de l'utilisation d'AHK pour fermer une application Access
Aaron_Geng
J'ai un formulaire d'accès nommé "Form1", et sous la forme il a quelques sous-marins comme, Form_Load, Form_Unload, etc.
Je souhaite utiliser un script AutoHotKey pour contrôler l'ouverture et la fermeture du formulaire.
Code d'ouverture du formulaire:
acc:= ComObjCreate("Access.Application")
acc.OpenCurrentDatabase("\\...\target_database.accdb")
acc.Visible := True
acc.UserControl := True
acc.DoCmd.OpenForm("Form1")
Code de fermeture du formulaire:
acc.quit
Erreur 91
apparaît lorsqu'il tente de fermer l'application. Et l'erreur semble se rapporter au sous Form_Unload. Cela ne se produit que lorsque j'utilise AutoHotKey, je peux fermer l'accès manuellement sans problème.
Voici le code pour 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
Existe-t-il un moyen de fermer le formulaire ou de le modifier en mode Création avant de fermer l'application d'accès?
Gustav
Et si vous fermiez le formulaire?
acc.DoCmd.OpenForm("Form1")
acc.DoCmd.Close(acForm, "Form1", acSaveNo)
acc.Quit
ou avec les valeurs numériques des constantes:
acc.DoCmd.OpenForm("Form1")
acc.DoCmd.Close(2, "Form1", 2)
acc.Quit