Wert in Access Datenbank ändern

VBA und Makros
Codeschnipsel
Arbeitsblatt
Datenbank
Schnittstelle
ADO
Excel
Word
Access

Ausgangslage - Was tut dieser Code-Schnipsel?

Folgend finden Sie ein sehr einfaches Beispiel, um in einer Microsoft Access Datenbank das Feld "MeinFeld" in der Tabelle "MeineTabelle" mit einem neuen Wert zu füllen. Dies soll aus einer anderen Anwendung, wie z.B. Word oder Excel, heraus passieren. Dabei soll der Datensatz geändert werden, der in der Spalte "ID" die 1 enthält.
Für Fortgeschrittene ist dieses Beispiel allerdings zu einfach, da jegliche Plausibilisierungen weggelassen wurden, damit auch Anfänger dieses Makro verwenden können.

Ergebnisse statt Aufwand & Arbeit?
Wir liefern Ergebnisse - Schicken Sie uns kurz Ihre Datei und Ihre Wünsche; wir integrieren den notwendigen Code professionell, beheben ggf. vorhandene Fehler, machen optional ein Code-Review, liefern bei Bedarf Performance-Optimierungen & setzen gewünschte Erweiterungen effizient für Sie um (und das zum Festpreis nach kurzer Sichtung).
Express-Service beauftragen

Der Quelltext

Option Explicit
Option Compare Text
' Original-Quelltext unter: https://www.online-vba.de/wert-in-access-datenbank-aendern
' Express-Hilfe für VBA unter https://www.online-vba.de/vba-expresshilfe
' Es gelten die Nutzungsbedingungen von Online-VBA.de

Public Sub OVBAde_DatenInAccessDBschreiben()
  Dim oADODBConnection As Object
  Dim oRecordSet As Object
  Dim sTableName As String
  Dim sFilterKlausel As String
    
    'Welcher Datensatz in welcher Tabelle?
    sTableName = "MeineTabelle"
    sFilterKlausel = "ID=1"
    
    'Datenbankdatei (hier Access DB)
    sDataBaseFile = "C:\TEST\Testdatenbank.accdb" 'wo liegt die Datei?
    If Trim(CStr(Dir(sDataBaseFile))) = "" Then
        MsgBox "Die Datenbank-Datei: " & sDataBaseFile & _
            " wurde nicht gefunden.", vbCritical + vbOKOnly, "FEHLER!"
        Exit Sub
    End If
    
    'Verbindung zur Datenbank
    Set oADODBConnection = CreateObject("ADODB.Connection") 'LateBinding, daher ohne Verweis
    With oADODBConnection
        .Provider = "Microsoft.ACE.OLEDB.12.0" 'für Access 2013
        .Properties("Persist Security Info") = "False"
        .Properties("Data Source") = sDataBaseFile
        .Open
    End With
    
    'RecordSet öffnen
    Set oRecordSet = CreateObject("ADODB.RecordSet") 'LateBinding, daher ohne Verweis
    With oRecordSet
        .CursorLocation = 3 'adUseClient
        .CursorType = 2 'adOpenDynamic
        .LockType = 3 'adLockOptimistic
        .Open sTableName, oADODBConnection
        .Filter = sFilterKlausel 'Filter setzen, ID muss 1 sein!
    End With
    
    'Daten schreiben
    If Not oRecordSet.EOF Then 'Nur wenn der Datensatz gefunden wurde ID=1
        'Wertzuweisung: MeinFeld bekommt "Neuer Wert!"
        'Bei Zahlen entsprechend: oRecordSet.Fields("MeinFeld") = 12
        oRecordSet.Fields("MeinFeld") = "Neuer Wert!"
        'Speichern / Aktualisieren
        oRecordSet.Update
    End If
    
    'RecordSet schließen
    oRecordSet.Close
    
    'Datenbankverbindung schließen
    oADODBConnection.Close
        
    Set oRecordSet = Nothing
    Set oADODBConnection = Nothing
End Sub

Anmerkungen und Hinweise

Dieser Codeschnipsel wurde geschrieben von Marc Wershoven im Jahr 2014.
Die Nutzung erfolgt auf eigene Gefahr. Bitte denken Sie immer zuerst an eine ausreichende Datensicherung. Wir können keinen kostenlosen Support anbieten. Es gelten unsere Nutzungs­bedingungen.


So einfach läuft unsere VBA-Expresshilfe ab

1
Senden Sie uns Ihre Office-Datei oder Ihren VBA-Code (gerne anonymisiert) mit einer kurzen Problembeschreibung oder Ihrem Erweiterungswunsch per E-Mail.
2
Wir analysieren Ihr Anliegen schnell und schicken Ihnen umgehend (tagsüber meist innerhalb von 1-2 Stunden) ein Festpreis-Angebot.
3
Nach Ihrer Zustimmung lösen wir Ihr Problem (meist noch am gleichen Tag) oder setzen Ihre Erweiterung zuverlässig um – inklusive verständlicher Dokumentation der durchgeführten Maßnahmen.

Jetzt kontaktieren!







Mit einem * gekennzeichnete Eingabefelder sind Pflichtfelder.
Datenschutzhinweise zum Kontaktformular: Die von Ihnen im Kontaktformular bereitgestellten Daten werden ausschließlich zur Bearbeitung Ihrer Anfrage verwendet und nicht ohne Ihre Zustimmung an Dritte weitergegeben. Ihre Daten werden nur für den Zeitraum gespeichert, der zur Bearbeitung Ihrer Anfrage erforderlich ist. Weitere Hinweise zum Datenschutz finden Sie in unserer Datenschutzerklärung.
Hinweis: Für die vollständige Funktion dieser Website ist JavaScript erforderlich.
Bitte aktivieren Sie JavaScript in Ihrem Browser, um alle Inhalte und interaktiven Funktionen nutzen zu können.