Zum Hauptinhalt springen

Arbeiten mit Access-VBA-Datensätzen in Excel: Vorgehensweise

Microsoft Access und Microsoft Excel sind zwei der beliebtesten Anwendungen, die zum Arbeiten mit Daten verwendet werden. Durch die Möglichkeit, Daten zwischen diesen Programmen zu importieren und zu exportieren, können Sie diese effizient zusammen nutzen und die Funktionalität erweitern.

Sie müssen jedoch häufig nicht einfach Daten aus Access nach Excel importieren und umgekehrt, sondern direkt mit Datensätzen in der Datenbank arbeiten, indem Sie die Programmiersprache VBA (Visual Basic für Applikationen) verwenden. VBA ist ein leistungsfähiges Werkzeug, mit dem Sie Prozesse automatisieren und komplexe Makros erstellen können.

In diesem Artikel erfahren Sie, wie Sie mit Access-VBA-Datensätzen in Excel arbeiten. Erstellen Sie zunächst eine Verbindung zur Access-Datenbank, extrahieren Sie dann die erforderlichen Daten und führen Sie die Verarbeitung in Excel durch. Dazu verwenden wir ADO-Objekte (ActiveX Data Objects), eine Sammlung von Komponenten, die den Datenzugriff über OLE DB (Datenbankobjekte) ermöglichen.

Eine Fortsetzung des Artikels befindet sich in der Entwicklung.

Verwenden der Access-VBA-Bibliothek in Excel

Sie können die VBA-Funktionen von Access erfolgreich in Microsoft Excel anwenden, um mit Tabellen und Daten aus Access in Excel zu arbeiten. Dazu müssen Sie einen Verweis auf die VBA Access-Bibliothek erstellen und die verfügbaren Methoden und Eigenschaften verwenden.

Zuerst müssen Sie einen Verweis auf die VBA Access-Bibliothek in Excel hinzufügen. Öffnen Sie dazu den Visual Basic-Editor, wählen Sie im Menü "Tools" das entsprechende Projekt aus, und wählen Sie die Microsoft Access Object Library aus.

Nachdem Sie einen Verweis auf die Access-VBA-Bibliothek hinzugefügt haben, können Sie verschiedene Methoden und Eigenschaften verwenden, um mit Tabellen und Daten aus Access in Excel zu arbeiten. Sie können beispielsweise eine Access-Datenbankverbindung erstellen, eine Tabelle öffnen, Abfragen ausführen und die empfangenen Daten verarbeiten.

Hier sind einige Codebeispiele für die Arbeit mit Access-Tabellen:

Sub GetDataFromAccess()Dim conn As ObjectDim rs As ObjectDim strSQL As String' Создаем соединение с базой данных AccessSet conn = CreateObject("Access.Application")conn.OpenCurrentDatabase "Путь_к_базе_данных.accdb"' Открываем таблицуSet rs = conn.CurrentDb.OpenRecordset("Имя_таблицы")' Выполняем запрос SQLstrSQL = "SELECT * FROM Имя_таблицы WHERE Условие"Set rs = conn.CurrentDb.OpenRecordset(strSQL)' Обрабатываем полученные данныеDo While Not rs.EOF' Ваш код обработки данныхrs.MoveNextLoop' Закрываем соединение с базой данных Accessrs.CloseSet rs = Nothingconn.CloseCurrentDatabaseSet conn = NothingEnd Sub

Mit dem obigen Code können Sie auf die Access-Tabelle zugreifen, eine SQL-Abfrage ausführen und die resultierenden Daten in Excel verarbeiten. Sie können auch andere Methoden und Eigenschaften verwenden, die in der VBA Access-Bibliothek verfügbar sind, um verschiedene Datenvorgänge auszuführen.

Die Verwendung der Access-VBA-Bibliothek in Excel ermöglicht die effiziente Arbeit mit Tabellen und Daten aus Access in Excel, wodurch die Verarbeitung und Analyse der Daten vereinfacht wird.

Wie liest man Daten aus einer Access-VBA-Tabelle in Excel

Methode 1: Verwenden eines Recordset-Objekts: In VBA Access können Sie ein Recordset-Objekt zum Abfragen von Datenbanktabellen verwenden. Um Daten aus einer Access-Tabelle in Excel zu lesen, können Sie ein Recordset-Objekt erstellen und eine SELECT-Abfrage ausführen, um die Daten aus der gewünschten Tabelle abzurufen. Sie können dann eine Schleife verwenden, um jeden Datensatz im Recordset zu durchlaufen und die Daten in Excel-Zellen zu speichern.

Sub ReadDataFromAccessTable() Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim i As Integer 'Öffne die Datenbank Access Set db = openDatabase("С:\Путь\к\файлу .mdb") 'SELECT-Abfrage zum Abrufen von Daten aus einer Tabelle strSQL = "SELECT * FROM Tabellenname" 'Wir führen die Abfrage aus und speichern das Ergebnis im Recordset Set rs = db.OpenRecordset(strSQL) 'Wir durchlaufen jeden Datensatz im Recordset und speichern die Daten in Excel i = 1 Do Until rs.EOF Cells(i, 1).Value = rs.Fields("Feld1").Value Cells(i, 2).Value = rs.Fields("Feld2").Value 'Optional, es ist möglich, Daten in anderen Excel-Zellen zu speichern 'Cells(i, 3).Value = rs.Fields("Feld3").Value rs.MoveNext i = i + 1 Loop 'Schließen Sie das Recordset und die Access rs-Datenbank.Close db.Close 'Speicher freigeben Set rs = Nothing Set db = Nothing End Sub

Methode 2: Verwenden der SQL-Abfrage und der CopyFromRecordset-Eigenschaft: Excel verfügt außerdem über eine integrierte CopyFromRecordset-Funktion, mit der Daten aus einem Recordset in einen Bereich von Excel-Zellen kopiert werden können. Anstatt jeden Datensatz zu durchlaufen, können Sie eine SQL-Abfrage ausführen und die Ergebnisse in den gewünschten Bereich kopieren.

Sub ReadDataFromAccessTable() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Dim strSQL As String 'Wir verbinden uns mit der Access Set cnn = New ADODB-Datenbank.Connection cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Pfad\zu\Datei.accdb" 'SELECT-Abfrage zum Abrufen von Daten aus einer Tabelle strSQL = "SELECT * FROM Tabellenname" 'Wir führen die Abfrage aus und speichern das Ergebnis im Recordset Set rs = New ADODB.Recordset rs.Open strSQL, cnn 'Wir kopieren die Daten aus dem Recordset in den Excel-Bereich("A1").CopyFromRecordset rs 'Schließen Sie das Recordset und die Verbindung zur rs-Datenbank.Close cnn.Close 'Speicher freigeben Set rs = Nothing Set cnn = Nothing End Sub

Schlußfolgerung: In diesem Abschnitt haben wir zwei Möglichkeiten zum Lesen von Daten aus einer Access-VBA-Tabelle mit VBA in Excel untersucht. Beide Methoden haben ihre eigenen Vorteile und können in verschiedenen Szenarien verwendet werden. Sie können je nach Ihren Bedürfnissen und Vorlieben die am besten geeignete Methode wählen.

Wie schreibe ich Daten aus Excel in eine VBA-Access-Tabelle

Um Daten aus Excel in eine Access-VBA-Tabelle zu schreiben, müssen Sie die VBA-Programmiersprache (Visual Basic for Applications) verwenden, mit der Sie den Datenaustausch zwischen Microsoft Office-Anwendungen automatisieren können.

Das folgende Beispiel zeigt, wie Daten aus Excel in eine VBA-Access-Tabelle geschrieben werden:

ExcelVBA Access
Blatt1: A1Tabelle 1: Feld1
Blatt1: B1Tabelle 1: Feld2
Blatt1: C1Tabelle 1: Feld3

Erstellen Sie zunächst einen Verweis auf das Access-Datenbankobjekt in einem Excel-Projekt. Dafür:

  1. Öffnen Sie den VBA-Editor in Excel, indem Sie die Tastenkombination ALT + F11 drücken.
  2. Wählen Sie im Hauptmenü Extras und gehen Sie zu Links.
  3. Suchen Sie in der Liste der verfügbaren Links nach "Microsoft Access x.x Object Library" (wobei x.x die Version des Programms ist), und aktivieren Sie das Kontrollkästchen daneben.
  4. Klicken Sie auf OK, um das Verknüpfungsfenster zu schließen.

Als nächstes können Sie VBA-Code schreiben, der die Daten in die Access-VBA-Tabelle schreibt. Hier ist ein Beispielcode:

Sub ЗаписьДанныхВТаблицу()Dim db As DAO.DatabaseDim rs As DAO.Recordset' Создание объекта базы данных AccessSet db = New DAO.Databasedb.OpenDatabase "Путь_к_файлу_базы_данных.accdb"' Создание объекта записей таблицы в базе данных AccessSet rs = db.OpenRecordset("Таблица1")' Запись данных из Excel в таблицу VBA Accessrs.AddNewrs("Поле1").Value = Sheets("Лист1").Range("A1").Valuers("Поле2").Value = Sheets("Лист1").Range("B1").Valuers("Поле3").Value = Sheets("Лист1").Range("C1").Valuers.Update' Закрытие объектовrs.Closedb.Close' Освобождение ресурсовSet rs = NothingSet db = NothingEnd Sub

