Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Fehlerbehandlung Datum
zurück: String in DoCmd.RunSQL weiter: FileDialog Vorbelegung Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Mittelfarwick
Im Profil kannst Du frei den Rang ändern


Verfasst am:
02. Aug 2008, 00:15
Rufname:

Fehlerbehandlung Datum - Fehlerbehandlung Datum

Nach oben
       Version: Office 97

Hallo,

ich versuche mich an einer Fehlerbehandlung für ein gebundenes und ungebundes Feld.
Das gebundene ist vom Felddatentyp "Datum/Uhrzeit" in der zugrunde liegenden Tabelle und vom Format "Datum, kurz" im Form. Gebe ich etwas falsches ein, so einscheint eine Standard-Fehlermeldung von Access. Ist es möglich diese Fehlermeldung entweder abzustellen oder zumindest zu formatieren?

Beim ungebunden Feld erscheint die gleiche Fehlermeldung nur, wenn ich als Format für das Textfeld "Datum, kurz" eingebe. Natürlich möchte ich diese auch bearbeiten.

Wie kann ich das am besten machen? Tausend Dank!
JörgG
Access-Team


Verfasst am:
02. Aug 2008, 03:01
Rufname:
Wohnort: b. Dresden


AW: Fehlerbehandlung Datum - AW: Fehlerbehandlung Datum

Nach oben
       Version: Office 97

Hallo,

die Ereignisse "vor Aktualisierung" (sowohl Textfeld als auch Formular) sind für Gültigkeitsprüfungen bestens geeignet:
Code:
Private Sub Datumsfeld_BeforeUpdate(Cancel As Integer)
    If Nz(Me!Datumsfeld, 0) = 0 Then
        MsgBox "Feld muss ausgefüllt werden!"
        Cancel = True
    End If
'oder der
    If Nz(Me!DatumBis, 0) < Nz(Me!DatumVon, 0) Then
        MsgBox "Bis < Von, Korrektur!"
        Cancel = True
    End If
End Sub

Eine Fehlerbehandlung auf Formularebene will gut überlegt sein, da alle fehler dieser Fehlernummer dann gleich behandelt werden! Formular "bei Fehler":
Code:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
    MsgBox DataErr 'FehlerNr ermitteln, später löschen
    If DataErr = 3074 Then
        MsgBox "Fehler .... aufgetreten!"
        Response = acDataErrContinue
    End If
End Sub

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Mittelfarwick
Im Profil kannst Du frei den Rang ändern


Verfasst am:
02. Aug 2008, 10:45
Rufname:

Re: AW: Fehlerbehandlung Datum - Re: AW: Fehlerbehandlung Datum

Nach oben
       Version: Office 97

Hallo,

danke Dir, aber das hilft mir nicht wirklich weiter. Das "BeforeUpdate"-Ereignis tritt nach der Untersuchung des Tabellenfelds ein und somit erscheint leider nachwievor die Standardfehlermeldung als erstes.

In der Tabelle ansich, also in dem entsprechenden Feld ist es ja möglich, eine Gültigkeitsregel, bzw. -meldung einzustellen. Welche Syntax hätte denn eine Regel, wenn "Not IsDate"? Also wenn die Eingabe ins Feld nicht den Regeln eines Datumsformates entsprechen und wie kann dann die Meldung formatiert werden, also als Beispiel vbCritical anstelle von vbInformation, usw.? Tausend Dank.
JörgG
Access-Team


Verfasst am:
02. Aug 2008, 13:56
Rufname:
Wohnort: b. Dresden

AW: Fehlerbehandlung Datum - AW: Fehlerbehandlung Datum

Nach oben
       Version: Office 97

Hallo,

in der Tabelle brauchst Du eigentlich gar nichts zu machen. Entferne die dortigen Gültigkeitsregeln und pflege diese im Formular. Hier kann mit .Text der noch ungespeicherte Wert abgefragt werden, dann passen auch die BeforeUpdate's Wink

Um Fehleingaben zu vermeiden, setze zB das Eingabeformat: 00/00/"20"00;0;_ damit erzwingst Du Zahlen im passenden Format.
Code:
Private Sub Datumsfeld_BeforeUpdate(Cancel As Integer)
    If Not IsDate(Me!Datumsfeld.Text) Then
        MsgBox "Feld muss ein Datum sein!", vbCritical + vbOkOnly, "Fehler"
        Cancel = True
    End If
