Zweifellos ist die Erstellung einer Datenbank in Access mit mehreren Objekten wie Berichten, Formularen und Tabellen recht einfach. Aber wenn es darum geht, einige Programme für die gleichzeitige Ausführung von Datenbankobjekten hinzuzufügen oder bestimmte Prozesse zu automatisieren. Dann kann dies eine entmutigende Aufgabe sein. ist es nicht
Hauptsächlich für diejenigen, die nicht viel Programmierkenntnisse haben. Wenn Sie auch unter ihnen sind, wird Ihnen dieser Beitrag mit Sicherheit viele weitere Informationen zur Ausführung von VBA-Code in Access liefern
MS Access VBA-Code anhand eines Beispiels verstehen:
In MS Access können wir durch Programmierung unserer Datenbank Funktionen hinzufügen. Im Grunde geschieht dies auf zwei Arten:
- mithilfe von Access-Makros
- oder VBA-Code (Visual Basic für Applikationen)
Angenommen, Sie haben in Ihrer Access-Datenbank einen Bericht oder ein Formular erstellt. Jetzt möchten Sie diesem Formular eine Befehlsschaltfläche hinzufügen. Wenn Sie darauf klicken, wird der Bericht automatisch geöffnet.
In diesem Fall wird mit der Programmierung ein Makro oder eine VBA-Prozedur zum Festlegen der OnClick-Ereigniseigenschaft für die Befehlsschaltfläche erstellt. Wenn Sie auf die Befehlsschaltfläche klicken, werden Makro und Prozedur automatisch im Hintergrund ausgeführt. Wenn Sie also auf die Befehlsschaltfläche des Formulars klicken, wird der Bericht geöffnet.
Alles in allem können Sie mit VBA-Code in Access der Access-Datenbankanwendung Automatisierung und verschiedene Funktionen hinzufügen.
Was ist der VBA-Editor?
- Für die Programmierung in Access verwenden wir den VBA-Editor. Um den VBA-Editor zu starten, müssen Sie zunächst die Option create aufrufen.
- Tippen Sie anschließend auf die Modulschaltfläche in Ihrem Datenbankfenster.
- Dadurch wird der VBA-Editor geöffnet.
Wie Sie in der Abbildung sehen können, enthält dieser VBA-Editor mehrere Teile. Lassen Sie uns nun jeden Abschnitt im Detail besprechen:
- Die obere linke Ecke heißt Projektfenster. Diese enthält eine Auflistung aller in der Datenbank definierten Elemente und Module.
- Unterhalb des Projektfensters befindet sich ein Eigenschaftenfenster. Hier können Sie verschiedene Attribute für die Objekte festlegen, die Sie im Projektfenster verwendet haben.
- Am unteren Bildschirmrand befindet sich ein sofortiges Fenster. Hier können Sie Ihre Verfahrensteile während der Entwicklung testen. Anders als es kann auch verwendet werden, um das unmittelbare Ergebnis verschiedener Befehle zu erhalten. Das sofortige Fenster ist sehr nützlich beim Testen und Debuggen.
Vorteile der Verwendung von VBA-Code in Access:
Hier sind einige grundlegende Gründe, warum Sie MS Access VBA Code verwenden müssen. diese sind als folgt.
- Kleinere wiederverwendbare Verfahren verwalten (global)
- Erstellen Sie Ihre eigenen definierten Funktionen
- im Speicher halten Variablen (global)
- Fügen Sie einem Ereignis, d. H. Einer Schaltfläche in einem Formular, Code hinzu
- Verwalten Sie leistungsstärkere Verfahren, die einem Access-Makro fehlen
- Beenden Sie problemlos andere Anwendungen und Plattformen
- Behandeln Sie Access-Laufzeitfehler intelligent
Zum Erlernen von Access VBA Code müssen Sie kein Programmierer sein. Der wichtige Faktor für eine erfolgreiche Programmierung mit Access VBA ist, wie gut Sie die Struktur von MS Access kennen, die häufig als Tabellen, Abfragen, Formulare, Berichte und Makros bezeichnet wird. Es ist eine sehr leistungsstarke Access-Funktion, mit der ermittelt werden kann, wo VBA überwunden und die Funktionalität verbessert werden muss.
Wie So führen Sie VBA-Code in MS Access aus
VBA-Code zum Ausführen einer Abfrage Im MS Access
Suchen Sie nach dem VBA-Code zum Ausführen einer Abfrage in MS Access? Wenn dies der Fall ist, überprüfen Sie die vollständigen Schritte, um diese Aufgabe auszuführen.
Sie können die VBA-Syntax verwenden, um Abfragen in MS Access auszuführen.
DoCmd.OpenQuery “Abfragename”
Denken Sie daran, dass der “Abfragename” nicht in den Klammern “[]” stehen darf.
Schritte zum Erstellen eines VBA zum Ausführen einer Abfrage in MS Access
Angenommen, Sie haben eine Access-Datenbank, die eine Abfrage mit dem Namen “max_sales” enthält.
Im Folgenden finden Sie den vollständigen Schritt, den Sie ausführen müssen, um eine VBA zum Ausführen der Abfrage “max_sales” zu erstellen:
Schritt 1: Fügen Sie ein Access formular hinzu
Öffnen Sie zunächst Ihre MS Access-Anwendung, und fügen Sie anschließend ein Access-Formular hinzu.
Um ein Formular hinzuzufügen, müssen Sie auf die Registerkarte Erstellen gehen und anschließend auf das Formularsymbol tippen, das über der MS Access-Multifunktionsleiste angezeigt wird:
Schritt 2: Platzieren Sie einen Knopf
Im nächsten Schritt müssen Sie eine Schaltfläche in das Formular einfügen. Klicken Sie für diese Aufgabe auf das Schaltflächensymbol auf der Multifunktionsleiste. Danach positionieren Sie diese Schaltfläche auf Ihrem Formular.
Sie werden feststellen, dass nach dem Platzieren der Schaltfläche im Zugriffsformular der Befehlsschaltflächen-Assistent auf Ihrem Bildschirm angezeigt wird. Wenn Sie diesen Befehlsschaltflächen-Assistenten nicht benötigen, können Sie die Abbrechen-Taste drücken.
Schritt 3: Öffnen Sie den VBA-Bildschirm
Um den VBA-Code für die Schaltfläche aufzuschreiben, müssen Sie den VBA-Editor-Bildschirm öffnen. Tippen Sie mit der rechten Maustaste auf die Schaltfläche und wählen Sie dann die Option “Ereignis erstellen”.
Wählen Sie anschließend die Option Code Builder und tippen Sie auf die Option OK:
Schritt 4: Schreiben Sie den VBA, um die Abfrage auszuführen
Es ist Zeit, den VBA-Code zu schreiben, um die Abfrage auszuführen.
Überprüfen Sie den vollständigen VBA-Code, wie im folgenden Beispiel gezeigt (wobei “max_sales” der Name der Abfrage ist):
Private Sub Command0_Click()
DoCmd.OpenQuery “max_sales”
End Sub
So wird VBA in Access angezeigt:
Schritt 5: Zeigen Sie die Ergebnisse an
Nachdem Sie diesen VBA-Code abgeschrieben haben, sparen Sie Ihre Arbeit. Kehren Sie nun zu Ihrem Access-Formular zurück und wechseln Sie in die Formularansicht.
Um einfach zur Formularansicht zu wechseln, klicken Sie auf das Ansichtssymbol auf der Registerkarte “Entwurf”. Wählen Sie nun aus der Dropdown-Liste die Formularansicht aus.
Zum Schluss tippen Sie auf die Schaltfläche, um die Abfrage “max_sales” auszuführen. Jetzt können Sie eine Abfrage mit VBA-Code ausführen, indem Sie einfach auf die Schaltfläche tippen.
VBA-Code zum Ausführen eines Berichts in Access
Die DoCmd.OpenReport-Methode wird zum Öffnen des Berichts verwendet. Mit dieser DoCmd.OpenReport-Methode können Sie einen Bericht in der Entwurfsansicht, Bericht drucken, Bericht anzeigen, Seitenansicht und Layoutansicht öffnen.
Hier ist die Syntax, die Sie verwenden müssen:
DoCmd.OpenReport (Berichtsname, Ansicht, Filter, WhereCondition, DataMode, WindowMode, OpenArgs)
Beschreibung der obigen Syntax:
– ReportName:
Es gibt den Berichtsnamen in der aktuellen Datenbank an. Es muss ein Argument angegeben werden und es sollte in doppelte Anführungszeichen gesetzt werden.
– Aussicht:
Einige gängige Arten von Berichtsansichten wie acViewNormal, acViewPreview, acViewLayout, acViewDesign usw.
Sie können einen dieser Typen auswählen, um Ihren Bericht anzugeben, wenn er geöffnet wird.
haben einen Blick:
5 wichtige Schritte zur Gewährleistung der Sicherheit der Access-Datenbank
– Filter:
Dies ist ein Abfragename, der in der aktuellen Datenbank vorhanden ist. Setzen Sie es also in doppelte Anführungszeichen.
– WoZustand:
An dieser Stelle wird die SQL-Klausel ohne das Wort WHERE verwendet. Sie müssen es also in Anführungszeichen setzen.
– DataMode:
In diesem Argument müssen Sie den Dateneingabemodus für Ihren Bericht angeben. Nun, der Modus kann entweder der Bearbeitungsmodus oder nur der Lesemodus sein.
– Fenstermodus:
Wenn ein Bericht geöffnet wird, geben Sie den Fenstermodus an.
Außerdem können Sie den Bericht in folgendem Modus öffnen: acDialog, acHidden, acIcon oder acWindowNormal.
+ acDialog: Der offene Bericht ist repariert und kann nicht verschoben werden.
+ acHidden: In diesem Modus ist der geöffnete Bericht ausgeblendet.
+ acIcon: Der geöffnete Bericht wird als Symbol angezeigt.
+ acWindowNormal: In diesem Modus wird der geöffnete Bericht als Ansichtsbericht angezeigt.
– OpenArgs:
Mit diesem Argument müssen Sie den Datensatz angeben, wenn der Bericht geöffnet wird.
Und Sie müssen es in Anführungszeichen setzen.
Anmerkung:
Alle oben in der DoCmd.OpenReport-Syntax genannten Argumente sind ohne das ReportName-Argument optional.
Angenommen, Sie haben ein Formular wie das folgende:
Wenn Sie ein Formular zum ersten Mal öffnen, lautet der aktuelle Datensatz Cate001. Tippen Sie zum Drucken dieser Kategorie auf die Schaltfläche Bericht drucken. Daraufhin wird der Bericht Cate001 zusammen mit den darin enthaltenen Produkten angezeigt.
Um den Cate002-Datensatz auszudrucken, müssen Sie zunächst zu diesem Datensatz wechseln. Tippen Sie anschließend auf die Schaltfläche Bericht drucken.
Wenn Sie jedoch Cate003, Cate004, Cate005 usw. drucken müssen. Dann müssen Sie einen Hauptdetailbericht erstellen, wie in Abbildung gezeigt:
Danach müssen Sie den VBA-Code in der CmdPrint_Click-Ereignisprozedur wie folgt anwenden:
Private Sub CmdPrint_Click()
DoCmd.OpenReport “RptProductByCategory” _
, acViewReport, , “CategoryID='” & txtCategoryID & “‘”
End Subzu nennen Berichten von VBA, Versuchen Sie den folgenden VBA-Code:
Sub runReport()
Dim con As ADODB.Connection
Set con = New ADODB.Connection
con.Open “Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=C:\mydb.mdb;”
DoCmd.OpenReport “rptCustomer”, acViewPreview
End Sub
MS Access VBA-Code zum Öffnen einer anderen Datenbank
Wissen Sie, dass Sie eine andere Datenbank aus der aktuellen Datenbank heraus starten können? Dies kann auf drei verschiedene Arten geschehen. Also einfach mal reinschauen …!
- FollowHyperlink-Methode
- Schale
- Zugriffsautomatisierung
Methode 1: FollowHyperlink-Methode
FollowHyperlink ist eine native Methode der Access-Datenbank und der Benutzer kann jeden Dateityp mit dem zugehörigen Standardprogramm öffnen.
Da es sich um einen nativen Befehl von MS Access handelt, dürfen Sie ihn nicht für andere Programme wie Word, Excel, PowerPoint usw. verwenden.
Public Function OpenDb3(sDb As String)
On Error GoTo Error_Handler
Application.FollowHyperlink sDb Error_Handler_Exit:
On Error Resume Next
Exit Function Error_Handler:
MsgBox “The following error has occurred” & vbCrLf & vbCrLf & _
“Error Number: ” & Err.Number & vbCrLf & _
“Error Source: OpenDb3” & vbCrLf & _
“Error Description: ” & Err.Description & _
Switch(Erl = 0, “”, Erl <> 0, vbCrLf & “Line No: ” & Erl) _
, vbOKOnly + vbCritical, “An Error has Occurred!”
Resume Error_Handler_Exit
End Function
Methode 2: Shell
Shell ist ein universeller Befehl, mit dem viele Aufgaben ausgeführt werden können. Neben einer langen Liste von Funktionen wird es auch zum Starten von Programmen und zum Öffnen von Dateien verwendet. Sie müssen die EXE-Datei danach zuweisen, was die Befehlszeilenschalter jeweils an der einzelnen EXE-Datei erkennen.
Da MS Office gut registriert ist, ist es ein Teil der Pfadvariablen. Sie müssen also nicht den Pfad für die Datei “msaccess.exe” angeben, sondern nur die Datei oder den Pfad, die bzw. der geöffnet werden soll.
Wenn Sie mehrere MS Office-Versionen auf Ihrem PC installiert haben und eine bestimmte Version verwenden müssen. In diesem Fall müssen Sie den Pfad / die Datei der ausführbaren Access-Datenbank angeben.
Public Function OpenDb2(sDb As String)
On Error GoTo Error_Handler
Shell “cmd /c ” & Chr(34) & sDb & Chr(34), vbHide Error_Handler_Exit:
On Error Resume Next
Exit Function Error_Handler:
MsgBox “The following error has occurred” & vbCrLf & vbCrLf & _
“Error Number: ” & Err.Number & vbCrLf & _
“Error Source: OpenDb2” & vbCrLf & _
“Error Description: ” & Err.Description & _
Switch(Erl = 0, “”, Erl <> 0, vbCrLf & “Line No: ” & Erl) _
, vbOKOnly + vbCritical, “An Error has Occurred!”
Resume Error_Handler_Exit
End Function
Methode 3: Access Automatisierung
Access Automation ist die hervorragende Option, um jede gewünschte Aktion auszuführen und natürlich auch die Datenbank zu öffnen.
Public Function OpenDb(sDb As String)
On Error GoTo Error_Handler
‘Frühes Bindung
‘Verwenden Sie die folgende Zeile, wenn Sie in Access verwendet werden oder die Access-Referenz verwenden
‘ stellt zur Verfügung Intellisense!
Dim oAccess As Access.Application
Späte bindung
“Verwenden Sie die folgende Zeile, wenn Sie außerhalb von Access ohne Access-Referenz verwendet werden.”
Dim oAccess As Object
Set oAccess = CreateObject(“Access.Application”) ‘Create a new Access instance
With oAccess
.OpenCurrentDatabase sDb ‘Open the specified db
.Visible = True ‘Ensure it is visible to the end-user
.UserControl = True‘
.DoCmd.OpenForm “YourFormName” ‘Open a form?’
.DoCmd.RunMacro “YourMacroName” ‘Run a Macro?
End With
Error_Handler_Exit:
On Error Resume Next
If Not oAccess Is Nothing Then Set oAccess = Nothing
Exit Function
Error_Handler:
MsgBox “The following error has occurred” & vbCrLf & vbCrLf & _
“Error Number: ” & Err.Number & vbCrLf & _
“Error Source: OpenDb” & vbCrLf & _
“Error Description: ” & Err.Description & _
Switch(Erl = 0, “”, Erl <> 0, vbCrLf & “Line No: ” & Erl) _
, vbOKOnly + vbCritical, “An Error has Occurred!”
Resume Error_Handler_Exit
End Function
Automatisieren Sie den Access aus anderen MS Office-Anwendungen mithilfe von VBA
VBA Access objekt bibliothek
Um den Zugriff von anderen MS-Office-Anwendungen mit VBA zu automatisieren. Oder wenn Sie Objekte anderer Anwendungen wie Microsoft Excel oder Word in Access verwenden müssen. Fügen Sie Objektbibliotheksverweise hinzu, um solche Aufgaben zu ermöglichen. Grundsätzlich gibt es zwei Möglichkeiten, diese Aufgabe auszuführen:
- Frühe Bindung
- Späte bindung
Die erste Methode wird verwendet, um unmittelbar vor der Ausführung einen Verweis auf die Microsoft Access-Objektbibliothek hinzuzufügen. Es wird schneller ausgeführt und Sie erhalten einfachen Zugriff auf den VBA-Editor Intellisense.
Abgesehen davon kann es zu Kompatibilitätsproblemen kommen, wenn ein PC-Programm mit einer anderen Version der installierten Bibliothek ausgeführt wird.
Methode 1: Frühes Binden
Bei dieser speziellen Methode müssen Sie einen Verweis auf Microsoft Access Object hinzufügen.
- Öffnen Sie das VBA-Editorfenster und tippen Sie auf die Schaltfläche „Extras“ in der Menüleiste.
- Wählen Sie nun aus der Dropdown-Liste die Option “Referenzen”.
- Anschließend erscheint das Dialogfeld „Referenzen – Projekt 1“.
- In diesem Dialogfeld können Sie die Bildlaufleiste ziehen, bis Sie die gewünschte Microsoft Access 14.0-Objektbibliothek abrufen.
- Setzen Sie nun ein Häkchen in das Kontrollkästchen vor diesem Objekt.
- Tippen Sie zuletzt auf die Option „OK“.
- Nach diesem Schritt haben Sie den Verweis auf die Access-Objektbibliothek erfolgreich hinzugefügt.
Nun, Sie können die obigen Schritte verwenden, um Objektbibliotheken gemäß Ihren Anforderungen hinzuzufügen.
Hinweis:
Verwenden Sie den folgenden Code, um ein Access.Application-Objekt zu definieren und zu initiieren:
Dim objAccess As Access.Application
set objAccess = new Access.Application
Methode 2: Späte Bindung
Für diese Methode muss kein Verweis auf die Objektbibliothek hinzugefügt werden. Das Access.Application-Objekt wird als normales Objekt deklariert und wie folgt initiiert:
Dim objAccess As Object
Set objAccess = CreateObject(“Access.Application”)
So verbinden Sie Access und Excel über VBA:
In diesem Abschnitt wird erläutert, wie Sie die Access-Datenbank mithilfe des VBA-Codes mit Excel verbinden.
So können Sie eine Verbindung mit der Access-Datenbank herstellen. Die für Access 2003 (*. Mdb) und Access 2007/2010 (* .accdb) verwendete Verbindungszeichenfolge ist unterschiedlich, da beide Datenbankversionen unterschiedliche Treiber aufweisen.
Für Access 2003-Datenbanken lautet der Anbieter: Provider = Microsoft.Jet.OLEDB.4.0.
Für Access 2007/2010 lautet der Anbieter Provider = Microsoft.ACE.OLEDB.12.0
Bevor Sie den folgenden Code ausführen, müssen Sie Verweise für ADO DB Connection hinzufügen.
Führen Sie die folgenden Schritte aus, um eine Referenz hinzuzufügen:
Wie man Referenzen in Excel hinzufügt
- Öffnen Sie den VB-Editor-Bildschirm, indem Sie Alt + F11 drücken
- Tools -> Referenzen…
- Suchen Sie in der dortigen Liste der verfügbaren Referenzen nach “Microsoft ActiveX Data Objects 2.0 Library”. Wählen Sie entweder die Version 2.0 oder eine andere Referenz einer höheren Version.
- Tippen Sie auf die Option OK.
Sie können auch mögen
3 Schnell Möglichkeiten zum Erstellen von Makros in MS Access 2010/2013/2016/2019 Datenbank
Verbindung mit der Access 2003-Datenbank
Sub ADO_Conn()
Dim conn As New Connection
Dim rs As New Recordset
strcon = “Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=E:\Student.accdb;” & _
“User Id=admin;Password=”
conn.Open (strcon)
qry = “SELECT * FROM students”
rs.Open qry, conn, adOpenKeyset
rs.Close
conn.Close
End Sub
Verbindung mit der Access 2010/2007-Datenbank
Sub ADO_Conn()
Dim conn As New Connection
Dim rs As New Recordset
strcon = “Provider=Microsoft.ACE.OLEDB.12.0;” & _
“Data Source=E:\Student.accdb;” & _
“User Id=admin;Password=” conn.Open (strcon)
qry = “SELECT * FROM students”
rs.Open qry, conn, adOpenKeyset
rs.Close
conn.Close
End Sub
Einpacken:
Wenn Sie das Konzept von verstehen wie man Lauf VBA-Code in Access unter Verschiedene Umstände machen dann einen guten Anfang, indem sie diese Techniken verwenden. Hab keine Angst vor Experimenten …!
Diese Software gewährleistet die nahtlose Reparatur und Wiederherstellung der ACCDB- und MDB-Datenbank und stellt alle Objekte einschließlich Tabellen, Berichte, Abfragen, Datensätze, Formulare und Indizes sowie Module, Makros usw. wieder her. Beheben Sie Microsoft Access-Probleme jetzt in 3 einfachen Schritten:
- Herunterladen Sie Stellar Repair for Access mit der Bewertung Toll auf Cnet herunter.
- Klicken Sie auf die Option Browse und Search, um eine beschädigte Access-Datenbank zu finden.
- Klicken Sie auf die Schaltfläche Repair, um die Datenbankobjekte zu reparieren und in der Vorschau anzuzeigen.