tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
638
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    webkekse webkekse ist offline Grünschnabel
    Registriert seit
    Jul 2005
    Beiträge
    4
    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
     

  2. #2
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    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

  3. #3
    webkekse webkekse ist offline Grünschnabel
    Registriert seit
    Jul 2005
    Beiträge
    4
    Hallo Luzie!

    Vielen Dank für den Tipp! Ohne die If-Anweisungen funktioniert es!

    Viele Grüße,
    webkekse
     

Ähnliche Themen

  1. mittels Java in Grafik einen Text schreiben
    Von BastianW im Forum Java
    Antworten: 2
    Letzter Beitrag: 21.01.08, 22:12
  2. Mehrere Werte (Zufällig) mittels UPDATE auf eine Anzahl von Datensätzen verteilen
    Von Marius Heil im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 15.12.07, 15:25
  3. Update-Problem einer MySQL-DB mittels ByteFX
    Von Scrapy im Forum .NET Archiv
    Antworten: 0
    Letzter Beitrag: 01.04.05, 11:45
  4. Antworten: 11
    Letzter Beitrag: 23.11.04, 16:08
  5. Antworten: 5
    Letzter Beitrag: 27.06.04, 22:36