Veröffentlicht 20. Februar 200322 j Hallo, ich möchte einen Datensatz in Access unter VB ändern. Folgenden Code habe ich dazu bereits programmiert: Dim strSQL As String Dim rsLoadInfos As ADODB.Recordset Set rsLoadInfos = New ADODB.Recordset strSQL = "SELECT Wert FROM Tabelle WHERE eintrag = '" & Name & "'" Debug.Print strSQL rsLoadInfos.Open strSQL, AdminDB, adOpenStatic, adLockBatchOptimistic, -1 'Wert bei Name soll auf 1 gesetzt werden ??????? rsLoadInfos.Close Set rsLoadInfos = Nothing Name ist ein Parameter und wird beim Aufruf übergeben. Wie kann ich nun den Inhalt in der Spalte "Wert" abändern? Der Datentyp des Inhalts ist long und soll in der Zeile, wo eintrag = Name ist, von 0 auf 1 gesetzt werden. Danke für die Hilfe!!! MfG, Jusky
20. Februar 200322 j Kann mir denn keiner helfen??? Die Sache ist leider sehr dringend!!! Eine verzweifelte Jusky.
20. Februar 200322 j VB ist lange her... rsLoadInfos.Fields.Item(0) = 1 rsLoadInfos.Update ...alles ohne Gewähr, könnte auch Item(1) sein.
20. Februar 200322 j Hallo Klotzkopp, erst einmal danke für die schnelle Hilfe! Ich habe es gleich mal ausprobiert, aber er bringt mir ne Fehlermeldung: das Objekt kann nicht gefunden werden... Weitere Tips?
20. Februar 200322 j Was sagt denn der Debugger an der Stelle? Hat der Recordset eine Fields-Collection mit Items?
20. Februar 200322 j @Klotzkopp Wie kriege ich das denn raus? (Er zeigt mir nur ne Fehlermeldung, die ich aber nicht debuggen kann.) @Der Kleine Da meckert er bei mir auch rum: Methode oder Mitgliedsdaten nicht gefunden. Der kennt Edit nicht.... Zeigt bei mir nur EditMode an, wenn ich die Methodenauflistung bekomme. - Das geht aber auch nicht, da es anscheinend eine ungültige Methode ist...
20. Februar 200322 j Originally posted by Jusky @Klotzkopp Wie kriege ich das denn raus? (Er zeigt mir nur ne Fehlermeldung, die ich aber nicht debuggen kann.)Setze einen Breakpoint auf die Zeile nach dem Open, und starte das Programm im Debugger. Wenn das Programm an dieser Stelle hält, kannst du dir ansehen, was im Recordset drinsteht.
20. Februar 200322 j Da kommt irgendwie nix gescheites: rsLoadInfos.Fields...=<Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden. Und nun? :confused:
20. Februar 200322 j Gibt es denn einen Datensatz, auf den der Name passt? Was ist, wenn du = durch LIKE ersetzt?
20. Februar 200322 j Habe das Ganze nochmal mit rsLoadInfos.Fields.Item(0) = 1 probiert. - Der Compiler bringt mir jetzt keine Fehlermeldung mehr. Aber wenn ich unter Access in die DB gehe und mir die Daten anschaue, dann ist der alte Wert immer noch da. Es wurde nichts geändert! Habe ich vielleicht irgendwas vergessen? - Sind vielleicht die Parameter beim SQL-Abruf vielleicht falsch? rsLoadInfos.Open strSQL, AdminDB, adOpenStatic, adLockBatchOptimistic, -1 Oder muss ich vielleicht irgendwas noch mit AdminDB anstellen?
20. Februar 200322 j Da steht der Provider drin (MS Jet...), die UserID, Passwort, der Pfad (in welchem Verzeichnis die DB liegt), MODE: Share Deny None... Ist das denn für die Datenspeicherung relevant?
20. Februar 200322 j Hey, Moment mal... Ich habe es soeben geschafft!!!!!! Mit folgendem Aufruf klappt es: rsLoadInfos.Open strSQL, AdminDB, adOpenStatic, adLockBatchOptimistic, -1 rsLoadInfos.Fields.Item(0) = 1 rsLoadInfos.Fields.Refresh rsLoadInfos.UpdateBatch rsLoadInfos.Close Dank dir für die Denkanstöße!!! MfG, Jusky
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.