Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)

Tech-Archive recommends: Fix windows errors by optimizing your registry

From: Henry Habermacher [MVP Access] (DontSpamHenry_at_psp-online.com)
Date: 01/12/05


Date: Wed, 12 Jan 2005 16:42:57 +0700

Hallo Gerald

Gerald Aichholzer <gary@sbox.tugraz.at> wrote:

> danke für deine Informationen. Du hast natürlich großteils recht.
> Mit Performance habe ich vor allem das Prüfen von Fremdschlüsseln
> gemeint, d.h. wenn ich im Form_BeforeUpdate in fünf Tabellen nach-
> schauen muss, ob der eingegebene Wert wirklich existiert, dann
> ist das nicht performant.

Ich meinerseits erlaube dem Benutzer in diesem Fall gar nicht, was
einzugeben, was nicht referenziert ist. Er hat dann also ein Combo und
dort sind nur die Einträge drin, aus denen er einen auswählen muss.
Damit ersparst Du Dir solche Prüfungen. Limit To List soll hier Wunder
vollbringen. Alternativ kannst Du schon beim AfterUpdate des Feldes
nachschauen gehen, ob da was existierendes eingegeben wurde, wenn nicht,
dann bereits hier meckern. Das verteilt die Kontrollzugriffe zeitlich
auf einzelne kleine Abfragen, welche hoffentlich sogar direkt über einen
Index (FK referenziert ja einen PK der FremdTabelle) befriedigt werden
können.

> Im Form_Error() kriege ich nur den Hinweis, dass z.B. ein Fehler
> in der referentiellen Integrität passiert ist, aber nicht welche
> der vielen Beziehungen den Fehler verursacht hat, sodass ich den
> Anwender entsprechend aufmerksam machen kann.

Wenn Du nur das Err Objekt anschaust, ist das richtig. In der Errors
Collection sollten jedoch alle Fehler einzeln aufgeführt sein. Dort
solltest Du auch die entsprechende Information finden. ABer eben, besser
wäre es, die Anwendung so zu gestalten, dass es gar nicht zu diesem
Fehler kommen kann.

>
> Das mit der sinnigen Fehlermeldung im Form_Error() kann man beim
> SQL Server vergessen, weil
>
> Die INSERT-Anweisung verstieß gegen die COLUMN FOREIGN KEY-
> Einschränkung 'FK_BetragEtat_Etat'. Der Konflikt trat in der
> DurchblickAvw-Datenbank, Tabelle 'Etat', column 'idEtat' auf
>
> sagt dem Anwender nicht wirklich etwas.

Aber vielleicht Deinem Programm, das nun hier mit einfachen
Stringmanipulationen rausfinden kann, wo was fehlt. Ein Instr sollte
hier eigentlich schnell rausfinden, ob eine bestimmte Tabelle der 5
Kandidaten aufgeführt ist und kann dann einfach einen Fehler ausgeben.

> Im Form_Error() kriege ich auch nur mit DataErr die Fehlernummer
> als Parameter, wobei Error$(DataErr) immer "Anwendungs- oder
> Objektfehler" liefert, d.h. ich kann die Fehlermeldung nicht mal
> parsen (wenn ich das wollen würde).

Wenn Du die Errors Collection anschaust, geht das schon. Siehe
diesbezüglich auch in die KB, dort ist ein Beispiel genau für diesen
Fall drin, bei dem die Fehlermeldung geparst wird, um an den
Tabellennamen und den Spaltennamen zu gelangen. Scheinbar gibt es eben
keine andere Möglichkeit daran zu kommen (zumindest nicht
automatisiert).

Du könntest alternativ mit ungebundenen Formularen arbeiten und für die
Inserts eine SP starten, welche Dir bessere Informationen zurückliefern
könnte. Wird aber wohl ein ziemlich aufwändiger Weg werden.

Gruss
Henry

-- 
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB:  http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com (neu mit Suchfunktion!)
OH:  Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org


Relevant Pages

  • Problem mit Diensten nach SP2
    ... Installation SP2 auf XP Prof. verlief ohne Probleme und Fehlermeldungen. ... Start endet mit Fehlermeldung: Fehler 126: Das angegebene Modul ... Abhängigkeitsdienst oder die Abhängigkeitsgruppe konnte nicht gestartet ...
    (microsoft.public.de.german.windowsxp.setup)
  • Re: W2k-Server: Datenräger voll - stimmt aber nicht!
    ... >> Auch der ganue Wortlaut der Fehlermeldung wäre nicht uninteressant. ... > Berichteter Fehler: ... 380MB freier Speicher und das *nachdem* du Daten ausgelagert hast. ...
    (microsoft.public.de.german.windows.server.general)
  • Re: Absturz von C#.Net
    ... Systemwiederherstellung gemacht mit Zurücksetzten dieser Umgebungsvariable. ... Das Ergebnis war das selbige (der Fehler trat wieder auf). ... Bei diesen Datein kommt beim kompilieren meist keine Fehlermeldung. ... >> Was meinst Du Frank, ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • Re: ADO-Zugriff auf Access-DB liefert Fehlermedlung. Aber warum?!?
    ... > (wie hier z.B. Connectionobjekt Cnn) zugreift. ... Fehler nicht auswirft. ... was das Programm braucht. ... aber die Fehlermeldung ist doch eindeutig ...
    (microsoft.public.de.vb.datenbank)
  • Re: Suche Studien die beweisen das Telepathie nicht existiert. ;-)
    ... Das mit meinen Orthographischen Ausrutschern ist genügend bekannt,;-)) ... Du machst nicht nur Fehler in der ... eines deiner Postings, so dass du in der Lage bist, deine Fehler zu ... Keine Reaktion deinerseits - keine Reaktion mehr meinerseits. ...
    (de.sci.psychologie)