Autor Thema: Validierung für Date/Time Feld  (Gelesen 6717 mal)

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Validierung für Date/Time Feld
« am: 21.10.04 - 13:26:52 »
Hi @all!
Ich habe ein Problem mit der Validierung eines Datums-Feldes. Die Situation:

Ich habe eine Aufgaben DB, in deer Aufgaben eingegeben werden können. Bei den Aufgaben kann ein Termin angegeben werden. Habt ihr nen Tipp wie ich auf gültiges, bzw ungültuges Datum prüfen kann??
Hier der Codeschnipsel was ich bis jetzt hinbekommen habe (erkennt das es ein ungültiges Datum ist, nur bei gültigem Datum fliegt er mit ner Fehlermeldung raus)
Das ganze steht im Querysave der Maske:

'-- Termin
varDatTest = doc.kbTermin '--> Hier steht der eingegebene Termin drin
If Not (varDatTest = Null)) Then
   If doc.kbtermin(0) ="" Then
      strValText = strValText + "Termin -> Das Datum darf nicht leer sein" & Chr$(13)
   Else      
      If doc.kbtermin(0) < Today Then
        strValText = strValText + "Termin -> Das Datum darf nicht in der Vergangenheit liegen" & Chr$(13)
      Else         
        If Not Isdate(doc.kbtermin(0)) Then
            strValText = strValText + "Termin -> Bitte geben Sie einen gültigen Datumswert ein" & Chr$(13)
        End If
      End If
   End If
Else
   strValText = strValText + "Termin -> Bitte geben Sie einen gültigen Datumswert ein" & Chr$(13)
End If

Offline mibo11

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
Re: Validierung für Date/Time Feld
« Antwort #1 am: 21.10.04 - 13:30:06 »
Hallo Tina,

welche Fehlermeldung kommt an welcher Stelle?

Gruß Sascha

klaussal

  • Gast
Re: Validierung für Date/Time Feld
« Antwort #2 am: 21.10.04 - 13:32:24 »
Ich hasse so verschachtelete if's:
Deshalb:

If doc.kbtermin(0) ="" Then
      strValText = strValText + "Termin -> Das Datum darf nicht leer       sein" & Chr$(13)
goto ENDE
End If

If doc.kbtermin(0) < Today Then
        strValText = strValText + "Termin -> Das Datum darf nicht in der Vergangenheit liegen" & Chr$(13)
 goto ENDE
End If
.
.
.
.
ENDE:

So kann ich auch besser nachprüfen, wo und warum er rausfliegt.

klaus      

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #3 am: 21.10.04 - 13:33:46 »
@mibo11:
Sorry, hatte ich vergessen:
If Not (varDatTest = Null)) Then
An dieser Stelle und es ist ein Type mismatch Fehler. Ich denke, dass wenn dort ein richtiges(gültiges) Datum drinsteht, kann er es nicht auf Null prüfen, oder denke ich falsch??

@Klauss:
Wenn ich mit Goto's anfange dann sind meine Ausbilder nicht wirklich froh...

Offline mibo11

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
Re: Validierung für Date/Time Feld
« Antwort #4 am: 21.10.04 - 13:42:14 »
Hallo Tina,

wenn ich das richtig interpretiere handelt es sich bei dem Feld kbTermin um ein Datumsfeld, dadurch müsste Notes beim Aktualisieren des Feldes automatisch eine Fehlermeldung generieren sobald ein ungültiges Datum eingegeben wurde. Dadurch kannst du dir wahrscheinlich dein erstes IF sparen.

Korrigiere mich bitte wenn ich falsch liegen sollte.

Gruß Sascha

klaussal

  • Gast
Re: Validierung für Date/Time Feld
« Antwort #5 am: 21.10.04 - 13:43:41 »
@Tina,
dann lass mal deine Ausbilder sich diese Verschachtelung in 5 Monaten wieder ansehen. Die fangen dann erst einmal an nachzudenken, was da gemacht wird.

klaus


Das kbTermin würd ich ja bei einem neuen Doc mit Tagesdatum vorbelegen.
Ansonsten  If Trim(doc.kbTermin(0)) = "" then.....
« Letzte Änderung: 21.10.04 - 13:46:56 von klauss »

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #6 am: 21.10.04 - 13:47:32 »
@Sascha:
Natürlich generiert Notes ne Fehlermeldung (variant does not contain a container), doch die Anwender verstehen die, denk ich mal nicht, außerdem zieht das noch nen langen "Rattenschwanz" hinter sich her. Da kommt nämlich nicht nur eine Meldung (unable to interpret Date/Time).
@Klauss:
Was soll ich denn sonst machen (ohne Goto's)?

Deinen Vorschlag hab ich auch schon probiert, der ist ja auch in der Validierung mit drin, auch das Vorbelegte Feld, nur was ist wenn der Anwender meint, er gibt selber das DAtum ein und vertut/vertippt sich??
« Letzte Änderung: 21.10.04 - 13:49:55 von Tina »

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Validierung für Date/Time Feld
« Antwort #7 am: 21.10.04 - 13:48:09 »
1) Du moechtest statt varDatTest = Null die IsNull() Funktion verwenden ;)
2) Die  geschachtelten IFs lassen sich mittels ElseIf auch ohne GoTo schoener aufloesen.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

