Anzeige

VBA
Programmierer
gesucht?
 
Anzeige
VBA Programmierer gesucht?
 

VBA Codeschnipselsammlung

Wert in einer Access® Datenbank aus Word® oder Excel® heraus ändern

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.

Option Explicit
' ************************************************************************************************
' Autor/en: http://www.online-vba.de - Marc Wershoven
' Verwendung der Quelltexte auf eigene Gefahr!
' Es gelten die Nutzungsbedingungen von www.online-vba.de!
' Original-Quelltext: www.online-vba.de/vba_updatedbfield.php
' ************************************************************************************************


Sub MWDatenInAccessDBschreiben()
   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
    
     Application.Cursor = xlWait
    
     '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
        
     Application.Cursor = xlDefault
    
     Set oRecordSet = Nothing
     Set oADODBConnection = Nothing
End Sub


Autor: Marc Wershoven (2014)

Anzeige

VBA Programmierer gesucht?
http://www.WershovenOnline.de

Anzeige

Der Quick E-Mail Support von WershovenOnline®

Schnelle Hilfe bei Fragen rund um Microsoft® Office und VBA Makros

Der Quick E-Mail Support von WershovenOnline® Sie haben beispielsweise eine Frage zu einer Ihrer eigenen Makroprogrammierungen in VBA? Oder Sie suchen Unterstützung und Informationen über eine bestimmte Microsoft® Excel® Formel? Bei nahezu allen Fragen und Problemen rund um Microsoft® Office und VBA Makros steht Ihnen unser individueller Quick E-Mail Support zur Verfügung. Einfach, schnell und unkompliziert Ihre Frage in einer E-Mail formulieren, mit oder ohne Screenshots oder einer Beispieldatei absenden und kurze Zeit später haben Sie eine vollständige Lösung inkl. ausführlicher Erklärung vom Profi in Ihrem Postfach! Zusätzlich besteht die Option, dass wir uns mittels Fernwartung (selbstverständlich nach Ihrem Einvertändnis) direkt "live" mit Ihnen zusammen an Ihrem Bildschirm gemeinsam Fragen und Problemstellungen anschauen und lösen können!

Weitere Informationen zu diesem kostenpflichtigen Angebot finden Sie auf der Anbieterseite von WershovenOnline® auf www.wershovenonline.de.

Zum Anbieter des Quick-E-Mail-Support...

Zum Seitenanfang