Access + Datum, ASP
dey
- datenbank
0 Axel Richter0 dey0 Axel Richter0 dey
0 .:thomas:.
Servus
Folgender Code:
strsql= "update member set name1 = '" & name1(n) & "', "
strsql=strsql & "email1 = '" & email1(n) & "', "
strsql=strsql & "telnr1 = '" & telnr1(n) & "', "
strsql=strsql & "adresse = '" & adresse(n) & "', "
strsql=strsql & "gdate1 = '" & gdate1(n) & "', "
strsql=strsql & "vorstand = '" & vorstand(n) & "' "
strsql=strsql & " WHERE autonr = " & autonr(n) & " ;"
objcmd.CommandText=strsql
objcmd.Execute
bewirkt folgenden Fehler
Microsoft JET Database Engine- Fehler '80040e07'
Datentypen in Kriterienausdruck unverträglich.
/ah2/updatedbmember.asp, line 86
Das Feld "gdate1" ist ein Datumsfeld und hat den Paramater "Eingabe erforderlich" = Nein.
Allerdings tritt oben genannter Fehler genau an dem Datensatz auf, bei dem gdate(n) = '' ist.
Wo liegt der Fehler?
bydey
Hallo,
Folgender Code:
strsql= "update member set name1 = '" & name1(n) & "', "
strsql=strsql & "email1 = '" & email1(n) & "', "
strsql=strsql & "telnr1 = '" & telnr1(n) & "', "
strsql=strsql & "adresse = '" & adresse(n) & "', "
strsql=strsql & "gdate1 = '" & gdate1(n) & "', "
strsql=strsql & "vorstand = '" & vorstand(n) & "' "
strsql=strsql & " WHERE autonr = " & autonr(n) & " ;"
objcmd.CommandText=strsql
objcmd.Executebewirkt folgenden Fehler
Microsoft JET Database Engine- Fehler '80040e07'
Datentypen in Kriterienausdruck unverträglich.
/ah2/updatedbmember.asp, line 86Das Feld "gdate1" ist ein Datumsfeld und hat den Paramater "Eingabe erforderlich" = Nein.
Allerdings tritt oben genannter Fehler genau an dem Datensatz auf, bei dem gdate(n) = '' ist.
Wo liegt der Fehler?
Ein Datumsfeld kann entweder einen Datumswert z.B.:#02.04.03# oder den Wert NULL, nicht aber einen Leerstring '' enthalten. Du wirst also prüfen müssen, ob dein gdate1(n) einen gültigen Datumswert enthält. Wenn nicht muss das Update
strsql= "update member set name1 = '" & name1(n) & "', "
...
strsql=strsql & "gdate1 = NULL, "
...
lauten.
viele Grüße
Axel
Servus
Monster... das geht!
Ein Datumsfeld kann entweder einen Datumswert z.B.:#02.04.03# oder den Wert NULL, nicht aber einen Leerstring '' enthalten. Du wirst also prüfen müssen, ob dein gdate1(n) einen gültigen Datumswert enthält. Wenn nicht muss das Update
strsql= "update member set name1 = '" & name1(n) & "', "
...
strsql=strsql & "gdate1 = NULL, "
...
lauten.
if gdate1(n) = "" then
strsql=strsql & "gdate1 = NULL, "
else
strsql=strsql & "gdate1 = '" & gdate1(n) & "', "
end if
Danke
bydey
Hallo,
Monster... das geht!
if gdate1(n) = "" then
strsql=strsql & "gdate1 = NULL, "
else
strsql=strsql & "gdate1 = '" & gdate1(n) & "', "
end if
Aber, dass "Otto find ich gut." in gdate1(n) steht, kann nicht vorkommen? Dann wäre nämlich Dein Else-Zweig auch dran und würde wieder einen Fehler verursachen. ;-)
viele Grüße
Axel
Servus
Aber, dass "Otto find ich gut." in gdate1(n) steht, kann nicht vorkommen? Dann wäre nämlich Dein Else-Zweig auch dran und würde wieder einen Fehler verursachen. ;-)
Da hast du absolut recht. Find ich persönlich aber nicht so schlimm, da ich vorher darauf hinweise, dass die Formate der einzelnen Felder einzuhalten sind.
Ich habe aber auch keine Ahnung womit ich mir das korrekte Datumsformat bestätigen lassen kann!
bydey
Hallo,
Ich habe aber auch keine Ahnung womit ich mir das korrekte Datumsformat bestätigen lassen kann!
Hm, in VB für ACCESS gibt es die Funktion IsDate(Ausdruck)
IsDate(Ausdruck)
Das erforderliche Argument Ausdruck ist ein Wert vom Typ Variant und enthält einen Datumsausdruck oder einen Zeichenfolgenausdruck, der als Datum oder Uhrzeit interpretiert werden kann.
Bemerkungen
IsDate gibt den Wert True zurück, wenn der Ausdruck ein Datum ist oder in ein gültiges Datum umgewandelt werden kann. Andernfalls wird False zurückgegeben. In Microsoft Windows liegen gültige Datumswerte im Bereich vom 1. Januar 100 n.Chr bis 31. Dezember 9999 n.Chr. Auf anderen Betriebssystemen können andere Bereiche gelten.
Eventuell gibts sowas ja auch für ASP-VB?
viele Grüße
Axel
Hallo bydey,
ich hatte mal ein ähnliches Problem, dann habe ich das Datum zwischen zwei '#' gesetzt und in englicher Form mm/dd/yy. Dann hats funktioniert.
mfg .:thomas:.