Rubrik: Access | VB-Versionen: VBA | 04.03.05 |
ACCESS 2000: Fehler 3420 - Objekt ungültig Dieser Tipp zeigt eine Lösung auf, wenn sich Access 2000 aus irgendeinem Grund urplötzlich mit dem Fehler 3420 meldet. | ||
Autor: Richard Mittelstädt | Bewertung: | Views: 18.230 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Hatten Sie auch schon einmal das Problem, dass sich Access 2000 aus irgendeinem Grund und natürlich urplötzlich mit dem Fehler "3420 - Objekt ungültig" meldet?
Das eigenartig daran: Die Datenbank-Anwendung lief die Ganze korrekt und komischerweise lässt sich das Problem auch nicht auf jeden PC nachvollziehen Nur auf bestimmten PC's Ihrer Kunden kommt es auf einmal zu besagter unscheinbarer Fehlermeldung.
Auch das sonst allwissende Internet scheint für dieses Problem keine Lösung parat zu haben - zumindest habe ich diesbezüglich nichts finden können, wenngleich der Fehler sehr wohl bekannt ist.
Durch eine einzige Codezeilen-Änderung lässt sich das Problem nun doch in den Griff bekommen!
Schuld an der ganzen Misere ist der Requery-Aufruf:
Me.Requery
Wenn man diese Codezeile durch folgende Zeile ersetzt ist das Problem behoben!!!
Me.RecordSource = Me.RecordSource Me.OrderByOn = Me.OrderByOn ' sonst geht die Sortierung flöten: 2005-04-20
Reproduktion des Fehlers
Wer den Fehler zufällig einmal bekommt, der sollte einfach einmal eine "Test-Schaltfläche" im Hauptforumular anlegen, die beim Klick ein "Requery" ausführt. Dadurch stellt man sehr schnell fest, dass nach bestimmten Aktionen in Richtung Recordsource des Hauptformulars der besagte Fehler 3420 ausgelöst wird und die MessageBox entsprechend der Anzahl der Datensätze unaufhörlich erscheint. Wenn dies der Fall ist, einfach die ESC-Taste gedrückt halten und gleichzeitig irgendwo auf Beenden klicken, um die Anwendung zu stoppen.
Um das Ganze auch auf einem funktionsfähigen PC nachvollziehen zu können, bitte wie folgt vorgehen (aber wie gesagt: nicht auf allen PC's lässt sich der Fehler reproduzieren!).
1. Bestehende Datenbank-Anwendung öffnen
Fügen Sie jetzt oben erwähnte Schaltfläche ein und führen Sie nun die verschiedensten Datenbank-Zustände (Aktionen) aus.
2. Hauptformular mit Kombinationsfelder erstellen, deren RowSource-Eigenschaften einfach auf die Tabelle beruhen. Die Eigenschaft "Doppelklick" der Kombinationsfelder so schreiben, dass ein Formular geöffnet wird, welches genau diese Werte enthält. Es reicht aus, dieses Formular einfach nur zu schließen. Beim nächsten Requery des Hauptformulars kommt der besagte Fehler.
Wie gesagt: in diesem Fall die Requery-Methode durch obigen Code ersetzen - und das in allen Modulen des Projekts.