Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)
From: Henry Habermacher [MVP Access] (DontSpamHenry_at_psp-online.com)
Date: 01/12/05
- Next message: Gerald Aichholzer: "Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)"
- Previous message: Gerald Aichholzer: "Fehler beim gemeinsamen Verwenden von ADP zwischen A03 und A00"
- In reply to: Gerald Aichholzer: "Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)"
- Next in thread: Gerald Aichholzer: "Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)"
- Reply: Gerald Aichholzer: "Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)"
- Messages sorted by: [ date ] [ thread ]
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
- Next message: Gerald Aichholzer: "Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)"
- Previous message: Gerald Aichholzer: "Fehler beim gemeinsamen Verwenden von ADP zwischen A03 und A00"
- In reply to: Gerald Aichholzer: "Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)"
- Next in thread: Gerald Aichholzer: "Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)"
- Reply: Gerald Aichholzer: "Re: Fehlerbehandlung in Formularen - wie? (ADP/A03)"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|