Immer und immer wieder taucht die Frage auf, wie man Änderungen von Datenbank-Inhalten manuell via Code vornehmen kann. Viele User versuchen das Ganze zunächst über die Text-Eigenschaft zu realisieren. Die Ansicht im DataGrid wird hierbei auch entsprechend aktualisiert - jedoch wird der neue Feldinhalt nicht in der Datenbank gespeichert. Um im Recordset-Mode Datenbank-Inhalte per Code dauerhaft zu ändern, muss der neue Feldinhalt direkt über das Recordset-Objekt zugewiesen und gespeichert werden. Beispiel: With Grid1.Recordset .Edit ' nur falls DAO verwendet wird .Fields("feldname") = "neuer Wert" .Update End With ' Ansicht aktualisieren Grid1.RowRefresh Das Ganze lässt sich auch in eine universelle Funktion verpacken, mit der man Änderungen bequem per Funktionsaufruf vornehmen kann. ' Dauerhafte Änderungen am Datenbank-Inhalt vornehmen Public Function DoChange(Grid As Object, _ ByVal nRow As Long, _ ByVal nCol As Variant, _ ByVal NewValue As Variant, _ Optional ByVal bRefresh As Boolean = True, _ Optional ByVal bSilent As Boolean = False) As Boolean With Grid.Recordset ' zum gewünschten Datensatz wechseln .MoveFirst If nRow > 1 Then .Move nRow - 1 ' Datensatz bearbeiten .Edit ' nur falls DAO If IsNumeric(nCol) Then .Fields(nCol - 1) = NewValue Else .Fields(nCol) = NewValue End If .Update End With ' Ansicht im DataGrid aktualisieren If bRefresh Then Grid.RowRefresh nRow DoChange = True Exit Function ErrHandler: If Not bSilent Then MsgBox "Fehler beim Aktualisieren des Recordsets!" & vbCrLf & _ CStr(Err.Number) & " " & Err.Description, vbExclamation Or vbOKOnly End If DoChange = False End Function Aufruf: Dim bResult As Boolean bResult = DoChange(Grid1, 10, 5, "neuer Wert") Anstelle der Spaltennummer können Sie auch die Feldbezeichnung im Recordset angeben: bResult = DoChange(Grid1, 10, "feldname", "neuer Wert") Dieser Tipp wurde bereits 8.991 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 Neu! sevPopUp 2.0 Dynamische Kontextmenüs! Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |