Recordset Update

Manii

Mitglied
Hi..

ich möchte Einträge in meiner Datenbank updaten, da es mir momentan zu schwer fällt, auszuschen welche geändert wurden und dann nur selektiv zu updaten, möchte ich einfach alles updaten. Aber nichtmal das bekomme ich hin. Weiss jemand wies richtig gehört?

Code:
    rs.Open "Update Lieferscheine.dbo.Lieferscheinanzeige1 (nLSNR, strADRESSE, strBESTNR, strPROJEKT, strAUFTRAG, strKNDNR, strUIDNR, strLIEFERNR, dDATUM, strZEICHEN, strLB, strLINK) VALUES" _
    & "('" & LSNR & "'" & ",'" & ADRESSE & "','" & BESTNR & "'" & ",'" & PROJEKT & "','" & AUFTRAG & "','" & KNDNR & "','" & UIDNR & "','" & LIEFERNR & "','" & DATUM & "','" & ZEICHEN & "','" & LB & "','" & LINK & "'" & ")", cnn

Wäre sehr dankbar...

lG Manii
 
Naja inzwischen denk ich ich kann dir wieder nicht helfne aber ich poste trotzdem mal mein Lösungsansatz:
Code:
 'Speichern der Daten in DB
 Rs.AddNew
 Rs.Fields("KdNr") = KdNr
 Rs.Fields("KdName") = KdName
 Rs.Fields("Rabatt") = Rabatt
 Rs.Update

Also als erstes muss du das Rs.AddNew machen damit du signalisiert amch ne neue Spalte
Dann soll er in Feld "Kdnr" die Variable KdNr reinschieben
usw.
beim
Rs.Update speichert er alles
 
wenn du es über ein upate sql machen willst musst du es auf deiner Connection machen:

Visual Basic:
 cnn.execute "Update Lieferscheine.dbo.Lieferscheinanzeige1 (nLSNR, strADRESSE, strBESTNR, strPROJEKT, strAUFTRAG, strKNDNR, strUIDNR, strLIEFERNR, dDATUM, strZEICHEN, strLB, strLINK) VALUES" _
    & "('" & LSNR & "'" & ",'" & ADRESSE & "','" & BESTNR & "'" & ",'" & PROJEKT & "','" & AUFTRAG & "','" & KNDNR & "','" & UIDNR & "','" & LIEFERNR & "','" & DATUM & "','" & ZEICHEN & "','" & LB & "','" & LINK & "'" & ")"

das sql statement ist auf jeden fall schneller als ein recordset.update

Grüsse

bb
 
Zuletzt bearbeitet:
öhm :S

ich weiss net ob ihr mein Problem ganz verstanden habt..

nLSNR strADRESSE strLINK strTEXT
111 asdfasdf asdfasd asdfasd

Ich will jetzt nur die Zeile mit nLSNR-111 updaten, neue Werte zuweisen. Und nicht irgendwelche neuen Spalten erzeugen... einfach nur die alten Werte, gegen die neuen aus dem Formular tauschen.

Das Ganze (überschreiben und nur einsetzen) sieht derzeit so aus:

Code:
Dim rs As New ADODB.Recordset
    rs.Open "SELECT *  FROM [Lieferscheine].[dbo].[Lieferscheinanzeige1] ORDER BY nLSNR DESC ", cnn
    rs.MoveFirst
   
    'Abfrage ob Insert oder Update
    If rs.Fields("nLSNR") = LSNR Then
    
    'Update
    rs.Close
    rs.Open "Update Lieferscheine.dbo.Lieferscheinanzeige1 (nLSNR, strADRESSE, strBESTNR, strPROJEKT, strAUFTRAG, strKNDNR, strUIDNR, strLIEFERNR, dDATUM, strZEICHEN, strLB, strLINK) VALUES" _
    & "('" & LSNR & "'" & ",'" & ADRESSE & "','" & BESTNR & "'" & ",'" & PROJEKT & "','" & AUFTRAG & "','" & KNDNR & "','" & UIDNR & "','" & LIEFERNR & "','" & DATUM & "','" & ZEICHEN & "','" & LB & "','" & LINK & "'" & ")", cnn
    rs.Close
    
    Else
    
    'Insert
    rs.Close
    rs.Open "Insert into Lieferscheine.dbo.Lieferscheinanzeige1 (nLSNR, strADRESSE, strBESTNR, strPROJEKT, strAUFTRAG, strKNDNR, strUIDNR, strLIEFERNR, dDATUM, strZEICHEN, strLB, strLINK) VALUES" _
    & "('" & LSNR & "','" & ADRESSE & "','" & BESTNR & "','" & PROJEKT & "','" & AUFTRAG & " ','" & KNDNR & "','" & UIDNR & "','" & LIEFERNR & "','" & DATUM & "','" & ZEICHEN & "','" & LB & "','" & LINK & "'" & ")", cnn   

    End If
 
wie gesagt mach die sqls auf der connection und nicht auf das recordset. das kann das nämlich nicht

Grüsse bb
 
Visual Basic:
 cnn,execute "Update Lieferscheine.dbo.Lieferscheinanzeige1 (nLSNR, strADRESSE, strBESTNR, strPROJEKT, strAUFTRAG, strKNDNR, strUIDNR, strLIEFERNR, dDATUM, strZEICHEN, strLB, strLINK) VALUES" _
    & "('" & LSNR & "'" & ",'" & ADRESSE & "','" & BESTNR & "'" & ",'" & PROJEKT & "','" & AUFTRAG & "','" & KNDNR & "','" & UIDNR & "','" & LIEFERNR & "','" & DATUM & "','" & ZEICHEN & "','" & LB & "','" & LINK & "'" & ")"

Hier erwartet mein Debugger immer eine Anweisungsende, keine Ahnung warum. Jedenfalls finde ich den Fehler nicht.... findest du ihn?
 
Incorrect syntax near '('.

?

Tut mir Leid wenn ich jetzt öfter frage, aber ich komme derzeit nicht weiter :(
 
Meine Lösung:

Code:
 rs.Open "Update Lieferscheine.dbo.Lieferscheinanzeige1 " & _
    "SET strADRESSE = " & "'" & ADRESSE & "'" & " , strBESTNR = " & "'" & BESTNR & "'" & ", " & "strPROJEKT = " & "'" & PROJEKT & "'" & "," & "strAUFTRAG = " & "'" & AUFTRAG & "'" & ", " & _
    "strKNDNR = " & " '" & KNDNR & "'" & " , strUIDNR = " & "'" & UIDNR & "'" & " , strLIEFERNR = " & "'" & LIEFERNR & "'" & " , dDATUM = " & "'" & DATUM & "'" & ", " & _
    "strZEICHEN = " & "'" & ZEICHEN & "'" & " , strLB = " & "'" & LB & "'" & " , strLINK = " & "'" & LINK & "'" & " " & _
    "WHERE (nLSNR = " & "'" & LSNR & "'" & ")", cnn
 
Zurück