Datentypen in Kriterienausdruck unverträglich
Hallo Zusammen !
Wir haben für unsere Homepage eine Art CMS System das auf einer Access Datenbank basiert, mit welchem wir z.B. Kurse oder sonstige Angaben vereinfacht eintragen können. Möchte ich bei unseren Kursen im CMS System einen neuen Kurs eintragen erhalte ich folgende Fehlermeldung:
Microsoft JET Database Engine- Fehler '80040e07'
Datentypen in Kriterienausdruck unverträglich.
/seminare_dbeintrag.asp, line 11
Wenn ich in dem ASP File nachschaue unter Line 11 ist folgender Code drin:
Set seminare = DB.Execute("INSERT INTO seminare (kursnr, seminarname, beschreibung, zielgruppe_1, zielgruppe_2, zielgruppe_3, zielgruppe_4, zielgruppe_5, zielgruppe_6, dauer, link, kategorie, sortierung, tag, monat, jahr, pdfname, url, urltext, preis, waehrung, kursort, fuehrungskraefte, cfos, controller, mzsg, weka, czsg) VALUES ('" & _
Und unten drunter folgendes:
REPLACE(request.form("kursnr"), "'", "''") & "', '" & _
REPLACE(request.form("seminarname"), "'", "''") & "', '" & _
REPLACE(request.form("beschreibung"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_1"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_2"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_3"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_4"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_5"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_6"), "'", "''") & "', '"& _
REPLACE(request.form("dauer"), "'", "''") & "', '"& _
REPLACE(request.form("link"), "'", "''") & "', '"& _
REPLACE(request.form("kategorie"), "'", "''") & "', '"& _
REPLACE(request.form("sortierung"), "'", "''") & "', '"& _
REPLACE(request.form("tag"), "'", "''")& "', '"& _
REPLACE(request.form("monat"), "'", "''")& "', '"& _
REPLACE(request.form("jahr"), "'", "''") & "', '"& _
REPLACE(request.form("pdfname"), "'", "''") & "', '"& _
REPLACE(request.form("url"), "'", "''") & "', '"& _
REPLACE(request.form("urltext"), "'", "''") & "', '"& _
REPLACE(request.form("preis"), "'", "''") & "', '"& _
REPLACE(request.form("waehrung"), "'", "''") & "', '"& _
REPLACE(request.form("kursort"), "'", "''") & "', '"& _
REPLACE(request.form("fuehrungskraefte"), "'", "''") & "', '"& _
REPLACE(request.form("cfos"), "'", "''") & "', '"& _
REPLACE(request.form("controller"), "'", "''") & "', '"& _
REPLACE(request.form("mzsg"), "'", "''") & "', '"& _
REPLACE(request.form("weka"), "'", "''") & "', '"& _
REPLACE(request.form("czsg"), "'", "''") & "')")
%>
Wo liegt da der Fehler? In der Access Datenbank sind diese Tabellen Spalten mit den entsprechenden ID's/Namen alle vorhanden. Kann mir da jemand weiterhelfen?
Freundliche Grüsse
Contool
Wir haben für unsere Homepage eine Art CMS System das auf einer Access Datenbank basiert, mit welchem wir z.B. Kurse oder sonstige Angaben vereinfacht eintragen können. Möchte ich bei unseren Kursen im CMS System einen neuen Kurs eintragen erhalte ich folgende Fehlermeldung:
Microsoft JET Database Engine- Fehler '80040e07'
Datentypen in Kriterienausdruck unverträglich.
/seminare_dbeintrag.asp, line 11
Wenn ich in dem ASP File nachschaue unter Line 11 ist folgender Code drin:
Set seminare = DB.Execute("INSERT INTO seminare (kursnr, seminarname, beschreibung, zielgruppe_1, zielgruppe_2, zielgruppe_3, zielgruppe_4, zielgruppe_5, zielgruppe_6, dauer, link, kategorie, sortierung, tag, monat, jahr, pdfname, url, urltext, preis, waehrung, kursort, fuehrungskraefte, cfos, controller, mzsg, weka, czsg) VALUES ('" & _
Und unten drunter folgendes:
REPLACE(request.form("kursnr"), "'", "''") & "', '" & _
REPLACE(request.form("seminarname"), "'", "''") & "', '" & _
REPLACE(request.form("beschreibung"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_1"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_2"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_3"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_4"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_5"), "'", "''") & "', '"& _
REPLACE(request.form("zielgruppe_6"), "'", "''") & "', '"& _
REPLACE(request.form("dauer"), "'", "''") & "', '"& _
REPLACE(request.form("link"), "'", "''") & "', '"& _
REPLACE(request.form("kategorie"), "'", "''") & "', '"& _
REPLACE(request.form("sortierung"), "'", "''") & "', '"& _
REPLACE(request.form("tag"), "'", "''")& "', '"& _
REPLACE(request.form("monat"), "'", "''")& "', '"& _
REPLACE(request.form("jahr"), "'", "''") & "', '"& _
REPLACE(request.form("pdfname"), "'", "''") & "', '"& _
REPLACE(request.form("url"), "'", "''") & "', '"& _
REPLACE(request.form("urltext"), "'", "''") & "', '"& _
REPLACE(request.form("preis"), "'", "''") & "', '"& _
REPLACE(request.form("waehrung"), "'", "''") & "', '"& _
REPLACE(request.form("kursort"), "'", "''") & "', '"& _
REPLACE(request.form("fuehrungskraefte"), "'", "''") & "', '"& _
REPLACE(request.form("cfos"), "'", "''") & "', '"& _
REPLACE(request.form("controller"), "'", "''") & "', '"& _
REPLACE(request.form("mzsg"), "'", "''") & "', '"& _
REPLACE(request.form("weka"), "'", "''") & "', '"& _
REPLACE(request.form("czsg"), "'", "''") & "')")
%>
Wo liegt da der Fehler? In der Access Datenbank sind diese Tabellen Spalten mit den entsprechenden ID's/Namen alle vorhanden. Kann mir da jemand weiterhelfen?
Freundliche Grüsse
Contool
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 183704
Url: https://administrator.de/contentid/183704
Ausgedruckt am: 25.11.2024 um 16:11 Uhr
14 Kommentare
Neuester Kommentar
Hallo Contool,
Access ist zwar nicht mein Gebiet, aber ich könnte mir vorstellen, daß Du bei einer Kommazahl (z.B. in der Spalte "preis") ein Komma eingetragen hast. Bei Datenbanken wird normalerweise ein Punkt als Dezimaltrennzeichen verwendet. Das könnte man dann also mit einem weiteren replace auf das Feld bereinigen.
Auf jeden Fall solltest Du prüfen, was in die Spalten, die nicht den Datentyp Text haben, eingetragen wird.
Gruß, Mad Max
Access ist zwar nicht mein Gebiet, aber ich könnte mir vorstellen, daß Du bei einer Kommazahl (z.B. in der Spalte "preis") ein Komma eingetragen hast. Bei Datenbanken wird normalerweise ein Punkt als Dezimaltrennzeichen verwendet. Das könnte man dann also mit einem weiteren replace auf das Feld bereinigen.
Auf jeden Fall solltest Du prüfen, was in die Spalten, die nicht den Datentyp Text haben, eingetragen wird.
Gruß, Mad Max
Statt dieses "Set seminare = DB.Execute("INSERT INTO seminare ...", bei dem Du den Befehl direkt ausführst, weise diesen String doch mal einer Variablen zu. Dann setzt Du dahinter einen Breakpoint und schaust, was in der Variablen steht, das ist es ja dann, wie der Befehl genau aussieht. So solltset Du dem Problem auf die Spur kommen.
Gruß, Mad Max
Gruß, Mad Max
Genau, und jetzt prüfst du in deinem Code:
- "Zahl"-Felder dürfen nicht in " oder ' eingeschlossen sein
- "Memo" und "Text" Felder müssen in " oder ' eingeschlossen sein
- "JA/Nein" Felder dürfen nur True oder False als wert haben, OHNE " oder '
- "Zahl"-Felder dürfen nicht in " oder ' eingeschlossen sein
- "Memo" und "Text" Felder müssen in " oder ' eingeschlossen sein
- "JA/Nein" Felder dürfen nur True oder False als wert haben, OHNE " oder '