contool
Goto Top

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

Content-Key: 183704

Url: https://administrator.de/contentid/183704

Printed on: April 19, 2024 at 21:04 o'clock

Member: SlainteMhath
SlainteMhath Apr 18, 2012 at 11:08:11 (UTC)
Goto Top
Moin,

Der Fehler
Datentypen in Kriterienausdruck unverträglich.
deutet darufhin, das du versiuchst ein String/Text-Feld mit einem Int-Wert zu fülllen, oder anders rum. Int-Werte dürfen nicht in Anführungszeichen stehen, String/Text müssen!

lg,
Slainte
Member: contool
contool Apr 18, 2012 at 11:11:06 (UTC)
Goto Top
Hey !

Besten Dank für deine Antwort. Wie finde ich denn heraus welches Feld ein String und welches ein Int-Werte Feld ist? Bzw. wo genau das Problem liegt?

Greez
Member: MadMax
MadMax Apr 18, 2012 at 11:12:42 (UTC)
Goto Top
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
Member: contool
contool Apr 18, 2012 at 11:14:26 (UTC)
Goto Top
Oh oh...das musst du mir nochmals für "Dummies" erklären face-smile

greez
Member: MadMax
MadMax Apr 18, 2012 at 11:18:02 (UTC)
Goto Top
Wenn Du bei Preis z.B. den Wert "3,50" einträgst, dann ist das für eine Datenbank keine Zahl. Der Wert "3.50" dagegen schon. Wenn das die Ursache wäre, dann könntest Du das mit einem replace (... , ',', '.') beheben.

Gruß, Mad Max
Member: contool
contool Apr 18, 2012 at 11:24:25 (UTC)
Goto Top
Aber beim Preis werden in der Regel nur Gerundete Beträge eingegeben...ich erhalte die Meldung auch ohne , oder .

:S :S
Member: MadMax
MadMax Apr 18, 2012 at 11:35:12 (UTC)
Goto Top
Dann wären mal die Datentypen Deiner Spalten interessant und was Du versuchst einzutragen. Außerdem solltest Du mal prüfen, was Slainte Dir geschrieben hat.

Gruß, Mad Max
Member: contool
contool Apr 18, 2012 at 11:37:12 (UTC)
Goto Top
Wie kann ich die Datentypen der Spalten prüfen?

Es sind Angaben zu Seminare, Titel, Beschreibung, Kosten, Datum, etc...die werden dort eingetragen und auf der Homepage wird ein neues Element mit dem eingetragenen Seminar erstellt.

greez
Member: SlainteMhath
SlainteMhath Apr 18, 2012 at 11:52:13 (UTC)
Goto Top
Wie kann ich die Datentypen der Spalten prüfen?
Mit Access die Access-Datenbank öffnen, und die entsprechende Tabelle in der Entwurfsansicht öffnen.
Member: contool
contool Apr 18, 2012 at 11:59:18 (UTC)
Goto Top
Da steht folgendes drin:

http://img19.imageshack.us/img19/4641/seminare.jpg


Also das komische ist ja..wenn ich die Seminare direkt in die Access Datenbank eintrage geht es ohne Probleme. Nur hald über das CMS System kommt diese Meldung
Member: MadMax
MadMax Apr 18, 2012 at 12:23:30 (UTC)
Goto Top
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
Member: SlainteMhath
SlainteMhath Apr 18, 2012 at 12:27:31 (UTC)
Goto Top
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 '
Member: contool
contool Apr 18, 2012 at 12:38:33 (UTC)
Goto Top
Habe es angepasst. Jetzt kommt folgendes:

Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ee'

')' erwartet

/cms/_training/seminare_dbeintrag.asp, line 39

REPLACE(request.form("czsg"), "'", "''") & "')")
Member: NetWolf
NetWolf Apr 18, 2012 at 12:47:45 (UTC)
Goto Top
Moin Moin,

d.h. irgendwo sind die Anführungsstriche falsch, bzw. er gibt nur ein Anführungszeichen und das zweite fehlt.

Viel Spaß beim Suchen face-smile

Grüße aus Rostock
Wolfgang
(Netwolf)