Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Formulare "hängen sich auf"

Begonnen von datekk, Oktober 24, 2016, 11:26:18

⏪ vorheriges - nächstes ⏩

datekk

Hi,

es ist mir schon sehr oft aufgefallen, dass manchmal irgendwelche Formulare in der Datenbank "hängen"... damit meine ich, dass diese sich nicht öffnen lassen. Wenn man z.B. eine Schaltfläche zum öffnen eines Formulares nutzt kann man auf die Schaltfläche klicken, und nix passiert. Das Formular öffnet sich nicht - wohingegen andere Formulare problemlos laufen.

Abhilfe schafft hier nur, das Formular im Entwurfsmodus zu öffnen, dann in die Layoutansicht zu wechseln und schlussendlich auf die normale Formularansicht. Dann funktioniert es wieder problemlos.

Der Fehler tritt bei verschiedenen Office Versionen auf (probiert bei Office 15 und Office 16). Leider können in Runtime Umgebungen die Formulare ja nicht im Entwurtsmodus dargestellt werden. Hier wird die "Rettung" des Formulars dann echt umständlich.

Woran liegt es, dass die Formulare manchmal "hängen" und gibt es einen anderen Weg, diese wieder zum Laufen zu bringen?

Lg
datekk
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
eine Runtime Umgebung erfordert eine durchgängige komplette Fehlerbehandlung in absolut jeder Prozedur und Funktion. In der Fehlerbehandlung kann man zusätzlich einen Hinweis unterbringen in welcher Prozedur/Funktion der Fehler aufgetreten ist. Ist das gewährleistet ?
Ansonsten steigt Access einfach kommentarlos aus oder die Anwendung hängt.
Gruß Klaus

datekk

Hi Klaus,

danke für Deine Antwort, Sie trifft aber nicht die Fragestellung. Es ist nicht von einem Fehler als solchem die Rede sondern von willkürlich auftretendem "Hängen" von Formularen. Access steigt dabei auch nicht aus oder zeigt einen Fehler an. Das Fenster wird halt nur nicht geöffnet. Die Anwendung läuft ganz normal weiter.


Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
doch, es trifft die Fragestellung. Hast Du überall eine Fehlerbehandlung ?
Gruß Klaus

Beaker s.a.

Hallo datekk,
DB sichern, und dieses lesen:
http://www.donkarl.com?FAQ1.27
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

PhilS

Zitat von: datekk am Oktober 24, 2016, 11:26:18es ist mir schon sehr oft aufgefallen, dass manchmal irgendwelche Formulare in der Datenbank "hängen"... damit meine ich, dass diese sich nicht öffnen lassen. Wenn man z.B. eine Schaltfläche zum öffnen eines Formulares nutzt kann man auf die Schaltfläche klicken, und nix passiert. Das Formular öffnet sich nicht - wohingegen andere Formulare problemlos laufen.

Abhilfe schafft hier nur, das Formular im Entwurfsmodus zu öffnen, dann in die Layoutansicht zu wechseln und schlussendlich auf die normale Formularansicht.
Kann es sein, dass diese Formulare unsichtbar oder minimiert bereits geöffnet sind? Prüf mal die Forms-Collection, wenn das Problem das nächste mal auftritt.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

DF6GL

Hallo,


es kann auch sein, dass die DB zerschossen ist.   Dann hilft vielfach, eine neue leere DB zu erstellen und alle Objekte aus der alten DB zu importieren.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

datekk

@Klaus: Ich habe überall eine Fehlerbehandlung.. manchmal aber auch nur on error resume next.... Ich werde in meiner Datenbank eine Log-Tabelle einführen und jeden Fehler dokumentieren. Gibt es neben der Err.Description oder Err.Number noch einen Befehl, der mir das Modul und die Prozedur des Fehlers benennt?
@ PhilS: Danke. Das kann eigentlich nicht sein, werde ich aber beim nächsten mal prüfen.
@Franz: habe ich schon gemacht.
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

MzKlMu

Hallo,
da Du ja die Fehlermeldung für jede Prozedur/Funktion brauchst, ist an der Stelle ja deren Name bekannt. Du musst einfach an die MsgBox noch den Namen dranhängen (Event. mit einem Zeilenwechsel).
MsgBox Err.Description & vbCrLf & "In Prozedur/Funktion NameDerProzedur"
Gruß Klaus

crystal

Hallo,

nur so ein paar Ideen...

Du schreibst, dass du Formulare über Buttons öffnest. Wie werden sie aber geschlossen? Könnte es sein, dass du im ürspünglichen Recordset ("Mutterformular") navigierst, bei gleichzeitig geöffneten Tochter-Formularen?

Sind die "Tochter-Formulare" alle modal? Verändern Tochter-Formulare Daten im Mutter-Formular?

Benutzt du zufällig ein "gotorecord" im current-event (siehe die ausführlichen Erklärungen im Thread "Shell bricht nach 111 Vorgängen ab")?

Keine Ahnung, wie man einen Stack- oder Heap-Overflow in Access aufspüren kann; ich vermute allerdings, dass das mit einfachem Logging nicht möglich ist, da der Abbruch ja erfolgt, bevor ein Logging stattfinden kann. Vielleicht mit einer globalen Logging-Klasse, die timergesteuert Status-Infos schreibt? Gibt es eine (API-)Funktion, um Stack und Heap zu überwachen?

Wie gesagt - nur Ideen.
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

Aus gesundheitlichen Gründen nur noch selten dabei...