klaussal

  • Gast
Re: Validierung für Date/Time Feld
« Antwort #8 am: 21.10.04 - 13:50:57 »
@Tina,

ist der kbTermin ein Kalender/Uhrzeit-Steuerelemnt ? Da kann mann/frau im Prinzip kein ungültiges Datum eingeben. Wenn doch, dann kommt eben besagte Fehlermeldung. Das ist aber da gleiche, wie wenn ich in eine Zahlenfeld Buchstaben eingebe...  ;D


klaus
« Letzte Änderung: 21.10.04 - 13:54:00 von klauss »

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #9 am: 21.10.04 - 13:55:16 »
@m3:
das isNull() funzt net! da erkennt er nicht das varDatTest leer oder Null ist.
Mit den Elseif s schau ich mal, danke!

@Klaus:
es ist ein Date/Time Control, wenn die User reinklicken, können sie doch per hand nen Datum eingeben, und wenn das nicht stimmt, dann knallts in meiner Anwendung.

klaussal

  • Gast
Re: Validierung für Date/Time Feld
« Antwort #10 am: 21.10.04 - 13:56:50 »
@Tina

dann knallt's nicht, sonder LoNo meckert....  ;D

klaus

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #11 am: 21.10.04 - 13:58:21 »
Hast ja recht! ;)

Kann man nirgends sonst die Falscheingabe abfangen? Im Input Validation hab ich es schon probiert, aber das war auch nix!

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Validierung für Date/Time Feld
« Antwort #12 am: 21.10.04 - 13:59:36 »
Zum Ueberpruefen, ob ein Feld leer ist, gibts ja auch IsEmpty ( expr ) ;)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

klaussal

  • Gast
Re: Validierung für Date/Time Feld
« Antwort #13 am: 21.10.04 - 14:00:40 »
@tina,

warum ? Das macht doch LoNo für mich. Ansonsten müsste ich ja prüfen: ist es ein Schaltjahr ? hat der Monat 29 oder 30 oder 31 Tage, etc.... ?

klaus

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #14 am: 21.10.04 - 14:04:15 »
@Sascha:
Ich glaub, das wars! :-*

@klaus:
Hast ja recht! Warum das Rad neu erfinden, oder wie heißts so schön??? ;D

@All:
Danke für eure schnelle Hilfe! Ihr seid doch die Besten!!!! :-*

klaussal

  • Gast
Re: Validierung für Date/Time Feld
« Antwort #15 am: 21.10.04 - 14:05:17 »
Danke für die Blumen  :-* :) :-*

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Validierung für Date/Time Feld
« Antwort #16 am: 21.10.04 - 14:09:08 »
Warum sowieso so kompliziert ?

Eingabevalidierung: @ (!@IsTime (DatumsFeld); @Failure ("Gemecker"); @Success)

Wenn es erforderlich ist, in LS abzuprüfen (ob überhaupt ein Datum da ist, bevor damit gedealt wird):
If Not (IsDate (NotesDocument.Datumsfeld (0))) then
    Messagebox "Gemecker"
    Else
     'Mach weiter
End If

HTH,
Bernhard

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #17 am: 21.10.04 - 14:14:29 »
@koehlerbv:
Mit Formel ghts leider nicht, da eine eigene Messagebox ausgegeben werden soll.
Mit IsDate() tuts auch nicht, da versucht Notes das ungültige Datum zu verwursten und fliegt natürlich mit ner netten Fehlermeldung raus.
Glücklicherweise funktionierts jetzt so:

varDatTest = doc.kbTermin
If Not Isempty(varDatTest) Then
  If doc.kbtermin(0) = "" Then
    strValText = strValText + "Termin -> Das Datum darf nicht leer sein" & Chr$(13)
  Else      
    If doc.kbtermin(0) < Today Then
       strValText = strValText + "Termin -> Das Datum darf nicht in der Vergangenheit liegen" & Chr$(13)
    Else         
       If Not Isdate(doc.kbtermin(0)) Then
          strValText = strValText + "Termin -> Bitte geben Sie einen gültigen Datumswert ein" & Chr$(13)
       End If
    End If
  End If
Else
  strValText = strValText + "Termin -> Bitte geben Sie einen gültigen Datumswert ein" & Chr$(13)
End If


Trotzdem Danke für die Hilfe!!!
« Letzte Änderung: 21.10.04 - 14:17:32 von Tina »

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Validierung für Date/Time Feld
« Antwort #18 am: 21.10.04 - 14:20:49 »
In welcher Konstellation sollte Dir denn IsDate etwas anderes als True oder False entgegenwerfen ?

Bernhard

Offline Tina

  • Junior Mitglied
  • **
  • Beiträge: 63
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Validierung für Date/Time Feld
« Antwort #19 am: 21.10.04 - 14:41:03 »
Ich bin froh dass es so funzt.
Ich weiß nicht, ob es nur mit isDate funktioniert. Ich hatte das vorher alleine und da hat mir Notes auch bei ungültigen Daten keine Fehlermeldung ausgegeben!
« Letzte Änderung: 21.10.04 - 14:47:07 von Tina »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz