Office: Access Tabelle mit Excel Daten updaten

Helfe beim Thema Access Tabelle mit Excel Daten updaten in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe eine Excel Arbeitsmappe die ständig aktualisiert wird. Die Spaltennamen stimmen mit den Spaltennamen der Tabelle in Access... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Apollo757, 14. März 2023.

  1. Apollo757 Neuer User

    Access Tabelle mit Excel Daten updaten


    Hallo zusammen,
    ich habe eine Excel Arbeitsmappe die ständig aktualisiert wird. Die Spaltennamen stimmen mit den Spaltennamen der Tabelle in Access überein. Jetzt möchte ich gerne einen VBA Code für Access schreiben mit dem ich per Knopfdruck die Werte aus Access bei Ungleichheit mit den Werten aus Excel update/überschreibe. Außerdem sollen nach Möglichkeit Werte die es in Access nicht nicht aber in Excel, in der Access Tabelle hinzugefügt werden, und umgekehrt.
    Ich habe bisher den folgenden Code, jedoch ist in diesem Code der letzte Teil meiner Frage nicht vorhanden, sowie wird mir eine Fehlermeldung "Benutzerdefinierter Typ nicht definiert" angezeigt.
    Code:
    Sub Datenvergleich()
    
        'Deklaration der Variablen
        Dim xlApp As Excel.Application
        Dim xlWB As Excel.Workbook
        Dim xlWS As Excel.Worksheet
        Dim rng As Excel.Range
        Dim accApp As Access.Application
        Dim accDB As Access.Database
        Dim accRec As Access.Recordset
        Dim accSQL As String
        Dim accID As Long
        
        'Öffnen der Excel-Datei und des Arbeitsblatts
        Set xlApp = New Excel.Application
        Set xlWB = xlApp.Workbooks.Open("C:\Pfad\zur\Datei\ArtikelListe1.xlsx")
        Set xlWS = xlWB.Worksheets("Artikel")
        
        'Öffnen der Access-Datenbank und der Tabelle
        Set accApp = New Access.Application
        accApp.OpenCurrentDatabase "C:\Pfad\zur\Datei\Test_Datenbank.accdb"
        Set accDB = accApp.CurrentDb
        Set accRec = accDB.OpenRecordset("tblArtikel")
        
        'Vergleich der Datensätze in der Excel-Tabelle mit der Access-Tabelle
        For Each rng In xlWS.Range("A2", xlWS.Range("A2").End(xlDown))
            accSQL = "SELECT * FROM tblArtikel WHERE Artikelnummer = " & rng.Value
            accRec.FindFirst accSQL
            If Not accRec.NoMatch Then
                If rng.Offset(0, 1).Value <> accRec("Artikelbezeichnung") Then
                    accID = accRec("ID")
                    accRec.Edit
                    accRec("Artikelbezeichnung") = rng.Offset(0, 1).Value
                    accRec.Update
                End If
            End If
        Next rng
        
        'Schließen der Objekte
        accRec.Close
        accDB.Close
        accApp.Quit
        Set accRec = Nothing
        Set accDB = Nothing
        Set accApp = Nothing
        
        xlWB.Close SaveChanges:=True
        xlApp.Quit
        Set xlWS = Nothing
        Set xlWB = Nothing
        Set xlApp = Nothing
    
    End Sub
    
    Ich würde mich sehr über Hilfe freuen!
     
    Apollo757, 14. März 2023
    #1
  2. Doming
    Doming hat Ahnung
    Moin Apollo,
    Du kannst die Excel-Tabelle mit Access verknüpfen, dann ist kein händisches Kopieren/Kontrollieren nötig.
    Externe Daten/Neue Datenquelle/Aus Datei/Excel
     
    Doming, 14. März 2023
    #2
  3. Apollo757 Neuer User
    Hallo Doming ich würde das aber gerne automatisiert per Button machen lassen. Das jedes Mal händisch machen zu müssen ist ein wenig zeitraubend
     
    Apollo757, 14. März 2023
    #3
  4. Doming
    Doming hat Ahnung

    Access Tabelle mit Excel Daten updaten

    Das hast Du falsch verstanden, die Exceltabelle ist durch die Verknüpfung eine Quelle für die Datenbank.
     
    Doming, 14. März 2023
    #4
  5. Apollo757 Neuer User
    Ja das habe ich falsch verstanden.
    Wie kann man eine solche Verknüpfung machen ?
     
    Apollo757, 14. März 2023
    #5
  6. Doming
    Doming hat Ahnung
     
    Doming, 14. März 2023
    #6
  7. Apollo757 Neuer User
    Mir zeigt es dann aber nur den Tabelleninhalt an wenn ich das Excel Blatt beöffnet habe. Außerdem ist es eine relativ große Tabelle und wenn ich durch die Tabelleninhalte in Access druchgehe kommt das System nicht immer ganz mit.
    Und wenn ich ausversehen etwas in Excel beispielweise ändere dann wird es ja sofort in Access hochgeladen. Ich würde es lieber "manuell" hochladen wenn ich fertig mit dem bearbeiten der excel tabelle bin
     
    Apollo757, 14. März 2023
    #7
  8. Doming
    Doming hat Ahnung

    Access Tabelle mit Excel Daten updaten

    Hallo,
    was ist der letzte Teil der Frage, die Aktualisierung der Exceltabelle mit den Accessdaten?
    Wo stoppt der Code mit der Fehlermeldung?
     
    Doming, 14. März 2023
    #8
  9. Apollo757 Neuer User
    Es hat immer bei xlWs Datensatzvergleich gestoppt. Ich habe den Code jetzt aber mal ein bisschen umgeschrieben. Er läuft auch soweit jedoch sagt er mir abwechselnd immer wieder das er die Mappe "Tabelle1" (so heißt mein Test-Arbeitsblatt in Excel) nicht findet. Oder das der Administrator die Mappe gesperrt hat. Weißt du vielleicht woran das liegen kann?


    Code:
    Option Compare Database
    
    Sub VergleichUndUpdateDerTabellen()
    
        On Error GoTo ErrorHandler
        
        ' Öffnen der Access-Datenbank
        Dim db As DAO.Database
        Set db = OpenDatabase("C:\Users\xxx\Documents\Database1.accdb")
        
        ' Öffnen der Excel-Datei
        Dim xlApp As Excel.Application
        Set xlApp = CreateObject("Excel.Application")
        Dim xlWorkbook As Excel.Workbook
        Set xlWorkbook = xlApp.Workbooks.Open("C:\Users\xxx\Documents\xxx.xlsx")
        Dim xlWorksheet As Excel.Worksheet
        Set xlWorksheet = xlWorkbook.Worksheets("Tabelle1")
        
        ' Öffnen der Access-Tabelle
        Dim tblAccess As DAO.Recordset
        Set tblAccess = db.OpenRecordset("Name der Tabelle in Access")
        
        ' Abfrage der Excel-Daten
        Dim rstExcel As DAO.Recordset
        Set rstExcel = db.OpenRecordset("SELECT [Primärschlüssel], [Erste Spalte die verglichen werden soll], [zweite Spalte die verglichen werden soll] FROM [Tabelle1]IN 'C:\Users\xxx\Documents\xxx(gleiches xxx) .xlsx' [Excel 12.0 Xml;HDR=YES;IMEX=2]")
        
        ' Schleife durch alle Datensätze in der Excel-Tabelle
        rstExcel.MoveFirst
        Do Until rstExcel.EOF
        
            ' Überprüfen, ob der Datensatz in der Access-Tabelle vorhanden ist
            tblAccess.FindFirst "PrimaryKeyColumnName = '" & rstExcel![Primärschlüssel] & "'"
            If tblAccess.NoMatch Then
                ' Wenn der Datensatz nicht gefunden wurde, fügen Sie ihn hinzu
                tblAccess.AddNew
                tblAccess![Primärschlüssel] = rstExcel![Primärschlüssel]
                tblAccess![Erste Spalte die verglichen werden soll] = rstExcel![Erste Spalte die verglichen werden soll]
                tblAccess![zweite Spalte die verglichen werden soll] = rstExcel![zweite Spalte die verglichen werden soll]
                tblAccess.Update
            Else
                ' Wenn der Datensatz gefunden wurde, aktualisieren Sie ihn
                If tblAccess![Erste Spalte die verglichen werden soll] <> rstExcel![Erste Spalte die verglichen werden soll] Then
                    tblAccess.Edit
                    tblAccess![Erste Spalte die verglichen werden soll] = rstExcel![Erste Spalte die verglichen werden soll]
                    tblAccess.Update
                End If
                If tblAccess![zweite Spalte die verglichen werden soll] <> rstExcel![zweite Spalte die verglichen werden soll] Then
                    tblAccess.Edit
                    tblAccess![zweite Spalte die verglichen werden soll] = rstExcel![zweite Spalte die verglichen werden soll]
                    tblAccess.Update
                End If
            End If
        
            rstExcel.MoveNext
        Loop
        
        ' Schließen aller Objekte
        rstExcel.Close
        Set rstExcel = Nothing
        tblAccess.Close
        Set tblAccess = Nothing
        xlWorkbook.Close SaveChanges:=False
        Set xlWorksheet = Nothing
        Set xlWorkbook = Nothing
        xlApp.Quit
        Set xlApp = Nothing
        Set db = Nothing
        
        ' Meldung bei erfolgreichem Durchlauf
        MsgBox "Die Daten wurden erfolgreich verglichen und aktualisiert.", vbInformation
        
        Exit Sub
    
    ErrorHandler:
        MsgBox "Fehler: " & Err.Number & vbCrLf & Err.Description, vbCritical, "Fehler bei der Datenaktualisierung"
        
        Set rstExcel = Nothing
        Set tblAccess = Nothing
        Set xlWorksheet = Nothing
        Set xlWorkbook = Nothing
        'xlApp.Quit
        Set xlApp = Nothing
        Set db = Nothing
    
    End Sub
    
     
    Apollo757, 14. März 2023
    #9
  10. Doming
    Doming hat Ahnung
    Hm, ich kann so gerade keinen Fehler sehen, vielleicht aber jemand, der darin besser bewandert ist.
    Was mir auffällt: "PrimaryKeyColumnName = '" & rstExcel![Primärschlüssel] & "'"
    Dein Primärschlüssel ist eine String-Variable? ColumnName klingt für mich nach Spaltenüberschrift.
     
  11. Apollo757 Neuer User
    Ist doch eigentlich eine Spaltenüberschrift. PrimarKeyColumnName wie auch [Primärschlüssel] wird durch den Primärschlüssel der Access Tabelle ersetzt
     
    Apollo757, 14. März 2023
    #11
Thema:

Access Tabelle mit Excel Daten updaten

Die Seite wird geladen...
  1. Access Tabelle mit Excel Daten updaten - Similar Threads - Access Tabelle Excel

  2. Verknüpfte Excel Tabelle in Access Tabelle

    in Microsoft Access Hilfe
    Verknüpfte Excel Tabelle in Access Tabelle: Moin zusammen! Ich bin noch recht neu in Access und stehe gerade vor einem Problem. Folgende Situation: Ich habe eine Excel-Tabelle mit ca. 500 Datensätzen und 7 Spalten. Die Daten aus dieser...
  3. Excel Tabelle mit Access-Datenbank verknüpfen

    in Microsoft Excel Hilfe
    Excel Tabelle mit Access-Datenbank verknüpfen: Hallo, ich habe eine Frage. Wir müssen jedes Jahr in Berieben elektrische Geräte auf ihre Funktion prüfen. Bisher haben wir immer Excel-Tabellen per Hand ausgefüllt. Dies ist sehr mühselig. Nun...
  4. Excel Tabelle in Access importiert- über Button in Access Tabelle in Excel aktualisi.

    in Microsoft Access Hilfe
    Excel Tabelle in Access importiert- über Button in Access Tabelle in Excel aktualisi.: Hallo zusammen, ich habe eine Excel Tabelle in Access importiert. Nun möchte ich über einen Button in einem Formular die Tabelle in Excel aktualisieren. Nachdem die Aktualisierung in Excel...
  5. Import von Excel-Daten in Access-Tabelle

    in Microsoft Access Hilfe
    Import von Excel-Daten in Access-Tabelle: Hallo, um es gleich vorwegzunehmen, ich bin absoluter Amateur und hänge an folgendem Punkt: Ausgangspunkt: Ich muss einmalig (von Hand, es geht also nicht zwingend um ein VBA-Modul o.Ä., obwohl...
  6. Access Tabelle mit Excel bearbeiten

    in Microsoft Access Hilfe
    Access Tabelle mit Excel bearbeiten: Ich habe eine Access Datenbank, im Moment rufe ich mit Excel die Abfragen der DB ab und stelle sie dort als Tabelle da. Die Excel Datei kann ich dann immer Aktualisieren wenn in Access Daten dazu...
  7. Excel Daten in Access Tabelle importieren

    in Microsoft Access Hilfe
    Excel Daten in Access Tabelle importieren: Guten Tag, ich habe mich mit der Suche des Forums beschäftigt. Hätte ich was gefunden würde ich kein neues Thema öffnen. *tongue.gif* *wink.gif* Kurz und Knapp: Access Tabelle : "Master" mit x...
  8. Verwenden einer Sprachausgabe, um eine Access-Tabelle in eine Excel-Arbeitsmappe zu exportieren

    in Microsoft Access Tutorials
    Verwenden einer Sprachausgabe, um eine Access-Tabelle in eine Excel-Arbeitsmappe zu exportieren: Verwenden einer Sprachausgabe, um eine Access-Tabelle in eine Excel-Arbeitsmappe zu exportieren Access für Microsoft 365 Access 2019 Access 2016 Mehr... Weniger...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden