Problem mit Datum

kloibi

Grünschnabel
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
 
Hallo

ein Leerfeld type Date kannst Du mit NULL erzwingen.

bsp.
Update tabelle set datum=NULL where id = 1
 
Habe ich schon ausprobiert, aber er meldet trotzdem einen Fehler!

So sieht der Code im Moment aus:

Code:
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... :confused:

Wo könnte da der Fehler liegen...
 
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:
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.
 
Zuletzt bearbeitet:
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... :confused:
 
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.
 

Neue Beiträge

Zurück