@ Remou's Debug.Print wird Fehler aus, wenn das Formular nicht geöffnet ist.
Die meisten Access Entwickler importieren eine IsLoaded() Funktion in ihre Datenbank und benutzen sie. Der Code in meiner Version davon (das kann oder nicht von der ursprünglichen MS Version bearbeitet werden kann), ist dies:
Function IsLoaded(ByVal strFormName As String) As Boolean
' Returns True if the specified form is open in Form view or Datasheet view.
Const conObjStateClosed = 0
Const conDesignView = 0
If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
If Forms(strFormName).CurrentView <> conDesignView Then
IsLoaded = True
End If
End If
End Function
zu verwenden, die aus Excel, können Sie es so umschreiben könnten:
Function IsLoaded(ByVal strFormName As String, objAccess As Object) As Boolean
' Returns True if the specified form is open in Form view or Datasheet view.
Const conObjStateClosed = 0
Const conDesignView = 0
Const acSysCmdGetObjectState = 10
Const acForm = 2
If objAccess.SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> conObjStateClosed Then
If objAccess.Forms(strFormName).CurrentView <> conDesignView Then
IsLoaded = True
End If
End If
End Function
(Ich habe das nicht aus Excel getestet, aber Sie bekommen die Idee)
Sie können Beispiele hinzufügen, mehr Details, um eine bessere Antwort zu erhalten. –
Ich werde das nicht in eine Antwort setzen, da es die gestellte Frage nicht wirklich beantwortet, aber das riecht nach einer sehr schlechten Idee in der Herstellung. Mein Rat wäre, einen besseren Weg zu finden, was auch immer Sie anstreben. Wenn Sie weitere Einzelheiten angeben, werde ich versuchen, Ihnen einen besseren Ansatz zu geben. – JohnFx