Probleme mit Eintrag in MySQL-DB

Ilona85

Mitglied
Schoenen guten Abend. Wieder mal hab ich ein Problem und hoff es kann mir wer helfen..

Ich moecht verschiedene Daten aus Textfeldern in eine MySql - Tab. eintragen.
Die Felder in der Sql-Tab. haben als Typ varchar.
Ich verwende folgenden Code:

Code:
Private Function Insert()
    
    rsmon.AddNew
    rsmon("mon_regnr") = txtregnum.Text
    rsmon("mon_tit") = txttit.Text
    rsmon("mon_ubi") = txtubi.Text
    rsmon("mon_cla") = txtcla.Text
    rsmon("mon_ase") = txtass.Text
    rsmon("mon_notd") = txtnotd.Text
    rsmon("mon_aut") = txtaut.Text
    rsmon("mon_edit") = txtedit.Text
    rsmon("mon_tut") = txttut.Text
    rsmon("mon_anopr") = txtanopr.Text
    rsmon("mon_des") = txtdes.Text
    rsmon("mon_lugpb") = txtlugpb.Text
    rsmon("mon_pag") = txtpag.Text
    rsmon("mon_res") = txtres.Text
    rsmon("mon_doc") = txtdoc.Text
    rsmon.Update
End Function

Private Sub cmdInsert_Click()
    MousePointer = 13
     rsm.MoveFirst
    On Error GoTo Errhandler
    
    rsm.Find ("mon_regnr = '" & txtregnum.Text & "'")
        
    If rsm.EOF Then
       If txtregnum.Text = "" Then
            MsgBox "No entrò un numero de registro!", 1 + 64, "Mensaje del Sistema"
            MousePointer = 0
        Else
            Call Insert
            MsgBox "Entrar los datos estaba exitosa!", vbInformation, "Mensaje del Sistema"
            rsmon.Update
            MousePointer = 0
       End If
    Else
        MsgBox "Ya existe una revista con este numero de registro!", 1 + 64,     "Mensaje del Sistema"
        MousePointer = 0
    End If
    
 Exit Sub
 Errhandler:
        MsgBox "Ha ocurrido un error!", 1 + 64, "Mensaje del Sistema"
        MousePointer = 0
End Sub

Ab und zu geht das Eintragen gut und es erscheint die Bestaetigungs-
nachricht, aber ab und zu scheint ihm irgendeine Eingabe nicht zu passen,
und es kommt dann ein Error "Die Operation erzeugte in mehreren Schritten
Fehler - ueperpruefen sie die eingetragenen Werte" oder so aehnlich..
Bis vor Kurzem konnte ich immer einwandfrei eintragen, als ploetzlich immer
wieder die Fehlermeldung kam.
Weiss wer wo der Fehler liegt.. Ich bedank mich schon mal fuer
eure zahlreichen Antworten! Ilona
 
Also erstens in deiner Funktion insert (die eigentlich eine sub sein müsste da sie nichts zurückliefert) machst du das erste rsmon.update und dann nochmal nach deiner Msgbox

Code:
       Call Insert
            MsgBox "Entrar los datos estaba exitosa!", vbInformation, "Mensaje del Sistema"
            rsmon.Update

2. wäre es noch ganz gut zu wissen wie du dein recordset definiert hast und wie du die Datenbank geöffnet hast

3. ein Errorhandler in der Funktion Insert wäre warscheinlich hilfreicher denn dann könntest du direkt sehen welche datentypen nicht zueinander passen. (dies kann man leider nicht an deinem Recordset erkennen).

Ich würde vermuten das in einem deiner Textfelder vielleicht ein ungültiger wert drin steht vielleicht ein ' oder ein ; wobei ich nicht weiss welche Zeichen für den MySQL Server gecastet bzw. anders geschrieben werden müssen da es sich wohl um ein spanisches Programm handelt wird es irgenein Zeichen sein welches im Spanischen auftaucht z.b.~

Gruss bb
 
Hallo Brainbyte.. vielen Dank erstmal dass du dich meiner angenommen hast..
Die Fehlermeldung, dass die Operation in mehreren Schritten Fehler verursacht hat, hab ich ja mit Errhandler abgefangen.. Meistens kam die Fehlermeldung dann, wenn ich mehr als etwa 15 Textzeichen eingegeben habe..
Das Recordset hab ich folgendermassen definiert:
Code:
Public rsmon As New ADODB.Recordset
 
rsmon.Open "Select * From monografia order by mon_regnr", connmon, adOpenKeyset, adLockOptimistic

und die Datenbank oeffne ich folgendermassen:
Code:
Public Function connectrev(connmon As ADODB.Connection, rsmon As ADODB.Recordset)
    'Verbindung herstellen
    Set connmon = New ADODB.Connection
    connmn.CursorLocation = adUseClient
    connmon.ConnectionString = "DRIVER=MySQL ODBC 3.51 Driver;" _
        & "SERVER=127.0.0.1;" _
        & "DATABASE=probe;" _
        & "UID=root;" _
        & "PWD= "
    'Verbindung oeffnen
    connmon.Open

liebe Gruesse, Ilona
 
Zurück