In diesem Beispiel wird ein Access-Datenbankobjekt (`db`) erstellt, das die Datenbank mit der `openDatabase`-Methode öffnet. Anschließend wird ein Tabelleneintragsobjekt in der Access-Datenbank (`rs`) erstellt, das die Tabelle mit der `OpenRecordset`-Methode öffnet.

Das Schreiben von Daten aus Excel in eine Access-VBA-Tabelle erfolgt mithilfe der Methode `AddNew`, die einen neuen Datensatz erstellt, und der Eigenschaften der Datensatzobjekte (`rs('Feld1').Value', 'rs("Feld2").Value', 'rs("Feld3").Value`), die die Werte der Tabellenfelder festlegen.

Nachdem Sie die Daten geschrieben haben, müssen Sie das Datensatzobjekt (`rs.Close') und das Datenbankobjekt ('db.Close') und auch Ressourcen freigeben, indem Objektverweise auf `Nothing` gesetzt werden.

Nachdem Sie den VBA-Code geschrieben haben, können Sie das Makro "Daten schreiben" ausführen, das die Daten aus Excel in die VBA-Access-Tabelle schreibt.

Auf diese Weise können Sie mit der Programmiersprache VBA den Prozess des Schreibens von Daten aus Excel in eine VBA Access-Tabelle automatisieren, was die Arbeit mit den Daten erheblich beschleunigt und vereinfacht.

Beispiel für das Arbeiten mit Access-VBA-Datensätzen in Excel

Einführung

VBA (Visual Basic for Applications) ist eine Programmiersprache, die in Microsoft Office–Anwendungen, einschließlich Excel und Access, verwendet wird. Es ermöglicht Ihnen, Aufgaben zu automatisieren, benutzerdefinierte Anwendungen zu erstellen und mit Daten in Tabellen und Datenbanken zu arbeiten.

Access ist ein leistungsfähiges Werkzeug für die Arbeit mit Datenbanken. Es ermöglicht Ihnen, Tabellen, Formulare, Berichte und vieles mehr zu erstellen, um Ihre Daten zu verwalten. Im Gegenzug dient Excel als hervorragendes Werkzeug zum Analysieren von Daten und zum Erstellen von Berichten auf der Grundlage dieser Daten.

In diesem Beispiel wird erläutert, wie Sie mit VBA Daten aus einer Access-Tabelle abrufen und nach Excel exportieren können.

Schritt

Schritt 1: Herstellen einer Verbindung mit der Access-Datenbank

Bevor Sie mit den Daten arbeiten können, müssen Sie eine Verbindung mit der Access-Datenbank herstellen. Dazu wird ein Connection-Objekt verwendet:

Dim con As Object Set con = CreateObject("ADODB.Connection") con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Pfad\zu\Datenbank\.accdb"

Schritt 2: Abfragen von Daten aus der Access-Tabelle

Nachdem die Verbindung hergestellt wurde, können Sie eine SQL-Abfrage ausführen, um Daten aus der Access-Tabelle abzurufen. Dazu wird ein Recordset-Objekt verwendet:

Dim rs As Object Set rs = CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM Tabellenname", con

Schritt 3: Exportieren von Daten nach Excel

Sie können die resultierenden Daten zur weiteren Arbeit in Excel exportieren. Dazu wird eine neue Excel-Datei erstellt und die Werte aus dem Recordset in die Zellen geschrieben:

Dim xlApp As Object Dim xlBook As Object Dim xlSheet As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1) ' Schreiben von Headern For i = 1 To rs.Fields.Count xlSheet.Cells(1, i).Value = rs.Fields(i - 1).Name Next i ' Datensatz row = 2 Do While Not rs.EOF For i = 1 To rs.Fields.Count xlSheet.Cells(row, i).Value = rs.Fields(i - 1).Value Next i rs.MoveNext row = row + 1 Loop xlBook.SaveAs "С:\Путь\к\файлу .xlsx" xlApp.Quit

Nach Abschluss aller Schritte werden die Daten aus der Access-Tabelle unter dem angegebenen Pfad in eine Excel-Datei exportiert.

Schlußfolgerung

Das folgende Beispiel zeigt, wie Sie mit VBA Daten aus einer Access-Tabelle abrufen und nach Excel exportieren können. Dies ist nur eine von vielen Möglichkeiten, mit Access-VBA-Datensätzen in Excel zu arbeiten, und Entwickler können den Code an bestimmte Anforderungen und Aufgaben anpassen.