ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
638
638
EMPFEHLEN
-
Hallo zusammen,
ich brauche bitte mal Eure Hilfe: Ich lese aus einem Feedbackformular Variablen aus und möchte diese gerne mittels update in meine Datenbank schreiben. Dies funktioniert beim ersten Mal auch, aber beim zweiten Mal bekomme ich die Fehlermeldung: Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
Evtl. liegt es an 3 Memo Feldern die ich in der DB angelegt habe (zumindest habe ich darüber etwas im Internet gefunden)?
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
Public Function InDBSchreiben() Const adOpenKeyset = 1 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 Const adUseServer = 2 Const adUseClient = 3 dim strConnectionString, conn, rs, strSQL ' Connection String fuer Access Datenbank strConnectionString="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db/Feedback.mdb") ' Oeffne Datenbankverbindung Set conn = Server.CreateObject("ADODB.Connection") conn.open strConnectionString ' Definiere SQL Statement fuer leeres Recordset strSQL = "SELECT * FROM tblFeedback wHERE FeedbackID=' '" Set rs = Server.CreateObject("ADODB.Recordset") ' Oeffne Recordset: ' CursorType = adOpenKeyset ' LockType = adLockBatchOptimistic ' Cursorlocation = adUseServer (per default) rs.CursorLocation = adUseClient rs.LockType = adLockBatchOptimistic rs.CursorType = adOpenKeyset rs.open strSQL, conn, 3, 3 ' Neue Datensaetze hinzufuegen: rs.AddNew rs("Feedback_Datum") = now() If len(Name) > 0 Then rs.Fields("Feedback_Name").Value = Name End If If len(Referer) > 0 Then rs.Fields("Feedback_Referer").Value = Referer End If If len(Bewertung) > 0 Then rs.Fields("Feedback_Bewertung").Value = Bewertung End If If len(Besuche) > 0 Then rs.Fields("Feedback_Besuche").Value = Besuche End If If len(Feedback_Gut) > 0 Then rs.Fields("Feedback_Gut").Value = Feedback_Gut End If If len(Feedback_NichtGut) > 0 Then rs.Fields("Feedback_NichtGut").Value = Feedback_NichtGut End If If len(Feedback_IdeenVorschlaege) > 0 Then rs.Fields("Feedback_IdeenVorschlaege").Value = Feedback_IdeenVorschlaege End If ' Schreiben der Datensaetze in die Datenbank rs.UpdateBatch rs.Close conn.close Set rs = Nothing Set conn = Nothing End Function %>
Kann mir vielleicht jemand helfen? Vielen Dank
-
Hi
ich würde erstmal folgendes ändern
strSQL = "SELECT * FROM tblFeedback wHERE 1<0"
das kann nie vorkommen. Ist aber nicht der Fehler.
Die if-Abfragen kannst Du Dir eigentlich sparen. Wenn es nicht drauf ankommt, ob ein Feld ausgefüllt ist oder, musst Du in Access die Leere Zeichenfolge auf "ja" setzen und Eingabe NULL.
An diesem Scriptcode z.B. kann ich keinen Fehler erkennen. Ich kenne allerdings weder die Feldformate noch die Zuweisung der Variablen.
Ganz einfaches Vorgehen zum Fehlerfinden,
ADO - Einfügescript Stück für Stück aufbauen und testen. Sind nicht so viele Felder
liebe Grüße, die Luzie
-
Hallo Luzie!
Vielen Dank für den Tipp! Ohne die If-Anweisungen funktioniert es!
Viele Grüße,
webkekse
Ähnliche Themen
-
mittels Java in Grafik einen Text schreiben
Von BastianW im Forum JavaAntworten: 2Letzter Beitrag: 21.01.08, 22:12 -
Mehrere Werte (Zufällig) mittels UPDATE auf eine Anzahl von Datensätzen verteilen
Von Marius Heil im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 15.12.07, 15:25 -
Update-Problem einer MySQL-DB mittels ByteFX
Von Scrapy im Forum .NET ArchivAntworten: 0Letzter Beitrag: 01.04.05, 11:45 -
Mittels PHP in eine Access Datenbank schreiben
Von Tanderus im Forum PHPAntworten: 11Letzter Beitrag: 23.11.04, 16:08 -
Binäres Schreiben/Lesen mittels fstream!
Von mowl im Forum C/C++Antworten: 5Letzter Beitrag: 27.06.04, 22:36





Zitieren
Login





