Direkt zum Hauptbereich

Posts

Es werden Posts vom Oktober, 2010 angezeigt.

Microsoft Access: 'Geklonte' Formulare in den Vordergrund holen

In manchen Access-Anwendungen habe ich 'geklonte' Formulare benutzt. Das ist nicht schwer, da man dazu einfach ein Array vom Typ des Formulars definiert und dann mittels New neue Formularobjekte erzeugt:
Dim FormularArray(5) as Form_Formularname ... For i=1 to 5 FormularArray(i) = New Form_Formularname Next i
Ich bin nun auf das Problem gestoßen, im Hintergrund befindliche “Klon-Formulare” in den Vordergrund holen zu müssen. An sich gibt es dafür den Befehl
DoCmd.SelectObject acForm, <Formularname>
Leider haben aber alle geklonten Formulare den gleichen Namen, von dem ich auch nicht weiß, wie ich ihn ändern könnte. Auch ein

DoCmd.SelectObject acForm, FormularArray(i)
funktioniert nicht.
Die Lösung besteht darin, ein “Klon-Formular”, das man in den Vordergrund holen möchte, erst unsichtbar und dann wieder sichtbar zu machen:
FormularArray(i).Visible = False FormularArray(i).Visible = True


#msaccess

Microsoft Access: Irreführende Fehlermeldung über mangelnden Speicherplatz

In den letzten Tagen habe ich in einer selbst erstellten Microsoft Access-Anwendung die Fehlermeldung “Nicht genügend Speicherplatz, um diese Operation durchzuführen. Schließen Sie Anwendungen, die Sie nicht benötigen, und versuchen Sie es noch einmal.” erhalten. Meine Versuche, die Fehlerursache einzugrenzen, blieben erfolglos.

Nachdem ich im Internet über die Probleme von Access mit der Speicherverwaltung gelesen habe, prüfte ich meinen Programmcode und gab allozierten Speicher, z. B. für ADODB.RecordSet-Objekte am Ende einer Sub/Function jeweils explizit frei (Set Variable = Nothing). Damit konnte ich mein Problem nicht lösen.
Geholfen hat schließlich, eine neue MDB-Datei anzulegen und alle Tabellen, Formulare, Abfragen, Berichte, Makros und Codemodule aus der alten MDB-Datei zu importieren. Danach erschien die Fehlermeldung nicht mehr.
Zu beachten ist, dass man gegebenenfalls für die neue MDB-Datei auch alle Verweise (im Code-Editor unter Extras/Verweise) neu setzt und auch unter de…