tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
797
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    kloibi kloibi ist offline Rookie
    Registriert seit
    Jul 2004
    Beiträge
    6
    Hallo miteinander!

    Ich kämpfe gerade schwer mit dem Datum!
    Und zwar folgendes:
    Ich habe 3 DropDown-Listen (eines für Tag, eines für Monat, eines für Jahr)!
    Die kann man ohne Probleme auswählen und diese werden auch in die ACCESS-DB (Typ der Spalte: Datum/Zeit) geschrieben.
    Ich habe aber ein Problem damit, wenn kein Datum ausgewählt wird, d.h. Tag, Monat und Jahr bleibt leer. Dann bringt er mir immer einen Typkonflikt!
    Ich habs schon mit CDate versucht, klappt aber nicht!

    Also wie kann ich, wenn alle drei DropDown-Listen leer sind, diesen Wert in die DB schreiben

    Danke schon mal für die Hilfe
    greez, kloibi
     

  2. #2
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hallo

    ein Leerfeld type Date kannst Du mit NULL erzwingen.

    bsp.
    Update tabelle set datum=NULL where id = 1
     
    liebe Grüße, die Luzie

  3. #3
    kloibi kloibi ist offline Rookie
    Registriert seit
    Jul 2004
    Beiträge
    6
    Habe ich schon ausprobiert, aber er meldet trotzdem einen Fehler!

    So sieht der Code im Moment aus:

    Code :
    1
    2
    3
    4
    5
    6
    
    Startdatum = Cdate(Request.Form("Studienbeginn"))
     
    If Startdatum = "" then
            InsertTable("Studienbeginn")=null 
        else InsertTable("Studienbeginn")=Startdatum 
    end if
    Wenn die DropDowns ausgefüllt sind, trägt er es ohne Probleme ein...

    Wo könnte da der Fehler liegen...
     

  4. #4
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hi

    da bekommst Du eine cDate() Fehler.

    Du übergibst schon bei der Variablenerstellung den Wert aus dem Formularfeld in die cdate() Funktion. Wenn der Wert jetzt leer ist, bringt er einen Fehler, denn cdate() kann nur ein valides Datum konvertieren, einen Leerstring nicht..

    Da Du scheinbar den Datensatz via ADO einfügst, kannst Du Dir die Elseverzweigung sparen.

    Code :
    1
    2
    3
    
    if Request.Form("Studienbeginn") <> "" then
    InsertTable("Studienbeginn")= cDate(Startdatum) 
    end if

    Allerdings garantiert cDate() kein gültiges Datum.
    Er macht aus einem 31.02.05 eine ziemlich eigene persönliche Kreation, solang die Jahreszahl 2stellig ist. Ist sie 4-stellig, gibts dort wieder einen Fehler.

    Du sollstet das Datum zudem noch auf Gültigkeit überprüfen, sonst kann es Dir passieren, dass Du Daten aus dem vorigen Jahrhundert einspeicherst. Dies geht am einfachsten mit einem Regulären Ausdruck und der entspr. Validierungsabfrage.
    Geändert von Luzie (25.10.05 um 16:09 Uhr)
     
    liebe Grüße, die Luzie

  5. #5
    kloibi kloibi ist offline Rookie
    Registriert seit
    Jul 2004
    Beiträge
    6
    Das ist ja eben das Problem!

    Wie kann ich einen Leerstring in die DB schreiben?
    Feldformat Access ist Datum/Zeit!

    Ich habe jetzt schon viel ausprobiert, mal mit cDate mal ohne, aber egal was ich mache, er bringt bei "keiner Auswahl eines Datums" immer nen Fehler...

    Habs auch schon mit "null" und "isempty" versucht...
     

  6. #6
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Wie ich oben bereits geschrieben habe,

    Du musst keinen Leerstring in die DB schreiben, wenn Du einen Datensatz via ADO einfügst.

    Du kannst das Feld abfragen (sh. mein Beispiel).
    Ist ein Datum ausgefüllt, dann schreibe es rein, ansonsten lass den Part aus der Abfrage weg.

    Ein Datumsfeld will ja nur einen Wert haben, wenn es im Update aufgeführt ist.

    Bei einem Update-Statement kann man für einen Leerstring NULL eingeben (sh. 1. Posting)

    Sorry, mehr kann ich auch nicht dazu sagen.

    Ich kenne ja Deinen Gesamtscriptcode nicht und ich kenne Deine Fehlermeldung nicht. Alles weitere würde in die Richtung Hellsehen gehen.
     
    liebe Grüße, die Luzie

Ähnliche Themen

  1. [VC++] Problem mit Datum
    Von warcraft9105 im Forum .NET Windows Forms
    Antworten: 5
    Letzter Beitrag: 13.02.09, 11:48
  2. Problem mit Datum
    Von Buba235 im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 11.09.06, 11:22
  3. Problem mit WHERE und Datum
    Von deltoz im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 30.08.05, 21:20
  4. Problem mit JS Uhr-Datum
    Von Jin im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 18.03.05, 14:19
  5. datum in tage umrechnen bzw. abfrage problem mit datum
    Von Brauni im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 25.08.03, 20:57