End Sub

'und/oder

Private Sub Form_Error(DataErr As Integer, Response As Integer)
   'MsgBox DataErr 'FehlerNr ermitteln, später löschen
    If DataErr = 7753 Or DataErr = 2279 Then
        MsgBox "Eingabefehler!", vbCritical + vbOKOnly, "Fehler"
        Response = acDataErrContinue
    End If
End Sub

_________________
MfG, Jörg Very Happy

Bitte das Feedback nicht vergessen.
Mittelfarwick
Im Profil kannst Du frei den Rang ändern


Verfasst am:
02. Aug 2008, 14:36
Rufname:


AW: Fehlerbehandlung Datum - AW: Fehlerbehandlung Datum

Nach oben
       Version: Office 97

Hallo,

es ist zum Mäusemelken Rolling Eyes Hab' jetzt u.g., um den Verursacher ausfindig zu machen, aber ich erhalte immer die Standardmeldung. Habe das Form_Error-Event auch in alle Überforms gepackt, alle Formatierungen und Einstellungen in der Tabelle gelöscht, aber nixe Crying or Very sad Das einzige was hilft, wäre den Felddatentyp für das Datum auf Text zu stellen, aber wofür dann "Datum/Uhrzeit"
Code:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Dim Msg As String

    If DataErr = 7753 Or DataErr = 2279 Then
        Select Case screen.ActiveControl.Name
          Case "meinFeld"
            Beep
          Case Else
            Beep
            Msg = Msg & Screen.ActiveControl.Name & "!"
        End Select
        Response = acDataErrContinue
    End If
End Sub

P.S. hab's: Mit u.g. erhalte ich den Fehler 2113 und nicht die o.g., sozusagen ein falscher Fehler Very Happy
Code:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
    MsgBox "Fehler-Nummer: " & DataErr
End Sub
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Datum in Tabelle bzw. Abfrage umsetzen 3 Wolfe 721 14. Feb 2005, 17:52
Pino Datum in Tabelle bzw. Abfrage umsetzen
Keine neuen Beiträge Access Tabellen & Abfragen: SQL-String mit Datum .... !? 2 DoMe 1128 07. Feb 2005, 14:03
DoMe SQL-String mit Datum .... !?
Keine neuen Beiträge Access Tabellen & Abfragen: Berechnung in Abhängigkeit vom Datum 1 Christian22 1004 03. Feb 2005, 14:00
lothi Berechnung in Abhängigkeit vom Datum
Keine neuen Beiträge Access Tabellen & Abfragen: Datum im Formularkopf 6 didide 821 06. Jan 2005, 17:19
lothi Datum im Formularkopf
Keine neuen Beiträge Access Tabellen & Abfragen: in einer Wenn dann Funktion aufs Datum gruppieren 10 Gast 691 06. Jan 2005, 10:22
Skogafoss in einer Wenn dann Funktion aufs Datum gruppieren
Keine neuen Beiträge Access Tabellen & Abfragen: Datum und Uhrzeit automatisch speichern 3 peinberger 1119 30. Dez 2004, 10:33
mapet Datum und Uhrzeit automatisch speichern
Keine neuen Beiträge Access Tabellen & Abfragen: Alter auf Basis akt. Datum ausrechnen 2 jomei 1634 22. Dez 2004, 09:15
jomei Alter auf Basis akt. Datum ausrechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Accessdaten Datum in Englischer Form in Serienbrief von Word 1 Hajo 1127 24. Nov 2004, 11:49
Gast Accessdaten Datum in Englischer Form in Serienbrief von Word
Keine neuen Beiträge Access Tabellen & Abfragen: Datum in Abfrage eingrenzen? 3 Gast 2563 06. Okt 2004, 12:33
Skogafoss Datum in Abfrage eingrenzen?
Keine neuen Beiträge Access Tabellen & Abfragen: Datum in Zahl umwandeln 2 Lorenz 1017 01. Sep 2004, 18:45
Lorenz Datum in Zahl umwandeln
Keine neuen Beiträge Access Tabellen & Abfragen: Datum berechnen 1 kdl 1146 09. Aug 2004, 06:10
TommyK Datum berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: datum in Tabelle nur nach Jahr & Monat filtern.....aber. 4 mirko 1236 20. Jul 2004, 12:03
mirko datum in Tabelle nur nach Jahr & Monat filtern.....aber.
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Editor Forum