Datumsabfrage verwundert



  • Hallo Leute,

    ich arbeite mit BCB 5.0 und einer MS-Access2000-DB auf Win98, 2000 u. XP.

    Ich habe eine Eingabemaske erstellt, über die der Benutzer Daten eingeben kann.
    Hierbei möchte ich verhindern, dass ein zukünftiges Datum eingegeben wird.

    Beim Testen habe ich herausgefunden, dass es möglich ist, zukünftige Daten einzugeben, solange der Tag kleiner ist als der aktuelle Tag. Beispiel: 04.06.03 ist möglich, 05.05.03 nicht möglich, 07.03.03 auch nicht möglich. Das gleiche Problem tritt auf bei Eingaben für die Vergangenheit, z.B. 28.02.03 nicht möglich, 01.12.02 ist möglich.

    Vielen Dank für eure Hilfe!

    so habe ich das programmiert:

    void __fastcall TfrmCPEingabe::btnSpeichernClick(TObject *Sender)
    {
    
       String datum;
       datum = DBEdEingabedatum->Text;
    
          // Exception "Datum nicht eingegeben" abfangen
          if (DBEdEingabedatum -> Text == "" )
             ShowMessage(AnsiString("Feld Eingabedatum darf nicht leer sein!"));
    
          // Exception "Eingegebenes Datum größer als aktuelles Datum" abfangen
    
          if (DBEdEingabedatum -> Text > DateToStr(Date()))
    // oder
          if ( datum > DateToStr(Date()))
             ShowMessage
             (AnsiString("Eingabedatum darf nicht in der Zukunft liegen!"));
    
    //          if (DBEdEingabedatum->Text != FormatDateTime("tt.mm.jj",datum)||
    //              DBEdEingabedatum->Text != FormatDateTime("tt.mm.jjjj",datum))
    //              ShowMessage(AnsiString("Ungültiges Datumsformat!"));  
    
    }
    

    P.S.: Die Abfrage auf das Datumsformat funzt auch nicht. Ich erhalte die Message jedes Mal 😡



  • Hi,

    Kein Wunder Du vergleichst ja Zwei Strings.

    Ich würde die Datumswerte auf TDateTime
    instanzen übertragen und dann die vergleichen,
    oder Du zerlegst die Werte auf tag,monat etc., konvertierst in int und vergleichst die dann

    epidemic



  • @ epidemic:

    das scheint ja einfacher zu sein, als ich dachte.
    Jaja, der Wald und die vielen Bäume.

    Thx a lot


Anmelden zum Antworten