Home » Best Choice access vba tools New Update

Best Choice access vba tools New Update

by Tratamien Torosace

You are viewing this post: Best Choice access vba tools New Update

Siehe Thema access vba tools


Microsoft Access Developer and VBA Programming … – FMS, Inc Update

Microsoft Access Developer and VBA Programming Help Center Resources for Becoming a Better Microsoft Access Developer and Programmer. Here are some of our resources to help you better understand and use Microsoft Access during …

+ mehr hier sehen

Read more

Automatisierte Datenbankanalyse für Best Practices

Sehen Sie sich für eine automatisierte Analyse Ihrer Datenbanken unser Total Access Analyzer-Programm an, das darauf ausgelegt ist, jedes Objekt in Ihrer Datenbank im Detail zu untersuchen, Dokumentation bereitzustellen, die Ihnen hilft zu verstehen, was darin enthalten ist, wie die Objekte interagieren, und Vorschläge für die Anwendung von Microsoft Access Best macht Praktiken Methoden Ausübungen

Es findet Hunderte von Arten von Fehlern, Vorschlägen und Leistungstipps, die für Ihre Datenbankobjekte spezifisch sind.

Tutorial VBA Ms Access #02 – Kode Simpan – Belajar Jadi Master VBA New

Video ansehen

Weitere Informationen zum Thema access vba tools

Tutorial Microsoft Access kali ini, saya berbagi tentang VBA Module yang ada pada VBA ms Access, dimana dengna adanya VBA Module, diharapkan kita bisa membuat Re-Usable Code, yang nantinya membuat coding kita semakin efisien. Pada kasus ini saya membahas tentang Membuat kode simpan data ke database ms access.
Salam Sehat Sentosa !!
Playlist VBA Module
https://youtube.com/playlist?list=PLxgkNTHJURQeBtjA_2FADkxRCp_dVIyJs

Tutorial micsosoft Access, Access Tutorial, Belajar VBA Ms Access, membuat koding simpan data,

access vba tools Einige Bilder im Thema

 New Update Tutorial VBA Ms Access #02 - Kode Simpan - Belajar Jadi Master VBA
Tutorial VBA Ms Access #02 – Kode Simpan – Belajar Jadi Master VBA New

Code VBA coding tools Update New

Code VBA tools help write better VBA programs faster using vba code generator. Home Download Order Contact Help Access Excel Word Powerpoint Outlook. Code VBA – knowledge and productivity add-ins . Code VBA lets professional software developers and MS Office users write VBA code faster and spend less time looking for solutions on-line: Context sensitive …

+ ausführliche Artikel hier sehen

Read more

Code VBA – Wissens- und Produktivitäts-Add-Ins

Mit Code VBA können professionelle Softwareentwickler und MS Office-Benutzer VBA-Code schneller schreiben und weniger Zeit damit verbringen, online nach Lösungen zu suchen:

Die folgenden Folien geben Ihnen eine Vorstellung davon, welche Tools enthalten sind

Hilfe zu VBA-Code-Tools

Code-VBA-Demo-Screencast

Laden Sie hier die kostenlose Testversion herunter

Mit kontextsensitivem IntelliSense können Sie Code aus dem Menü auswählen

QuickInfos zeigen den einzufügenden Code und Informationen darüber, was das Codefragment oder die Prozedur bewirkt, sowie Hyperlinks zur Microsoft-Onlinehilfeseite – F1

Der Code-Explorer ist ein Ersatz für den Projekt-Explorer, mit dem Sie zu Prozeduren navigieren können und der viele neue Funktionen hinzufügt

Für die Benutzerinteraktion werden viele integrierte und benutzerdefinierte Dialoge mit unterstützendem Code zur Verfügung gestellt

Mit dem Procedure Builder können Sie die Grundfunktionen einer neuen Funktion oder eines Subs angeben, einschließlich Kommentarblock und Fehlerbehandlung

Verwenden Sie Excel VBA, um Codeblöcke zu Excel-Klassen und deren Dokumentation einzufügen

Verwenden Sie Access VBA, um mit Access-Objekten, SQL, Datensätzen zu arbeiten und auf deren Dokumentation zuzugreifen

Einfaches Einfügen von Steueranweisungen: If.

Then.

Else, Select, While, For und GoTo

Wenn Sie den Mauszeiger über Switch bewegen, wird ein Tooltip mit dem einzufügenden Code sowie einer Beschreibung und einem Link zur Dokumentation für diese Anweisung angezeigt

Um Ihre eigenen Dialoge in Excel oder Word zu erstellen, verwenden Sie den Userform Builder, der auch bei der Validierung der Eingabe hilft

Sie können neue Codefragmente über das Menü verfügbar machen, indem Sie entweder den Fragment-Editor verwenden (‘Neues Fragment’ im Menü) oder indem Sie Ihre eigenen Codemodule im entsprechenden Unterordner unter \Eigene Dateien\VBA-Code\ hinzufügen

Code VBA herunterladen

Code VBA funktioniert mit Works with MS Access, Excel, Word, Outlook, PowerPoint, Publisher, MS Project, Visio und AutoCad

Office 2010 – 2019 & 365, sowohl 32- als auch 64-Bit-Versionen; Windows 7 und Windows 10.

Tutorial VBA Ms Access #03 – Kode Hapus dan Konfirmasi – Belajar Jadi Master VBA New Update

Video unten ansehen

Weitere Informationen zum Thema access vba tools

Tutorial Microsoft Access kali ini, saya berbagi tentang VBA Module yang ada pada VBA ms Access, dimana dengna adanya VBA Module, diharapkan kita bisa membuat Re-Usable Code, yang nantinya membuat coding kita semakin efisien. Pada kasus ini saya membahas tentang Membuat kode Hapus data ke database ditambah Konfirmasi Sebelum Hapus ms access.
Salam Sehat Sentosa !!
Playlist VBA Module
https://youtube.com/playlist?list=PLxgkNTHJURQeBtjA_2FADkxRCp_dVIyJs

Tutorial micsosoft Access, Access Tutorial, Belajar VBA Ms Access, membuat koding hapus data, membuat koding hapus + Konfirmasi,

access vba tools Ähnliche Bilder im Thema

 New Tutorial VBA Ms Access #03 - Kode Hapus dan Konfirmasi - Belajar Jadi Master VBA
Tutorial VBA Ms Access #03 – Kode Hapus dan Konfirmasi – Belajar Jadi Master VBA Update

Programmatic access to Office VBA project is denied Update New

For any Automation client to be able to access the VBA object model programmatically, the user running the code must explicitly grant access. To turn on access, the user must follow these steps. Office 2003 and Office XP. Open the Office 2003 or Office XP application in question. On the Tools menu, click Macro, and then click Security to open …

+ hier mehr lesen

Read more

Symptome

Code, der geschrieben wurde, um eine Office-Anwendung zu automatisieren und die Microsoft Visual Basic for Applications (VBA)-Umgebung und das Objektmodell programmgesteuert zu manipulieren, kann in Office mit einer der folgenden Fehlermeldungen fehlschlagen:

Von Visual Basic oder VBA:

Laufzeitfehler „6068“: Der programmgesteuerte Zugriff auf das Visual Basic-Projekt ist nicht vertrauenswürdig

Von Microsoft Visual C++, Microsoft Foundation Classes (MFC) oder ActiveX Template Library (ATL):

HRESULT = 0x800A17B4 (-2146822220) „Der programmgesteuerte Zugriff auf das Visual Basic-Projekt ist nicht vertrauenswürdig“

Derselbe Code funktioniert fehlerfrei auf Computern mit Office 97 und Office 2000.

Tutorial VBA Ms Access #01 – Form Validation – Belajar Jadi Master VBA Update

Video ansehen

Neue Informationen zum Thema access vba tools

Tutorial Microsoft Access kali ini, saya berbagi tentang VBA Module yang ada pada VBA ms Access, dimana dengna adanya VBA Module, diharapkan kita bisa membuat Re-Usable Code, yang nantinya membuat coding kita semakin efisien. Pada kasus ini saya membahas tentang Validasi Form yang mungkin diperlukan untuk Keperluan Project Kalian Kedepannya.
Salam Sehat Sentosa !!
Playlist VBA Module
https://youtube.com/playlist?list=PLxgkNTHJURQeBtjA_2FADkxRCp_dVIyJs

Tutorial micsosoft Access, Access Tutorial, Belajar VBA Ms Access, membuat Form Validasi,

access vba tools Einige Bilder im Thema

 Update Tutorial VBA Ms Access #01 - Form Validation - Belajar Jadi Master VBA
Tutorial VBA Ms Access #01 – Form Validation – Belajar Jadi Master VBA New Update

Introduction to Access programming – support.microsoft.com Neueste

In Access, programming is the process of adding functionality to your database by using Access macros or Visual Basic for Applications (VBA) code. For example, suppose that you have created a form and a report, and you want to add a command button to the form that, when clicked, opens the report. Programming, in this case, is the process of creating a macro or VBA procedure and …

+ Details hier sehen

Read more

Wenn Sie eine neue Datenbank erstellen, beginnen Sie normalerweise damit, mehrere Datenbankobjekte wie Tabellen, Formulare und Berichte zu erstellen

Irgendwann erreichen Sie einen Punkt, an dem Sie etwas programmieren müssen, um bestimmte Prozesse zu automatisieren und Ihre Datenbankobjekte miteinander zu verknüpfen

Dieser Artikel hilft Ihnen, sich mit den Programmiertools in Access vertraut zu machen

Was ist Programmierung? In Access ist Programmieren das Hinzufügen von Funktionalität zu Ihrer Datenbank mithilfe von Access-Makros oder VBA-Code (Visual Basic for Applications)

Angenommen, Sie haben ein Formular und einen Bericht erstellt und möchten dem Formular eine Befehlsschaltfläche hinzufügen, die beim Klicken den Bericht öffnet

Programmieren ist in diesem Fall das Erstellen eines Makros oder einer VBA-Prozedur und das anschließende Festlegen der OnClick-Ereigniseigenschaft der Befehlsschaltfläche, sodass das Klicken auf die Befehlsschaltfläche das Makro oder die Prozedur ausführt

Für eine einfache Operation, wie das Öffnen eines Berichts, können Sie den Befehlsschaltflächen-Assistenten verwenden, um die gesamte Arbeit zu erledigen, oder Sie können den Assistenten deaktivieren und die Programmierung selbst vornehmen

Hinweis: Viele Microsoft Office-Programme verwenden den Begriff „Makro“, um sich auf VBA-Code zu beziehen

Dies kann für Access-Benutzer verwirrend sein, da sich der Begriff „Makro“ in Access auf eine benannte Sammlung von Makroaktionen bezieht, die Sie mithilfe des Makrogenerators zusammenstellen können

Zugriffsmakroaktionen stellen nur eine Teilmenge der in VBA verfügbaren Befehle dar

Der Makro-Generator bietet Ihnen eine strukturiertere Benutzeroberfläche als der Visual Basic-Editor, sodass Sie Steuerelementen und Objekten Programmierung hinzufügen können, ohne VBA-Code lernen zu müssen

Denken Sie daran, dass Access-Makros in Access-Hilfeartikeln als Makros bezeichnet werden

Umgekehrt wird VBA-Code als VBA, Code, Funktion oder Prozedur bezeichnet

VBA-Code ist in Klassenmodulen enthalten (die Teil einzelner Formulare oder Berichte sind und normalerweise Code nur für diese Objekte enthalten) und in Modulen (die nicht an bestimmte Objekte gebunden sind und normalerweise “globalen” Code enthalten, der in der gesamten Datenbank verwendet werden kann )

Objekte (z

B

Formulare und Berichte) und Steuerelemente (z

B

Befehlsschaltflächen und Textfelder) verfügen über verschiedene Ereigniseigenschaften, denen Sie Makros oder Prozeduren zuordnen können

Jede Ereigniseigenschaft ist einem bestimmten Ereignis zugeordnet, z

B

dem Klicken mit der Maus, dem Öffnen eines Formulars oder dem Ändern von Daten in einem Textfeld

Ereignisse können auch durch Faktoren außerhalb von Access ausgelöst werden, z

B

Systemereignisse, oder durch Makros oder Prozeduren, die anderen Ereignissen zugeordnet sind

Ihre Datenbank kann komplex werden, wenn Sie mehreren Ereigniseigenschaften vieler Objekte viele Makros oder Prozeduren hinzufügen, aber in den meisten Fällen können Sie die gewünschten Ergebnisse mit sehr wenig Programmieraufwand erzielen

Seitenanfang

Soll ich Makros verwenden oder sollte ich VBA-Code verwenden? Die Entscheidung, Makros, VBA oder beides zu verwenden, hängt hauptsächlich davon ab, wie Sie die Datenbank bereitstellen oder verteilen möchten

Wenn die Datenbank beispielsweise auf Ihrem Computer gespeichert ist und Sie der einzige Benutzer sind und Sie mit der Verwendung von VBA-Code vertraut sind, können Sie sich entscheiden, VBA für die meisten Ihrer Programmieraufgaben zu verwenden

Wenn Sie jedoch beabsichtigen, Ihre Datenbank für andere Personen freizugeben, indem Sie sie auf einem Dateiserver speichern, sollten Sie die Verwendung von VBA aus Sicherheitsgründen vermeiden

Sie sollten Ihre Entscheidung, entweder Makros oder VBA-Code zu verwenden, auf zwei Bedenken gründen: Sicherheit und die gewünschte Funktionalität

Sicherheit ist ein Problem, da VBA verwendet werden kann, um Code zu erstellen, der entweder die Sicherheit Ihrer Daten gefährdet oder Dateien auf Ihrem Computer beschädigen kann

Wenn Sie eine Datenbank verwenden, die von jemand anderem als Ihnen selbst erstellt wurde, sollten Sie VBA-Code nur aktivieren, wenn Sie wissen, dass die Datenbank aus einer vertrauenswürdigen Quelle stammt

Wenn Sie eine Datenbank erstellen, die von anderen Personen verwendet wird, sollten Sie versuchen, Programmiertools zu vermeiden, die vom Benutzer verlangen, dass er der Datenbank ausdrücklich einen vertrauenswürdigen Status gewährt

Allgemeine Techniken, um zu vermeiden, dass Benutzer Ihrer Datenbank vertrauen müssen, finden Sie später in diesem Abschnitt

Um die Sicherheit Ihrer Datenbank zu gewährleisten, sollten Sie versuchen, wann immer möglich Makros zu verwenden, und die VBA-Programmierung nur für Vorgänge verwenden, die nicht mithilfe von Makroaktionen ausgeführt werden können

Darüber hinaus sollten Sie versuchen, nur Makroaktionen zu verwenden, für deren Ausführung der Datenbank kein vertrauenswürdiger Status gewährt werden muss

Durch die Beschränkung der Verwendung von Makroaktionen auf diese Weise können Benutzer sicher sein, dass die Datenbank keine Programmierung enthält, die die Daten oder andere Dateien auf ihren Computern beschädigen könnte

Überlegungen zu Makros Ab der Version Access 2010 enthält Access viele neue Makroaktionen, mit denen Sie leistungsfähigere Makros erstellen können, als Sie mit früheren Versionen von Access erstellen können

Beispielsweise können Sie jetzt globale temporäre Variablen erstellen und verwenden, indem Sie Makroaktionen verwenden, und Sie können Fehler eleganter behandeln, indem Sie neue Makroaktionen zur Fehlerbehandlung verwenden

In früheren Versionen von Access sind diese Arten von Features nur mithilfe von VBA verfügbar

Darüber hinaus können Sie ein Makro direkt in die Ereigniseigenschaft eines Objekts oder Steuerelements einbetten

Ein eingebettetes Makro wird Teil des Objekts oder Steuerelements und verbleibt beim Objekt oder Steuerelement, wenn es verschoben oder kopiert wird

Makros bieten eine einfache Möglichkeit, viele Programmieraufgaben zu erledigen, z

B

das Öffnen und Schließen von Formularen und das Ausführen von Berichten

Sie können die von Ihnen erstellten Datenbankobjekte (Formulare, Berichte usw.) schnell und einfach miteinander verknüpfen, da Sie sich nur wenig Syntax merken müssen

Die Argumente für jede Aktion werden im Macro Builder angezeigt

Zusätzlich zu der erhöhten Sicherheit und Benutzerfreundlichkeit, die Makros bieten, müssen Sie Makros verwenden, um die folgenden Aufgaben auszuführen: Einer Taste eine Aktion oder eine Gruppe von Aktionen zuweisen

Dazu muss eine Makrogruppe mit dem Namen AutoKeys erstellt werden.

Ausführen einer Aktion oder einer Reihe von Aktionen beim ersten Öffnen einer Datenbank

Dazu muss ein Makro mit dem Namen AutoExec erstellt werden

Hinweis: Das AutoExec-Makro wird vor allen anderen Makros oder VBA-Code ausgeführt, auch wenn Sie im Dialogfeld Access-Optionen ein Startformular angegeben und ein Makro oder VBA-Code an das OnOpen- oder OnLoad-Ereignis dieses Formulars angehängt haben

Weitere Informationen zum Erstellen von Makros finden Sie im Abschnitt Makros verstehen

Überlegungen zu VBA Sie sollten die VBA-Programmierung anstelle von Makros verwenden, wenn Sie Folgendes tun möchten: Integrierte Funktionen verwenden oder eigene Funktionen erstellen Access enthält viele integrierte Funktionen, z

B

die IPmt-Funktion, die eine Zinszahlung berechnet

Sie können diese integrierten Funktionen verwenden, um Berechnungen durchzuführen, ohne komplizierte Ausdrücke erstellen zu müssen

Durch die Verwendung von VBA-Code können Sie auch Ihre eigenen Funktionen erstellen, um entweder Berechnungen durchzuführen, die die Möglichkeiten eines Ausdrucks überschreiten, oder um komplexe Ausdrücke zu ersetzen

Darüber hinaus können Sie die Funktionen, die Sie in Ausdrücken erstellen, verwenden, um eine gemeinsame Operation auf mehr als ein Objekt anzuwenden

Objekte erstellen oder bearbeiten In den meisten Fällen werden Sie feststellen, dass es am einfachsten ist, ein Objekt im Design dieses Objekts zu erstellen und zu ändern Ansicht

In einigen Situationen möchten Sie jedoch möglicherweise die Definition eines Objekts im Code manipulieren

Durch die Verwendung von VBA können Sie zusätzlich zur Datenbank selbst alle Objekte in einer Datenbank bearbeiten

Ausführen von Aktionen auf Systemebene Sie können die RunApp-Aktion in einem Makro ausführen, um ein anderes Programm (z

B

Microsoft Excel) in Access auszuführen , aber Sie können ein Makro nicht für viel mehr außerhalb von Access verwenden

Mithilfe von VBA können Sie überprüfen, ob eine Datei auf dem Computer vorhanden ist, Automatisierung oder Dynamic Data Exchange (DDE) verwenden, um mit anderen Microsoft Windows-basierten Programmen wie Excel zu kommunizieren, und Funktionen in Windows Dynamic Link Libraries aufrufen ( DLLs).

Datensätze einzeln bearbeiten Sie können VBA verwenden, um eine Reihe von Datensätzen Schritt für Schritt durchzugehen und eine Operation für jeden Datensatz auszuführen

Im Gegensatz dazu arbeiten Makros mit ganzen Sätzen von Datensätzen gleichzeitig

Seitenanfang Verwenden Sie den Befehlsschaltflächen-Assistenten, um allgemeine Programmieraufgaben auszuführen

Wenn Sie einem Formular eine Befehlsschaltfläche hinzufügen, kann Ihnen der Befehlsschaltflächen-Assistent beim Einstieg in die Programmierung helfen

Der Assistent hilft Ihnen beim Erstellen einer Befehlsschaltfläche, die eine bestimmte Aufgabe ausführt

In einer Access-Datei (ACCDB) erstellt der Assistent ein Makro, das in die OnClick-Eigenschaft der Befehlsschaltfläche eingebettet ist

In einer MDB- oder ADP-Datei erstellt der Assistent VBA-Code, da eingebettete Makros in diesen Dateiformaten nicht verfügbar sind

In beiden Fällen können Sie dann den Makro- oder VBA-Code ändern oder erweitern, um ihn Ihren Anforderungen besser anzupassen

Klicken Sie im Navigationsbereich mit der rechten Maustaste auf das Formular, dem Sie die Befehlsschaltfläche hinzufügen möchten, und klicken Sie dann auf Entwurfsansicht

Klicken Sie auf der Registerkarte Entwurf auf den Abwärtspfeil, um den Katalog Steuerelemente anzuzeigen, und stellen Sie dann sicher, dass Steuerelement-Assistenten verwenden ausgewählt ist

Klicken Sie auf der Registerkarte Entwurf im Katalog Steuerelemente auf Schaltfläche

Klicken Sie im Formularentwurfsbereich auf die Stelle, an der die Befehlsschaltfläche platziert werden soll

Der Befehlsschaltflächen-Assistent wird gestartet

Klicken Sie auf der ersten Seite des Assistenten auf jede Kategorie in der Liste Kategorien, um anzuzeigen, welche Aktionen der Assistent für die Ausführung der Befehlsschaltfläche programmieren kann

Wählen Sie in der Liste Aktionen die gewünschte Aktion aus und klicken Sie dann auf Weiter

Klicken Sie entweder auf die Option Text oder die Option Bild, je nachdem, ob auf der Befehlsschaltfläche Text oder ein Bild angezeigt werden soll

Wenn Sie möchten, dass Text angezeigt wird, können Sie den Text im Feld neben der Option Text bearbeiten.

Wenn Sie möchten, dass ein Bild angezeigt wird, schlägt der Assistent ein Bild in der Liste vor

Wenn Sie ein anderes Bild auswählen möchten, aktivieren Sie das Kontrollkästchen Alle Bilder anzeigen, um eine Liste aller von Access bereitgestellten Befehlsschaltflächenbilder anzuzeigen, oder klicken Sie auf Durchsuchen, um ein anderswo gespeichertes Bild auszuwählen

Weiter klicken

Geben Sie einen aussagekräftigen Namen für die Befehlsschaltfläche ein

Dies ist ein optionaler Schritt, und dieser Name wird nicht auf der Befehlsschaltfläche angezeigt

Es ist jedoch eine gute Idee, einen aussagekräftigen Namen einzugeben, damit Sie später, wenn Sie auf die Befehlsschaltfläche verweisen müssen (z

B

wenn Sie die Tab-Reihenfolge für Steuerelemente in Ihrem Formular festlegen), diese viel einfacher unterscheiden können die Befehlsschaltflächen

Wenn die Befehlsschaltfläche beispielsweise das Formular schließt, könnten Sie sie cmdClose oder CommandClose nennen

Klicken Sie auf Fertig stellen

Access platziert die Befehlsschaltfläche im Formular

Wenn Sie sehen möchten, was der Assistent für Sie „programmiert“ hat, führen Sie diese optionalen Schritte aus: Wenn das Eigenschaftsblatt noch nicht angezeigt wird, drücken Sie F4, um es anzuzeigen

Klicken Sie im Eigenschaftenblatt auf die Registerkarte Ereignis

Klicken Sie im Eigenschaftsfeld „Bei Klick“ auf die Schaltfläche „Erstellen“

Access startet den Makrogenerator und zeigt das vom Assistenten erstellte Makro an

Sie können das Makro bei Bedarf bearbeiten (weitere Informationen zum Bearbeiten eines Makros finden Sie im Abschnitt Makros verstehen)

Wenn Sie fertig sind, klicken Sie auf der Registerkarte Entwurf in der Gruppe Schließen auf Schließen, um den Makrogenerator zu schließen

Wenn Access Sie auffordert, die Änderungen zu speichern und die Eigenschaft zu aktualisieren, klicken Sie auf Ja, um die Änderungen zu speichern, oder auf Nein, um die Änderungen abzulehnen

Klicken Sie auf der Registerkarte Entwurf in der Gruppe Ansichten auf Ansicht und dann auf Formularansicht

Klicken Sie auf die neue Befehlsschaltfläche, um zu bestätigen, dass sie wie erwartet funktioniert

Zum Seitenanfang Makros verstehen Ein Makro ist ein Tool, mit dem Sie Aufgaben automatisieren und Ihren Formularen, Berichten und Steuerelementen Funktionen hinzufügen können

Wenn Sie beispielsweise einem Formular eine Befehlsschaltfläche hinzufügen, verknüpfen Sie die OnClick-Ereigniseigenschaft der Schaltfläche mit einem Makro, das die Befehle enthält, die die Schaltfläche bei jedem Klicken ausführen soll

Es ist hilfreich, sich Access-Makros als eine vereinfachte Programmiersprache vorzustellen, in der Sie Code erstellen, indem Sie eine Liste mit auszuführenden Aktionen erstellen

Wenn Sie ein Makro erstellen, wählen Sie jede Aktion aus einer Dropdown-Liste aus und geben dann die erforderlichen Informationen für jede Aktion ein

Mit Makros können Sie Formularen, Berichten und Steuerelementen Funktionen hinzufügen, ohne Code in ein VBA-Modul schreiben zu müssen

Makros stellen eine Teilmenge der Befehle bereit, die in VBA verfügbar sind, und die meisten Leute finden es einfacher, ein Makro zu erstellen, als VBA-Code zu schreiben

Sie erstellen ein Makro mithilfe des Makrogenerators, der in der folgenden Abbildung dargestellt ist

So zeigen Sie den Makrogenerator an: Klicken Sie auf der Registerkarte „Erstellen“ in der Gruppe „Makros & Code“ auf „Makro“

top of page VBA-Code verstehen Wie Makros können Sie mit VBA Automatisierung und andere Funktionen zu Ihrer Access-Anwendung hinzufügen

Sie können VBA erweitern, indem Sie Steuerelemente von Drittanbietern verwenden, und Sie können Ihre eigenen Funktionen und Prozeduren für Ihre eigenen spezifischen Anforderungen schreiben

Ein schneller Einstieg in die VBA-Programmierung besteht darin, zunächst ein Access-Makro zu erstellen und es dann in VBA-Code zu konvertieren

Anweisungen dazu finden Sie im Abschnitt Konvertieren von Makros in VBA-Code

Diese Funktion erstellt ein neues VBA-Modul, das die entsprechenden Vorgänge im Makro ausführt

Außerdem wird der Visual Basic-Editor geöffnet, sodass Sie mit der Änderung der Prozedur beginnen können

Wenn Sie im Visual Basic-Editor arbeiten, können Sie auf Schlüsselwörter klicken und F1 drücken, um die Access Developer Help zu starten und mehr über die einzelnen Schlüsselwörter zu erfahren

Sie können dann Access Developer Help durchsuchen und neue Befehle entdecken, die Ihnen bei der Ausführung der gewünschten Programmieraufgaben helfen

Seitenanfang

DoCmd in VBA for Access Update

Video unten ansehen

Neues Update zum Thema access vba tools

In this video, I will demonstrate DOCmd in VBA for Access.
Visit OutGo Apparels: https://www.outgoapparels.com/
Website: https://www.looplearnings.com/​
Other YouTube Channels you may Like
——————————————————————
Same Lesson in Urdu/Hindi Language:
Amazing Facts Channel: https://www.youtube.com/channel/UCG4G​…
#Microsoft #Access
Follow us on Twitter @ https://twitter.com/LoopLearnings​
Follow us on FB @ https://facebook.com/LoopLearningsInc

access vba tools Einige Bilder im Thema

 New Update DoCmd in VBA for Access
DoCmd in VBA for Access Update

Connecting to Microsoft Access Database from Excel VBA … New

To use DAO in your VBA project, you must add a reference to the DAO Object Library in Excel (your host application) by clicking Tools-References in VBE, and then choose an appropriate version (mostly, you should choose the highest version number), which is “Microsoft DAO 3.6 Object Library” for Access 2000 onwards. The DBEngine object

+ Details hier sehen

Read more

Artikel

Herstellen einer Verbindung zur Microsoft Access-Datenbank von Excel VBA mithilfe des DAO-Objektmodells

Herstellen einer Verbindung zur Microsoft Access-Datenbank von Excel VBA mithilfe des DAO-Objektmodells

Microsoft Access: Data Access Objects Library (DAO), Verbindung mit Access-Datenbanken aus Excel mithilfe von VBA

Teil 1 von 3

Microsoft Access: Data Access Objects Library (DAO), Herstellen einer Verbindung mit Access-Datenbanken aus Excel mithilfe von VBA

1

Verbindung zur Microsoft Access-Datenbank von Excel VBA mithilfe des DAO-Objektmodells

2

Microsoft Access DAO-Objektmodell: Index erstellen, Beziehung zwischen Feldern erstellen, Abfrage erstellen und ausführen.

3

Microsoft Access DAO-Objektmodell: Daten aus Access in Excel importieren oder exportieren.

——– ——–

Also lesen:

Microsoft Access: ActiveX Data Objects (ADO), Verbinden mit Access-Datenbanken aus Excel mit VBA.

—————————— ————————————————– —

Inhalt:

Verbinden Sie sich mit Datenbanken unter Verwendung von DAO-, RDO- und ADO-Objekten

DAO-Objekte und Programmiermodell

Das DBEngine-Objekt und das Workspace-Objekt

DAO-Datenbanken

Tabellen einer DAO-Datenbank

Felder / Spalten einer Tabelle

Recordset & Records einer DAO-Datenbanktabelle

————————————————– ———————————

Um eine Verbindung mit anderen Datenbanken herzustellen, können Sie beim Arbeiten in VBA entweder DAO (Data Access Objects), RDO (Remote Data Objects) oder ADO (ActiveX Data Objects) verwenden

Nachdem Sie sich mit einer Datenbank verbunden haben, können Sie ihre Daten manipulieren

DAO, RDO und ADO sind Datenzugriffsschnittstellen, dh

Sie sind Objekt- und Programmiermodelle, die für den Zugriff auf Daten verwendet werden

Früher wurde DAO verwendet, um eine Schnittstelle mit lokalen Datenbanken (nämlich MS Access) herzustellen, RDO wurde verwendet, um eine Schnittstelle mit großen Datenbanken wie Oracle und SQL Server herzustellen

ADO war ihr Ersatz für die Schnittstelle zu allen Arten von Datenquellen

Sowohl DAO als auch ADO werden häufig beim Herstellen einer Verbindung mit einer Microsoft Access-Datenbank verwendet DAO-Datenbank, Felder/Spalten einer Tabelle, Datensätze und Datensätze einer DAO-Datenbanktabelle, mit praktischen Beispielen.

Verbinden Sie sich mit Datenbanken unter Verwendung von DAO-, RDO- und ADO-Objekten

Um eine Verbindung mit anderen Datenbanken herzustellen, können Sie beim Arbeiten in VBA entweder DAO (Data Access Objects), RDO (Remote Data Objects) oder ADO (ActiveX Data Objects) verwenden

Nachdem Sie sich mit einer Datenbank verbunden haben, können Sie ihre Daten manipulieren

DAO, RDO und ADO sind Datenzugriffsschnittstellen, dh

Sie sind Objekt- und Programmiermodelle, die für den Zugriff auf Daten verwendet werden

Früher wurde DAO verwendet, um eine Schnittstelle mit lokalen Datenbanken (nämlich MS Access) herzustellen, RDO wurde verwendet, um eine Schnittstelle mit großen Datenbanken wie Oracle und SQL Server herzustellen

See also  Best Choice grundlagen der volkswirtschaftslehre mankiw Update New

ADO war ihr Ersatz für die Schnittstelle zu allen Arten von Datenquellen

Sowohl DAO als auch ADO werden häufig beim Herstellen einer Verbindung mit der Microsoft Access-Datenbank verwendet

DAO ist in Access nativ, die DAO-Objektbibliothek ist die Standardreferenz in Access 2007 und die Bibliothek ist vorhanden, wenn Sie Access verwenden (die ADO-Objektbibliothek war die Standardreferenz in Access 2000 und 2002, während DAO als Standardobjektbibliothek mit zurückgegeben wurde Access 2003, nachdem es zuvor in Access 97 der Standard war)

DAO lässt sich gut in Access-Datenbanken integrieren und bietet schnelleren Zugriff

Neben Access bietet ADO Zugriff auf eine größere Vielfalt von Datenquellen als DAO

ADO hat DAO abgelöst und ist die neueste Datenzugriffstechnologie, einfacher und flexibler und mit der leistungsstarken Datenzugriffstechnologie OLE DB von Microsoft gekoppelt

In ADO gibt es weniger Objekte als in DAO, und es enthält mehr Eigenschaften, Methoden und Ereignisse

ADO/OLE DB wird für neue Projekte empfohlen, aber es lohnt sich möglicherweise nicht, DAO-Code für bestehende Projekte in ADO zu konvertieren

ADO erstellt mithilfe des Connection-Objekts einen Verweis auf die Datenbank, um eine Verbindung zur Datenquelle herzustellen

Sie verwenden die Open- und Close-Methoden, um ein Connection-Objekt zu öffnen und zu schließen

DAO erstellt mithilfe des Datenbankobjekts einen Verweis auf die Datenbank, um eine Verbindung zur Datenquelle herzustellen.

In Microsoft Access werden Recordset-Objekte verwendet, um auf Daten in einer Datenbank zuzugreifen und diese zu bearbeiten

Ein Recordset-Objekt stellt eine Reihe von Datensätzen in einer Datenbanktabelle oder eine Reihe von Datensätzen dar, die von der Ausführung einer Abfrage zurückgegeben werden

Sowohl DAO- als auch ADO-Bibliotheken haben ein Recordset-Objekt, obwohl die Methoden, Eigenschaften und Optionen des jeweiligen Objekts unterschiedlich sind

Ein Record-Objekt ist eine Datenzeile in einem Recordset

Ein Recordset-Objekt hat eine Fields-Sammlung, die alle Field-Objekte enthält, wobei jedes Field-Objekt eine Spalte im Recordset darstellt

Mit anderen Worten, jeder Datensatz stellt eine Datenzeile dar und enthält viele Felder, und jedes Feld entspricht einer Spalte in der Datenbanktabelle

In Ihrem VBA-Code sollten Sie dem Objektnamen idealerweise das Präfix seiner Programm-ID (ProgID) voranstellen, was in ADO “ADODB” und in DAO “DAO” ist

Viele Objekte, zum Beispiel das Recordset-Objekt, haben ähnliche Namen in DAO und ADO, und es ist ratsam, explizite Referenzen in Ihrem Projekt zu haben

Dies ist ein Muss, wenn Sie Verweise auf die DAO- und ADO-Bibliotheken in Ihr VBA-Projekt aufgenommen haben, da sonst die zuerst in der Verweisliste erwähnte Objektbibliothek Vorrang hat, was zu Verwirrung im VBA-Code führt sollte nutzen:

Dim daoRecSet als DAO.Recordset

Dim adoRecSet als ADODB.Recordset

anstatt:

Dim RecSet als Recordset

DAO-Objekte und Programmiermodell

DAO (Data Access Objects) ist eine objektorientierte Datenzugriffsschnittstelle, die verwendet wird, um eine Verbindung zu Datenbanken herzustellen und darauf zuzugreifen

Es war das erste Objects & Programming-Modell, das die Microsoft Jet-Datenbank-Engine verwendete und für die Arbeit mit Microsoft Access-Dateien (.mdb) optimiert ist

Die Objekte und Sammlungen in der DAO-Objekthierarchie werden verwendet, um eine Verbindung zu einer Datenbank herzustellen, auf ihre Daten und Datenbankstruktur zuzugreifen und diese zu bearbeiten

Eine Datenbank-Engine ist die zugrunde liegende Softwarekomponente einer Datenbank, die zum Bearbeiten ihrer Daten verwendet wird

Das DAO-Objektmodell verwendet standardmäßig das Microsoft Jet-Datenbankmodul für den Datenzugriff

ODBCDirect (das nach ODBC kam) ermöglichte DAO den direkten Zugriff auf ODBC-Datenquellen, ohne die Jet-Datenbank-Engine zu verwenden

In diesem Abschnitt veranschaulichen wir die Verbindung zur Microsoft Access-Datenbank mithilfe von DAO mit der Jet-Engine

Vor Access 2007 verwendete Access die Microsoft-Engine (JET), aber mit Access 2007 war die neue und verbesserte ACE-Engine erfolgreich und ersetzte JET

Die ACE-Engine ist vollständig abwärtskompatibel, sodass sie mit den. accdb-Dateien (Access 2007) und den früheren. mdb-Dateien verwendet werden kann

Automatisieren des Zugriffs von Excel: Sie können mit DAO von externen Anwendungen aus eine Verbindung zu einer Datenbank herstellen und darauf zugreifen die Automatisierung unterstützen (z

B

MS Excel, MS Word usw.), und in diesem Abschnitt zeigen wir, wie Sie dies von Microsoft Excel aus mithilfe von VBA tun können

Mit der Automatisierung können Sie eine andere Anwendung (MS Access) innerhalb Ihrer Host-Anwendung (MS Excel) ohne manuellen Eingriff steuern

Die Automatisierung wird normalerweise verwendet, um Makros oder Abfragen von Excel auszuführen, um eine Verbindung zu einer MS Access-Datenbank und ihrer Struktur herzustellen oder zu bearbeiten, um auf MS Access-Daten und -Berichte zuzugreifen und diese zu bearbeiten, um Daten aus MS Access in Excel zu importieren, um Diagramme und Pivot-Tabellen zu erstellen und Andernfalls verwenden Sie die Daten für Berechnungen und Analysen

ODBC (Open Database Connectivity):

ODBC (Open Database Connectivity) ist eine Schnittstelle, die es einer Anwendung ermöglicht, mithilfe der SQL-Abfragesyntax eine Verbindung zu einer relationalen Datenbank herzustellen und darauf zuzugreifen

Eine ODBC-Datenbank ist ein DBMS (Database Management System), für das es einen geeigneten ODBC-Treiber gibt (Beispiele für DBMS sind SQL Server, Oracle, AS/400, Foxpro, Microsoft Access)

Der ODBC-Treiber ist eine Software, die sich zwischen dem ODBC-Client (das ist die Front-End-Anwendung, in der der Treiber geladen wird) und dem DBMS (in dem die Daten für den Zugriff gespeichert werden) befindet und den Befehl in ein verständliches Format übersetzt durch das DBMS

Das DAO-Objektmodell verwendet die Microsoft Jet-Datenbank-Engine und ist für die Arbeit mit Microsoft Access-Dateien (.mdb) optimiert, aber auf ODBC-Datenbanken kann auch mit DAO und der Microsoft Jet-Datenbank-Engine zugegriffen werden

Eine Datenbank-Engine ist die zugrunde liegende Softwarekomponente einer Datenbank, die zur Bearbeitung ihrer Daten verwendet wird

Jet (Joint Engine Technology) wird von Microsoft Access als Datenbank-Engine verwendet

OLE DB und ODBC:

OLE DB war als Nachfolger gedacht, um ODBC zu verbessern, indem es eine erweiterte und schnellere Schnittstelle für den Datenzugriff bereitstellte

OLE DB ist nicht wie ODBC an die SQL-Sprache gebunden und unterstützt alle Formen von Datenquellen (d

h

relationale und nicht relationale Datenquellen, einschließlich Mainframe- und hierarchische Datenbanken, E-Mail- und Dateisysteme, Text- und Grafikdaten, benutzerdefinierte Geschäftsobjekte)

,. ..), während ODBC auf relationale Datenbanken beschränkt war

OLE DB war komplex, um direkt mit Visual Basic verwendet zu werden, und das ADO (ActiveX Data Objects)-Objektmodell von Microsoft wurde eingeführt, das eine Schnittstelle mit einem OLE DB-Anbieter bildet und es einer Anwendung (nämlich Excel) ermöglicht, auf Daten aus einer Datenbank (nämlich Excel) zuzugreifen und diese zu bearbeiten

MS Access).

ODBC vs

DAO, ADO vs

DAO:

Verwenden Sie beim Arbeiten mit ODBC-Datenquellen ODBC

Mit ODBC können Sie auf jede Datenquelle zugreifen, für die es einen passenden ODBC-Treiber für die Datenbank gibt, auf die Sie zugreifen möchten

Beispiele für ODBC-Datenbanken sind Oracle, Microsoft SQL Server, Microsoft Visual FoxPro, IBM DB2, Microsoft Access

Beim Arbeiten mit Microsoft Jet-Datenbanken (.mdb) ist die Verwendung von DAO effizienter

Beispiele für Microsoft Jet-Datenbanken sind Microsoft Access, Microsoft SQL Server, Paradox

Das DAO-Objektmodell verwendet das Microsoft Jet-Datenbankmodul und ist für die Arbeit mit Microsoft Access-Dateien (.mdb) optimiert, aber auf ODBC-Datenbanken kann auch mit DAO und dem Microsoft Jet-Datenbankmodul zugegriffen werden, wenn Sie die Geschwindigkeit des Jet-Datenbankmoduls und die zusätzlichen Funktionen von DAO wünschen

DAO steht vor ADO und ODBC steht vor OLE DB

ADO/OLE DB wird für neue Projekte empfohlen, aber es lohnt sich möglicherweise nicht, DAO-Code für vorhandene Projekte in ADO zu konvertieren

Fügen Sie einen Verweis auf die DAO-Objektbibliothek hinzu

Um DAO in Ihrem VBA-Projekt zu verwenden, müssen Sie einen Verweis auf die DAO-Objektbibliothek in Excel (Ihrer Hostanwendung) hinzufügen, indem Sie in VBE auf Tools-Verweise klicken und dann eine geeignete Version auswählen (meistens sollten Sie die höchste Versionsnummer wählen)

, das ist “Microsoft DAO 3.6 Object Library” für Access 2000 und höher.

Das DBEngine-Objekt

Das Objekt der höchsten Ebene im DAO-Objektmodell ist das DBEngine-Objekt und enthält alle Objekte in der Hierarchie der DAO-Objekte

Es kann nur ein DBEngine-Objekt geben, und es gibt keine Sammlung, von der es ein Element ist

Das DBEngine-Objekt hat viele Eigenschaften und Methoden und enthält zwei Sammlungen – die Workspaces-Sammlung und die Errors-Sammlung

Sie können die Datenbank-Engine mit Eigenschaften und Methoden konfigurieren, die vom DBEngine-Objekt bereitgestellt werden

Eine Datenbank-Engine ist die zugrunde liegende Softwarekomponente einer Datenbank, die zur Bearbeitung ihrer Daten verwendet wird

Sie können direkt auf DBEngine verweisen, ohne explizit eine Objektvariable vom Typ DBEngine zu deklarieren

Workspace Object & Workspaces Collection

Erstellen Sie ein Arbeitsbereichsobjekt, um eine Benutzersitzung nach Namen zu definieren, in der ein Benutzer alle Datenbankoperationen mithilfe des Microsoft Access-Datenbankmoduls ausführt

Das Workspace-Objekt ermöglicht es Ihnen, mehrere Datenbanken oder Verbindungen in einer Sitzung zu öffnen, und Sie können zusätzliche Sitzungen mit dem Workspace-Objekt öffnen

Eine Workspace-Sitzung beginnt mit der Erstellung eines neuen Workspace-Objekts und endet, wenn die Close-Methode des Workspace-Objekts verwendet wird

Mehrere Sitzungen (d

h

Arbeitsbereichsobjekte) sind besonders nützlich, wenn Sie Vorgänge als verschiedene Benutzer ausführen oder separate und unabhängige Vorgänge in jeder Sitzung verwalten möchten

Alle aktiven und eingeblendeten Workspace-Objekte werden als Workspaces-Sammlung bezeichnet, die im DBEngine-Objekt enthalten ist

Wenn Sie Datenbanken in DAO öffnen, sind sie automatisch im Standardarbeitsbereich vorhanden, der der erste Arbeitsbereich in der Workspaces-Auflistung ist

Ein Standardarbeitsbereich, DBEngine.Workspaces(0), wird automatisch erstellt, wenn auf ein Arbeitsbereichsobjekt zum ersten Mal verwiesen oder es verwendet wird, mit dem Namen „#Default Workspace#“, und wenn die Sicherheit nicht aktiviert ist, mit dem Benutzernamen „admin“ (falls Sicherheit wird implementiert, dann wird Benutzername auf den Namen des Benutzers gesetzt, der sich anmeldet)

Sie können die CreateWorkspace-Methode verwenden, um ein Workspace-Objekt zu erstellen

Es ist nicht erforderlich, ein Workspace-Objekt an die Wokspaces-Auflistung anzuhängen, nachdem es erstellt wurde, und in diesem Fall müssen Sie es durch die Objektvariable referenzieren, die in der CreateWorkspace-Methode verwendet wird

Es muss ein Workspace-Objekt an die Workspaces-Sammlung angehängt werden, nachdem es erstellt wurde, wenn Sie von der Workspaces-Sammlung aus über seine Ordnungszahl oder seinen Namen darauf verweisen möchten, nämlich

DBEngine.Workspaces(0) oder DBEngine.Workspaces(“WorkspaceObjectName”) oder DBEngine.Workspaces![WorkspaceObjectName]

Alle definierten DAO-Workspace-Objekte, die an die Sammlung angehängt sind, bilden die Workspaces-Sammlung

Es gibt 2 Arten von Workspace-Objekten, wie durch die WorkspaceTypeEnum-Enumeration in der CreateWorkspace-Methode definiert – (i) Microsoft Jet Workspace-Objekte (Typ – ‘dbUseJet’), die einen Microsoft Access-Arbeitsbereich erstellen; und (ii) ODBCDirect-Arbeitsbereiche (Typ – „dbUseODBC“), die in Microsoft Office Access 2007 nicht unterstützt werden

In diesem Abschnitt werden wir nur die Microsoft Jet-Arbeitsbereichsobjekte besprechen

Standardmäßig ist die DBEngine.DefaultUser-Eigenschaft auf „Admin“ eingestellt

und die DBEngine.DefaultPassword-Eigenschaft wird auf eine leere Zeichenfolge (“”) gesetzt, und der Benutzer und das Kennwort des standardmäßigen Workspace-Objekts werden entsprechend definiert

Wenn Sie Access starten oder mit vba auf eine Access-Datenbank zugreifen, melden sich alle Benutzer automatisch mit dem Standardnamen “Admin” und dem Kennwort mit einer Zeichenfolge der Länge Null (“”) an, aber um auf eine Datenbank in einem gesicherten System (z

einer gesicherten Access-Datenbank) müssen Benutzer einen Benutzernamen und ein Passwort angeben (falls dem Benutzer ein Passwort zugewiesen wurde)

In einem gesicherten System legen Sie für den Standardarbeitsbereich die Eigenschaften DefaultUser und DefaultPassword (für das DBEngine-Objekt) fest, und nachdem die Standardsitzung initialisiert wurde, können zusätzliche Sitzungen mit Benutzernamen und Kennwörtern erstellt werden

Beachten Sie, dass beim Passwort zwischen Groß- und Kleinschreibung unterschieden wird, nicht jedoch beim Benutzernamen

In diesem Abschnitt gehen wir nicht näher auf den Zugriff auf eine gesicherte Microsoft Access-Datenbank ein

DBEngine.CreateWorkspace-Methode

Verwenden Sie die DBEngine.CreateWorkspace-Methode, um ein neues Workspace-Objekt zu erstellen

Syntax: DBEngineObject.CreateWorkspace(Name, Benutzername, Kennwort, Verwendungstyp)

Alle Argumente außer UseType sind obligatorisch

Geben Sie im Argument Name einen eindeutigen Arbeitsbereichsnamen für eine Sitzung an

Geben Sie im Argument UserName den Namen des Benutzers zur Identifizierung an

Im Argument Password müssen Sie ein Passwort für das Workspace-Objekt mit maximal 20 Zeichen eingeben

Das UseType-Argument gibt einen der WorkspaceTypeEnum-Werte an: (i) dbUseJet – (Microsoft Jet Workspace-Objekte), das einen Microsoft Access-Arbeitsbereich erstellt und auch der Standardwert ist; und (ii) dbUseODBC – für ODBCDirect-Arbeitsbereiche, die in Microsoft Office Access 2007 nicht unterstützt werden

Wenn Sie Datenbanken in DAO öffnen, sind sie automatisch im Standardarbeitsbereich vorhanden, der der erste Arbeitsbereich in der Arbeitsbereichssammlung ist

Sie müssen die DBEngine.CreateWorkspace-Methode nur verwenden, um einen zweiten Arbeitsbereich zu erstellen, der selten benötigt wird

Beispiel 1: DAO-WorkSpace-Objekt und Arbeitsbereichssammlung Sammlung.

2

Greifen Sie auf die Eigenschaften aller Arbeitsbereichsobjekte zu (dh Standardarbeitsbereich und neu erstellter Arbeitsbereich)

Sub AccessDAO_CreateWorkspace_1()

‘Erstellen Sie ein neues Workspace-Objekt mit der CreateWorkspace-Methode und fügen Sie es an die Workspaces-Sammlung an.

‘Zugreifen auf die Eigenschaften aller Workspace-Objekte (d

h

Standardarbeitsbereich und neu erstellter Arbeitsbereich).

‘Um DAO in Ihrem Excel-VBA-Projekt zu verwenden, Sie müssen einen Verweis auf die DAO-Objektbibliothek in Excel (Ihre Hostanwendung) hinzufügen, indem Sie in VBE auf Tools-References klicken

Dim strMyPath As String, strDBName As String, strDB As String

Dim wrkSpace As DAO.Workspace, wrkSpaceNew As DAO.Workspace

Dim prpWrkSpace als DAO.Property

‘Erstellen Sie einen neuen Microsoft Jet-Arbeitsbereich mit dem Standardtyp dbUseJet:

Set wrkSpaceNew = DBEngine.CreateWorkspace(“newWS”, “admin”, “”, dbUseJet)

‘den neuen Arbeitsbereich an die Workspaces-Sammlung anhängen:

DBEngine.Workspaces.Append wrkSpaceNew

‘gibt die Anzahl der Workspace-Objekte in der Workspaces-Sammlung zurück (gibt 2 zurück – Standard- und neuer Workspace):

MsgBox DBEngine.Workspaces.count

‘Zugriffseigenschaften aller Workspace-Objekte (d

h

Standard-Workspace und neu erstellter Workspace):

Für jeden Arbeitsbereich in DBEngine.Workspaces

‘Workspace-Name (gibt “#Default Workspace#” & “newWS” zurück):

MsgBox “Arbeitsbereichsname: ” & Arbeitsbereich.Name

‘Einstellung der Benutzernameneigenschaft:

MsgBox Arbeitsbereich.Benutzername

‘Eigenschaften des Arbeitsbereichsobjekts:

Für jeden prpWrkSpace in wrkSpace.Properties

MsgBox “Eigenschaftsname: ” & prpWrkSpace.Name

Nächster prpWrkSpace

Nächster Arbeitsplatz

‘gibt den Namen des Standardarbeitsbereichs zurück, dh

“#Standardarbeitsbereich#”:

MsgBox DBEngine.Workspaces(0).Name

‘Da das Workspace-Objekt nach seiner Erstellung an die Workspaces-Sammlung angehängt wurde, können wir aus der Workspaces-Sammlung über seine Ordnungszahl oder seinen Namen darauf verweisen (gibt “newWS” zurück):

MsgBox DBEngine.Workspaces(“newWS”).Name

‘Wenn das Workspace-Objekt nach seiner Erstellung nicht an die Wokspaces-Sammlung angehängt worden wäre, hätten Sie es in diesem Fall durch die Objektvariable referenzieren müssen, die in der CreateWorkspace-Methode verwendet wird (gibt “newWS” zurück):

MsgBox workSpaceNew.Name

‘Objekte schließen:

workSpaceNew.Close

‘Zerstöre die Variablen:

Stellen Sie Arbeitsbereich = nichts ein

Legen Sie wrkSpaceNew = nichts fest

Setzen Sie prpWrkSpace = nichts

end sub DAO-Arbeitsbereichsobjektmethoden

DAO-Workspace-Objektmethoden: Die Close-Methode wird verwendet, um einen geöffneten Workspace zu schließen

Die CreateDatabase-Methode wird verwendet, um eine neue Datenbank zu erstellen, und die OpenDatabase-Methode wird verwendet, um eine vorhandene Datenbank zu öffnen

Um die Transaktionsverarbeitung während einer Sitzung zu verwalten (dh wenn eine Reihe von Datenbankänderungen, die in einer Sitzung vorgenommen werden, als eine Einheit behandelt werden), stehen Ihnen die drei Transaktionsmethoden BeginTrans, CommitTrans und Rollback zur Verfügung

Die OpenConnection-Methode, die nur in einem ODBCDirect-Arbeitsbereich verfügbar ist, wird zum Öffnen einer Verbindung zu einer ODBC-Datenquelle verwendet

Beachten Sie, dass Microsoft Office Access 2007 keine ODBC Direct-Arbeitsbereiche unterstützt.

DAO-Datenbanken

DBEngine.OpenDatabaseMethod

Verwenden Sie die DBEngine.OpenDatabase-Methode, um eine Datenbank zu öffnen, wie durch ihren Namen/Pfad angegeben

Von dieser Methode wird ein Verweis auf die Datenbankobjektvariable (der die Datenbank zugewiesen ist) zurückgegeben, und die Datenbank wird nicht tatsächlich im Microsoft Access-Fenster geöffnet

Wenn Sie ein Datenbankobjekt öffnen, ohne einen Arbeitsbereich anzugeben, existiert es im Standardarbeitsbereich: DBEngine.Workspaces(0)

Syntax: DBEngineObject.OpenDatabase(Name, Optionen, ReadOnly, Connect)

Das Namensargument ist obligatorisch, während alle anderen Argumente optional sind

Im Argument Name geben Sie den Namen der Datenbankdatei und den vollständigen Pfad an, die Sie öffnen möchten

Im Options-Argument können Sie False angeben, was der Standardwert ist und die Datenbank im freigegebenen Modus öffnet, während die Angabe von True die Datenbank im exklusiven Modus öffnet

Wenn Sie im ReadOnly-Argument False (Standard) angeben, wird die Datenbank mit Lese-/Schreibzugriff geöffnet, und wenn Sie True angeben, wird sie schreibgeschützt geöffnet

Das Connect-Argument wird verwendet, um Verbindungsinformationen anzugeben (z

B

Kennwort)

DAO Workspace.OpenDatabase-Methode

Verwenden Sie die DAO Workspace.OpenDatabase-Methode, um eine Datenbank, wie durch ihren Namen/Pfad angegeben, im angegebenen Workspace-Objekt zu öffnen

Von dieser Methode wird ein Verweis auf die Datenbankobjektvariable (der die Datenbank zugewiesen ist) zurückgegeben, und die Datenbank wird nicht tatsächlich im Microsoft Access-Fenster geöffnet

Syntax: WorkspaceObject.OpenDatabase(Name, Optionen, ReadOnly, Connect)

Die Argumente ähneln denen in der DBEngine.OpenDatabase-Methode, die oben erläutert wurde

DAO DBEngine.CreateDatabase-Methode

Verwenden Sie die DAO DBEngine.CreateDatabase-Methode, um eine neue Datenbank zu erstellen, zu öffnen und zu speichern

Eine Referenz auf die Objektvariable Database (der die neue Datenbank zugeordnet ist) wird von dieser Methode zurückgegeben

Beachten Sie, dass diese Methode eine neue leere Datenbank erstellt, die Sie danach strukturieren und Inhalte eingeben müssen

Wenn Sie ein Datenbankobjekt erstellen, ohne einen Arbeitsbereich anzugeben, existiert es im Standardarbeitsbereich: DBEngine.Workspaces(0)

Syntax: DBEngineObject.CreateDatabase(Name, Gebietsschema, Option)

Namens- und Locale-Argumente sind obligatorisch

Im Argument Name (max

255 Zeichen) geben Sie den Dateinamen und den vollständigen Pfad der zu erstellenden Datenbank an

Das Locale-Argument gibt eine Sortierreihenfolge für die Datenbank an (dies ist gleichbedeutend mit der Database.CollatingOrder-Eigenschaft, die die Datenbank-Sortierreihenfolge angibt), dh

der Zeichensatz, der verwendet werden soll, um zu bestimmen, wie Datenbankwerte sortiert werden

Die Angabe der Konstante „dbLangGeneral“ für dieses Argument bedeutet, dass eine Datenbank erstellt wird, die die Sortierung für „Englisch, Deutsch, Französisch, Portugiesisch, Italienisch und modernes Spanisch“ unterstützt

Ein Passwort für die neue Datenbank kann auch in Verkettung mit der im Locale-Argument angegebenen Konstante erstellt werden, nämlich

dbLangGeneral & “;pwd=123”, wobei das Passwort “123” ist

Das Option-Argument gibt eine Konstante an, um die Version für das Datenformat zu bestimmen und ob die Datenbank verschlüsselt werden soll

Wenn Sie keine Konstante angeben, wird eine unverschlüsselte Datenbank erstellt

DAO Workspace.CreateDatabase-Methode

Verwenden Sie die DAO Workspace.CreateDatabase-Methode, um eine neue Datenbank zu erstellen, zu öffnen und zu speichern

Eine Referenz auf die Objektvariable Database (der die neue Datenbank zugeordnet ist) wird von dieser Methode zurückgegeben

Beachten Sie, dass diese Methode eine neue leere Datenbank erstellt, die Sie danach strukturieren und Inhalte eingeben müssen

Diese Methode erstellt eine neue Datenbank und öffnet sie im angegebenen Arbeitsbereichsobjekt

Syntax: Workspace.CreateDatabase(Name, Gebietsschema, Option)

Die Argumente sind ähnlich wie bei der DBEngine.CreateDatabase-Methode, die oben erläutert wurde

Beispiel 2: Öffnen Sie eine vorhandene Datenbank, erstellen Sie eine neue Datenbank.

1

Öffnen Sie eine vorhandene Datenbank mit der DAO OpenDatabase-Methode.

2

Erstellen Sie eine neue Datenbank Verwenden der DAO-CreateDatabase-Methode

3

Geben Sie Datenbanken zurück und listen Sie ihre Eigenschaften in einem Arbeitsbereich auf

Sub AccessDAO_OpenDatabaseCreateNewDatabase_2()

„Neuen Microsoft Jet-Arbeitsbereich erstellen; Öffnen Sie eine vorhandene Datenbank mit der DAO OpenDatabase-Methode; Erstellen Sie eine neue Datenbank mit der DAO-CreateDatabase-Methode; Datenbanken zurückgeben und ihre Eigenschaften in einem Arbeitsbereich auflisten;

„Um DAO in Ihrem Excel-VBA-Projekt zu verwenden, müssen Sie einen Verweis auf die DAO-Objektbibliothek in Excel (Ihre Hostanwendung) hinzufügen, indem Sie in VBE auf Tools-Verweise klicken

Dim strMyPath As String, strDBName As String, strDB As String, strDBNameNew Als String, strDBNew als String

Dim daoDB als DAO.Database, daoDBNew als DAO.Database, daoDBS als DAO.Database

Dim wrkSpaceNew As DAO.Workspace

Dim prpDB als DAO.Property

‘—————

‘DATENBANKNAMEN EINSTELLEN (VORHANDEN & NEU):

‘Ihre Datenquelle, mit der eine Verbindung hergestellt werden soll – Geben Sie den Namen der vorhandenen MS Access-Datenbank ein:

strDBName = “SalesReport.accdb”

‘Pfad / Speicherort der Datenbank abrufen, vermutlich am selben Speicherort wie die Host-Arbeitsmappe:

strMyPath = DieseArbeitsmappe.Pfad

‘Setzen Sie die String-Variable auf die Datenbank:

strDB = strMyPath & “\” & strDBName

‘Name der neu zu erstellenden MS Access-Datenbank:

strDBNameNew = “SalesReportNew.accdb”

‘set the string variable to the new Database:

strDBNew = strMyPath & “\” & strDBNameNew

‘—————

„ERSTELLEN SIE EINEN NEUEN MICROSOFT JET-ARBEITSBEREICH:

‘Erstellen Sie einen neuen Microsoft Jet-Arbeitsbereich mit dem Standardtyp dbUseJet:

Set wrkSpaceNew = DBEngine.CreateWorkspace(“newWS”, “admin”, “”, dbUseJet)

‘den neuen Arbeitsbereich an die Workspaces-Sammlung anhängen:

DBEngine.Workspaces.Append wrkSpaceNew

‘—————

‘ÖFFNEN SIE EINE VORHANDENE DATENBANK:

‘Öffne die Datenbank im Standardarbeitsbereich:

‘Set daoDB = DBEngine.Workspaces(0).OpenDatabase(strDB)

‘Wenn Sie ein Datenbankobjekt öffnen, ohne einen Arbeitsbereich anzugeben, wird es im Standard-Arbeitsbereich existieren:

‘Setze daoDB = DBEngine.OpenDatabase(strDB)

‘Wenn Sie eine Datenbank öffnen, indem Sie ein Arbeitsbereichsobjekt angeben, wird sie innerhalb des angegebenen Arbeitsbereichs existieren:

Setzen Sie daoDB = wrkSpaceNew.OpenDatabase(strDB, True)

‘Alternative:

‘Set daoDB = DBEngine.Workspaces(“newWS”).

OpenDatabase(strDB, False)

‘—————

‘NEUE DATENBANK ERSTELLEN:

‘Wenn Sie ein Datenbankobjekt erstellen, ohne einen Arbeitsbereich anzugeben, wird es im Standard-Arbeitsbereich existieren:

Legen Sie daoDBNew = DBEngine.CreateDatabase(strDBNew, dbLangGeneral) fest

‘alternativ, um eine neue Datenbank zu erstellen und im neuen Workspace-Objekt zu öffnen:

‘Set daoDBNew = wrkSpaceNew.CreateDatabase(strDBNew, dbLangGeneral)

‘—————

‘ZUGRIFF AUF DATENBANKEN IN JEDEM ARBEITSBEREICH (STANDARD UND NEUER ARBEITSBEREICH):

‘Gib die Anzahl der Datenbankobjekte im neuen Arbeitsbereich zurück:

MsgBox “Anzahl der Datenbankobjekte im neuen Arbeitsbereich: ” & wrkSpaceNew.Databases.count

‘auf Datenbanken im neuen Arbeitsbereich zugreifen:

Für jeden daoDBS in wrkSpaceNew.Databases

MsgBox daoDBS.Name

Für jede prpDB in daoDBS.Properties

MsgBox “Eigenschaftsname: ” & prpDB.Name

Nächste prpDB

Nächstes daoDBS

‘Gib die Anzahl der Datenbankobjekte im Standardarbeitsbereich zurück:

MsgBox “Anzahl der Datenbankobjekte im Standardarbeitsbereich: ” & DBEngine.Workspaces(0).Databases.count

‘Auf Datenbanken im Standardarbeitsbereich zugreifen:

Für jeden daoDBS in DBEngine.Workspaces(0).Databases

MsgBox daoDBS.Name

Für jede prpDB in daoDBS.Properties

MsgBox “Eigenschaftsname: ” & prpDB.Name

Nächste prpDB

Nächstes daoDBS

‘—————

‘Objekte schließen:

daoDB.Schließen

daoDBNew.Close

workSpaceNew.Close

‘Zerstöre die Variablen:

Setze daoDB = nichts

Setzen Sie daoDBNew = Nothing

Setze daoDBS = nichts

Legen Sie wrkSpaceNew = nichts fest

Setze prpDB = nichts

end sub Gibt einen Verweis auf die aktuelle Datenbank zurück – CurrentDb-Methode

Verwenden Sie die CurrentDb-Methode, um einen Verweis auf die Datenbank zurückzugeben, die derzeit im Microsoft Access-Fenster aus VBA-Code geöffnet ist

Die Methode gibt ein Datenbankobjekt zurück, ohne dass der Datenbankname angegeben werden muss

Sie können andere DAO-Objekte mit der von dieser Methode zurückgegebenen Datenbankobjektvariablen verwenden

Ein Verweis auf die aktuelle Datenbank wird vom ersten Mitglied der Databases-Auflistung bereitgestellt

Der Verweis auf die aktuelle Datenbank mit der Syntax DBEngine(0)(0) kann ebenfalls verwendet werden, aber diese Syntax bezieht sich auf die offene Kopie der aktuellen Datenbank, wohingegen Sie mit der CurrentDb-Methode „mehrere Datenbankobjektvariablen“ erstellen können, die darauf verweisen in die aktuelle Datenbank, da diese Methode eine neue Instanz der aktuellen Datenbank erstellt, die sie für mehrere Benutzer zugänglich macht

Die Verwendung von CurrentDb ist jedoch viel langsamer als die Verwendung von DBEngine(0)(0)

Beachten Sie, dass mit der OpenDatabase-Methode gleichzeitig eine andere Datenbank geöffnet und bearbeitet werden kann, während die aktuelle Datenbank bereits im Microsoft Access-Fenster geöffnet ist

Beispiel 3: CurrentDb-Methode – gibt einen Verweis auf die aktuell geöffnete Datenbank zurück

)

‘CurrentDb-Methode – gibt einen Verweis auf die aktuell geöffnete Datenbank zurück.

‘Um DAO in Ihrem Excel-VBA-Projekt zu verwenden, müssen Sie einen Verweis auf die DAO-Objektbibliothek in Excel (Ihre Hostanwendung) hinzufügen, indem Sie in VBE auf Extras-Referenzen klicken.

Dim strMyPath als String, strDBName als String, strDB als String

Dim daoCDB1 als DAO.Database, daoCDB2 als DAO.Database, daoDB als DAO.Database

Dim recSet als DAO.Recordset

‘—————

‘MEHRERE INSTANZEN DER DERZEIT IM MICROSOFT ACCESS-FENSTER GEÖFFNETEN DATENBANK ZURÜCKGEBEN:

‘Aktuelle Datenbankreferenz mehreren Objektvariablen vom Typ Datenbank zuweisen:

Setzen Sie daoCDB1 = CurrentDb

Setzen Sie daoCDB2 = CurrentDb

MsgBox daoCDB1.Name

MsgBox daoCDB2.Name

‘refer DAO TableDef Object in current database – Sie müssen zuerst die aktuelle Datenbankreferenz einer Objektvariablen zuweisen (z

B

daoCDB2):

Dim daoTblDef As DAO.TableDef

Dim fld As DAO.Field

Legen Sie daoTblDef = daoCDB2.TableDefs(“SalesManager”) fest

Für jedes Feld in daoTblDef.Fields

MsgBox Feldname

Nächstes Fld

‘—-

‘CurrentDb DIREKT MIT EINEM RECORDSET-OBJEKT VERWENDEN:

‘CurrentDb kann direkt mit einem Recordset-Objekt verwendet werden, während Sie in den meisten anderen DAO-Objekten zuerst die aktuelle Datenbankreferenz wie oben einer Objektvariablen zuweisen müssen

Set recSet = CurrentDb.OpenRecordset(“SalesManager”, dbOpenDynaset)

‘zeigt die ersten 3 Felder des ersten Datensatzes an:

MsgBox recSet.Fields(0)

MsgBox recSet.Fields(1)

MsgBox recSet.Fields(2)

‘—————

‘ÖFFNEN SIE EINE ANDERE DATENBANK NACH DER OpenDatabase-METHODE, UM GLEICHZEITIG WEITER ZU ARBEITEN, WÄHREND DIE AKTUELLE DATENBANK BEREITS IM MICROSOFT ACCESS-FENSTER GEÖFFNET IST:

‘Ihre Datenquelle, mit der eine Verbindung hergestellt werden soll – Geben Sie den Namen der MS Access-Datenbank ein:

strDBName = “SalesReport.accdb”

‘Pfad / Speicherort der Datenbank abrufen, vermutlich am selben Speicherort wie die Host-Arbeitsmappe:

strMyPath = DieseArbeitsmappe.Pfad

‘Setzen Sie die String-Variable auf die Datenbank:

strDB = strMyPath & “\” & strDBName

‘Öffne die Datenbank im Standardarbeitsbereich:

Legen Sie daoDB = DBEngine.OpenDatabase(strDB) fest

MsgBox daoDB.Name

‘—————

‘Objekte schließen:

recSet.Close

daoCDB1.Schließen

daoCDB2.Schließen

daoDB.Schließen

‘Zerstöre die Variablen:

Setzen Sie daoCDB1 = Nichts

Setzen Sie daoCDB2 = nichts

Setze daoDB = nichts

Setzen Sie daoTblDef = nichts

Legen Sie fld = nichts fest

setze recSet = nichts

end sub Tabellen einer DAO-Datenbank

TableDef-Objekt und TableDefs-Auflistung

Ein TableDef-Objekt mit seinen Eigenschaften und Methoden wird verwendet, um eine Tabellendefinition zu manipulieren

Mit einem TableDef-Objekt können Sie: eine neue Tabelle erstellen (Database.CreateTableDef-Methode); ein neues Feld in einer Tabelle erstellen oder hinzufügen (TableDef.CreateField-Methode); Erstellen Sie einen neuen Index (TableDef.CreateIndex-Methode); Erstellen Sie ein neues Recordset und hängen Sie es an die Recordsets-Sammlung an (TableDef.OpenRecordset-Methode); Aktualisieren der Verbindungsinformationen einer verknüpften Tabelle (TableDef.RefreshLink-Methode); Informationen über eine verknüpfte Tabelle setzen oder zurückgeben (TableDef.Connect-Eigenschaft); den Namen einer verknüpften Tabelle setzen oder zurückgeben (ableDef.SourceTableName Property); Validierungswert/-regel für die Daten eines Felds festlegen oder zurückgeben (TableDef.ValidationRule-Eigenschaft); Festlegen oder Zurückgeben der Textnachricht, die angezeigt wird, wenn der Feldwert nicht der ValidationRule (TableDef.ValidationText-Eigenschaft) entspricht; usw

Alle gespeicherten TableDef-Objekte in einer Datenbank werden als TableDefs-Auflistung bezeichnet

Sie erstellen ein neues TableDef-Objekt mit der Database.CreateTableDef-Methode

Es ist erforderlich, ein TableDef-Objekt an die TableDefs-Auflistung anzuhängen, nachdem es erstellt wurde, indem die DAO-Methode TableDefs.Append verwendet wird

See also  Top mietspiegel bad vilbel New Update

Sie können auf ein TableDef-Objekt in der TableDefs-Auflistung über seine Ordnungszahl oder seinen Namen verweisen, nämlich

TableDefs(0) oder TableDefs(“TableDefObjectName”) oder TableDefs![TableDefObjectName].

Database.CreateTableDef Method

Verwenden Sie die Database.CreateTableDef-Methode, um ein neues TableDef-Objekt zu erstellen

Syntax: DatabaseObject.CreateTableDef(Name, Attribute, SourceTableName, Connect)

Alle Argumente können optional angegeben werden

Das Name-Argument legt den Namen des TableDef-Objekts fest, der maximal 64 Zeichen lang sein darf

Das Attributes-Argument setzt einen Wert, der Charakteristik(en) des TableDef-Objekts angibt

Die Attributes-Eigenschaft ist Lese-/Schreibzugriff für ein TableDef-Objekt, bis es an seine Sammlung angehängt wird

Das SourceTableName-Argument gibt den Namen einer verknüpften oder der Basistabelle an, die die ursprüngliche Datenquelle in einer externen Datenbank ist

Das Connect-Argument ist ein String-Wert, der Informationen über die verknüpfte Tabelle eines TableDef-Objekts oder eine offene Datenbankquelle bereitstellt, bestehend aus einem Datenbanktypbezeichner und einem Datenbankpfad

Beachten Sie, dass mindestens ein Feld definiert werden muss, bevor Sie a anhängen können TableDef-Objekt in die TableDefs-Auflistung

Verwenden Sie die TableDefs.Delete-Methode, um ein TableDef-Objekt aus der TableDefs-Sammlung zu löschen

Felder / Spalten einer Tabelle

Ein Feldobjekt entspricht einer Datenspalte mit ähnlichem Datentyp und ähnlichen Eigenschaften

Die Objekte Index, QueryDef, Relation und TableDef haben alle eine Fields-Sammlung, die alle gespeicherten Field-Objekte darstellt, wie sie im jeweiligen Objekt angegeben sind

Das Recordset-Objekt hat auch eine Fields-Sammlung, die alle gespeicherten Field-Objekte in einem Datensatz oder einer Datenzeile darstellt

Ein Feldobjekt hat seine eigenen Eigenschaften und Methoden, mit denen es manipuliert wird

Erstellen Sie ein neues Feld

TableDef.CreateField-Methode

Verwenden Sie die TableDef.CreateField-Methode, um ein neues Field-Objekt zu erstellen

Syntax: TableDefObject.CreateField(Name, Typ, Größe)

Alle Argumente können optional angegeben werden

Das Name-Argument gibt einen Namen für das neue Feld an

Das Type-Argument legt den Datentyp des Felds fest, wie durch eine Konstante angegeben

Das Argument Größe bestimmt die maximale Größe eines Felds

Bei einem Feld mit Zeichendaten (außer Memo) bestimmt die Größe die maximale Anzahl von Zeichen; bei numerischen Feldern ist dies die maximale Größe in Byte (des Speichers)

Textfelder können für eine Microsoft Access-Datenbank auf maximal 255 Zeichen eingestellt werden, während bei Nicht-Textfeldern die Größe automatisch durch ihre Type-Eigenschaft bestimmt wird

Wenn Sie die Größe nicht angeben, wird die Feldgröße standardmäßig so eingestellt, wie sie von der Datenbank zugelassen wird

Verwenden Sie für Memo- oder lange binäre Felder die Field.FieldSize-Eigenschaft, um die Größe in der Anzahl der in der Datenbank verwendeten Bytes zu bestimmen, während Sie die Size-Eigenschaft für alle anderen Felddatentypen verwenden.

Sie können die CreateField-Methode verwenden, um einem Index- oder Beziehungsobjekt ein neues Feld hinzuzufügen

Verwenden Sie zum Hinzufügen eines Felds zu einem Indexobjekt die DAO-Methode Index.CreateField, Syntax: IndexObject.CreateField(Name, Typ, Größe)

Die Argumente Typ und Größe werden für ein Indexobjekt nicht unterstützt und in diesem Fall ignoriert

Verwenden Sie zum Hinzufügen eines Felds zu einem Beziehungsobjekt die DAO-Methode Relation.CreateField, Syntax: RelationObject.CreateField(Name, Typ, Größe)

Die Argumente Typ und Größe werden für ein Beziehungsobjekt nicht unterstützt und in diesem Fall ignoriert

Eigenschaften und Methoden der Feldsammlung

Zählen Sie die Anzahl der Felder

Die Eigenschaft Count der Sammlung fields bestimmt die Anzahl der Felder in einer Sammlung, wobei die Nummerierung für Mitglieder einer Sammlung bei Null beginnt

Wenn Sie sieben Felder in einem Recordset haben, gibt die Verwendung von RecordsetObject.Fields.count 7 zurück, und RecordsetObject.Fields(0) gibt den Wert des ersten Felds zurück [OrdinalPosition des ersten Felds ist 0]

Greifen Sie auf Felder nach ihrer Ordnungszahl zu Positions- oder Namenseigenschaft

Sie können auf Felder über ihre Ordnungsposition oder Namenseigenschaft zugreifen, nämlich

Recordset.Fields.(Name/OrdinalPosition)

Recordset.Fields(0).Name gibt den Namen des ersten Felds zurück, und Recordset.Fields(0).Value gibt den Inhalt des ersten Felds zurück

Die Value-Eigenschaft des Field-Objekts ist seine Default-Eigenschaft, d

h

Recordset.Fields(0) ist dasselbe wie Recordset.Fields(0).Value und gibt den Wert des ersten Felds zurück

Beispiele: Um auf ein Feld mit dem Namen „FirstName“ zu verweisen, Dies ist das zweite Feld in der Tabelle

Sie können Folgendes verwenden:-

RecordsetObject.Fields(“Vorname”)

RecordsetObject.Fields(1)

RecordsetObject![Vorname]

DAO Fields.Append-Methode

Verwenden Sie die Fields.Append-Methode von DAO, um der Fields-Auflistung eines TableDef- oder Index-Objekts ein neues Feld hinzuzufügen oder daran anzuhängen

Verwenden Sie zum Hinzufügen eines Felds zu einer Tabelle die Syntax: TableDefObject.Append(FieldObject)

Um einem Index ein Feld hinzuzufügen, verwenden Sie die Syntax: IndexObject.Append(FieldObject)

Das FieldObject-Argument erwähnt die Feldobjekt-Variable, die angehängt wird und angegeben werden muss.

DAO Fields.Delete-Methode

Um ein Feld aus der Fields-Auflistung zu löschen, verwenden Sie die DAO Fields.Delete-Methode

Um ein Feld aus einer Tabelle zu löschen, verwenden Sie die Syntax: TableDefObject.Fields.Delete(Name)

Das Name-Argument erwähnt den Namen des zu löschenden Felds und muss angegeben werden

Beachten Sie, dass sobald ein Index erstellt wurde, der auf ein Feld verweist, dieses Feld nicht aus einer Fields-Auflistung eines TableDef-Objekts gelöscht werden kann

DAO Fields.Refresh-Methode

Die relative Position eines Field-Objekts innerhalb der Fields-Sammlung ist normalerweise die Reihenfolge, in der das Feld an die Sammlung angehängt wurde, das erste angefügte Feld an der ersten Position hat eine OrdinalPosition von 0 (Null), das zweite angefügte Feld an der zweiten Position hat eine OrdinalPosition von 1 usw., und diese Position kann mithilfe der DAO-Eigenschaft Field.OrdinalPosition geändert (oder zurückgegeben) werden

Eine Änderung der Ordnungsposition eines Felds ändert möglicherweise nicht die Reihenfolge der Felder in der Sammlung, es sei denn, es handelt sich um DAO-Felder

Refresh-Methode wird verwendet

Die Aktualisierungsmethode ist insbesondere für die Verwendung in einer Umgebung mit mehreren Benutzern erforderlich, in der verschiedene Benutzer möglicherweise Änderungen an der Datenbank vornehmen

In diesem Fall sind nur die Objekte enthalten, wenn Sie anfänglich auf die Sammlung verwiesen haben, ohne dass spätere Änderungen von anderen widergespiegelt werden Benutzer, und die Sammlung wird nur bei Verwendung der Refresh-Methode aktualisiert

Field Object Properties

Feldeigenschaften werden verwendet, um den Namen, die Größe, den Typ und die Eigenschaften eines Felds zu bestimmen oder zurückzugeben

Einige dieser Eigenschaften werden weiter unten näher erläutert

DAO Field.Name-Eigenschaft

Verwenden Sie die DAO Field.Name-Eigenschaft, um den Namen eines Felds festzulegen oder zurückzugeben

Es ist ein Zeichenfolgenwert, der 64 Zeichen nicht überschreitet

Die Eigenschaft ist schreibgeschützt, nachdem das Field-Objekt an die Fields-Auflistung angehängt wurde, bevor sie gelesen/geschrieben wird

DAO Field.Value-Eigenschaft

Verwenden Sie die Field.Value-Eigenschaft, um die Daten in einem Feld zurückzugeben, einzugeben oder zu bearbeiten

Dies ist die Standardeigenschaft eines Field-Objekts, nämlich

Sie können auf ein Feldobjekt verweisen, ohne die value-Eigenschaft anzugeben

Beispielsweise kann die Eingabe von „Lisa“ in das Feld mit dem Namen „FirstName“ entweder als RecordSetObject.Fields(“FirstName“) = „Lisa“ oder als RecordSetObject.Fields(“FirstName“).Value = „Lisa“.

DAO erfolgen Field.OrdinalPosition-Eigenschaft

Die relative Position eines Field-Objekts innerhalb der Fields-Sammlung ist normalerweise die Reihenfolge, in der das Feld an die Sammlung angehängt wurde, das erste angefügte Feld an der ersten Position hat eine OrdinalPosition von 0 (Null), das zweite angefügte Feld an der zweiten Position hat eine OrdinalPosition von 1 usw., und diese Position kann mithilfe der DAO-Eigenschaft Field.OrdinalPosition geändert (oder zurückgegeben) werden

Beachten Sie, dass diese Eigenschaft “relative Position” verwendet, sodass, wenn Sie 3 Felder haben und Sie die OrdinalPosition-Eigenschaft dieser Felder auf 10, 12 und 15 ändern, das Feld mit dem OrdinalPosition-Wert 12 in einer Reihenfolge relativ zu den anderen zurückgegeben wird

dh

zwischen den Feldern, deren Werte auf 10 und 15 festgelegt wurden

Die Eigenschaft ist für ein Field-Objekt schreib- und lesbar, bevor sie an eine Fields-Auflistung angehängt wird

Nachdem ein Field-Objekt angehängt wurde, ist es für Fields, die in einem TableDef-Objekt enthalten sind, schreibgeschützt, und für Felder, die in Recordset- oder QueryDef-Objekten enthalten sind, ist es schreibgeschützt, aber die Eigenschaft wird nicht für Felder unterstützt, die in Index & Relation-Objekten enthalten sind

.DAO Field.Size-Eigenschaft

Die Field.Size-Eigenschaft bestimmt die maximale Größe eines Felds

Bei einem Feld mit Zeichendaten (außer Memo) bestimmt die Größe die maximale Anzahl von Zeichen; bei numerischen Feldern ist dies die maximale Größe in Byte (des Speichers)

Für Textfelder müssen Sie die Size-Eigenschaft festlegen, die für eine Microsoft Access-Datenbank auf maximal 255 Zeichen eingestellt werden kann, während bei Nicht-Textfeldern die Größe automatisch durch ihre Type-Eigenschaft bestimmt wird

Wenn Sie die Größe nicht angeben, wird die Feldgröße standardmäßig so eingestellt, wie sie von der Datenbank zugelassen wird

Verwenden Sie für Memo- oder lange Binärfelder die Field.FieldSize-Eigenschaft, um die Größe in der Anzahl der in der Datenbank verwendeten Bytes zu bestimmen, während Sie die Size-Eigenschaft für alle anderen Field-Datentypen verwenden

Die Eigenschaft ist zuvor für ein Field-Objekt schreib- und lesbar es wird an eine Fields-Auflistung angehängt

Nachdem ein Field-Objekt angehängt wurde, wird die Eigenschaft für Fields unterstützt, die in einem TableDef-Objekt, Recordset-Objekt oder QueryDef-Objekt enthalten sind, wobei sie schreibgeschützt ist, aber die Eigenschaft wird nicht für Felder unterstützt, die in Index & Relation-Objekten enthalten sind

DAO-Feld. Eigenschaft eingeben

Verwenden Sie die Type-Eigenschaft, um den Betriebs- oder Datentyp eines Felds festzulegen oder zurückzugeben

Der von dieser Eigenschaft zurückgegebene Wert ist eine Konstante, die den Datentyp eines Felds angibt

Die Eigenschaft ist schreibgeschützt, nachdem das Field-Objekt an die Fields-Auflistung oder an ein beliebiges Objekt angehängt wurde, vor dem es gelesen/geschrieben wird

Beispiele für Datentypkonstanten, die von DAO für die Type-Eigenschaft unterstützt werden, sind:

dbBoolean (Boolescher Wert – Ja/Nein); dbChar (Zeichen); dbCurrency (Währung); dbDate(Datum); dbDouble (Double); dbGUID (GUID); dbInteger (Ganzzahl); dbBigInt (große ganze Zahl); dbSingle (Single); dbLong (lang); dbMemo (Memo); dbText(Text);. …

DAO Field.Attributes-Eigenschaft

Verwenden Sie die DAO Field.Attributes-Eigenschaft, um die Feldeigenschaften festzulegen (oder zurückzugeben)

Die Feldcharakteristik(en) wird/werden durch einen Wert oder eine Konstante angegeben, die sein können: dbAutoIncrField (um den Feldwert automatisch auf eine eindeutige Long-Ganzzahl zu inkrementieren); dbDescending (zum Sortieren von Feldwerten in absteigender Reihenfolge – die Standardsortierreihenfolge für ein Feld ist aufsteigend, wenn dieses Attribut nicht angegeben ist – dieses Attribut gilt nur für ein Indexfeld, dh für die Feldsammlung eines Index); dbFixedField (dbFixedField gibt an, dass das Feld eine feste Größe hat – numerische Felder haben standardmäßig eine feste Feldgröße – werden dem ADO-Spaltenattribut adColFixed zugeordnet); dbVariableField (nur für Textfelder gültig, es spezifiziert eine variable Feldgröße, dh das Feld vom Datentyp Text kann variable Textlängen speichern); dbUpdateableField (wenn der Feldwert aktualisiert oder geändert werden kann); dbHyperlinkField (Hyperlink-Feld, nur gültig für Memo-Feldtypen); dbSystemField (diese Felder können nicht gelöscht werden)

Um ein Feld mit automatischer Inkrementierung zu erstellen, setzen Sie den Datentyp des Felds auf Long und die Attributes-Eigenschaft auf dbAutoIncrField

Ein Auto-Increment-Feld (auch als AutoNumber-Feld bezeichnet) beginnt standardmäßig bei 1 und erhöht sich sequenziell und kann passend als Primärschlüsselfeld verwendet werden, um automatisch eindeutige Zahlen in ein Feld einzufügen

Mehrere Attribute festlegen – die jeweiligen Konstanten summieren ( Verwenden des Pluszeichens „+“), um mehrere Attribute festzulegen, wobei alle nicht bedeutungsvollen Werte ignoriert werden, ohne dass ein Fehler ausgegeben wird

Diese Eigenschaft wird für ein Feld gelesen/geschrieben, bevor sie an eine Sammlung angehängt wird

Für ein Field-Objekt, nachdem es an eine Sammlung angehängt wurde: Für Fields, die in einem TableDef-Objekt enthalten sind, ist die Eigenschaft read/write; für Felder, die in einem Index-Objekt enthalten sind, bleibt diese Eigenschaft schreibgeschützt, bis das TableDef-Objekt, das das Index-Objekt enthält, an eine Datenbank angehängt wird und danach schreibgeschützt ist; für Felder, die in einem Recordset- oder QueryDef-Objekt enthalten sind, ist die Eigenschaft schreibgeschützt; Für Felder, die in einem Beziehungsobjekt enthalten sind, wird diese Eigenschaft nicht unterstützt

DAO Field.DefaultValue-Eigenschaft

Verwenden Sie die Field.DefaultValue-Eigenschaft, um den Standardwert anzugeben, der beim Erstellen eines neuen Datensatzes automatisch in ein Feld eingegeben werden soll

Als Standardwert kann ein Text oder ein Ausdruck vom Datentyp String mit maximal 255 Zeichen angegeben werden

Für AutoWert- und Long Binary-Felder ist diese Eigenschaft nicht anwendbar

Die Eigenschaft ist für ein Field-Objekt schreib- und lesbar, bevor sie an eine Fields-Auflistung angehängt wird

Nachdem ein Field-Objekt angehängt wurde, ist es für Fields, die in einem TableDef-Objekt enthalten sind, schreibgeschützt, und für Felder, die in Recordset- oder QueryDef-Objekten enthalten sind, ist es schreibgeschützt, aber die Eigenschaft wird nicht für Felder unterstützt, die in Index & Relation-Objekten enthalten sind

.DAO-Feld.Erforderliche Eigenschaft

Das Feld

Erforderliche Eigenschaft bestimmt, ob ein Feld Nullwerte akzeptieren kann

Wenn Sie die Eigenschaft auf False setzen, werden Nullwerte im Feld zugelassen

Legen Sie zwischen einem Index-Objekt und einem Field-Objekt die Eigenschaft Required für das Field-Objekt fest, da seine Validierung für das Field-Objekt der eines Index-Objekts vorausgeht

Nachdem ein Field-Objekt angehängt wurde, ist es für Fields, die in einem TableDef-Objekt enthalten sind, schreibgeschützt, und für Felder, die in Recordset- oder QueryDef-Objekten enthalten sind, ist es schreibgeschützt, aber die Eigenschaft wird nicht für Felder unterstützt, die in Index & Relation-Objekten enthalten sind

.DAO Field.AllowZeroLength-Eigenschaft

Wenn Sie die Field.AllowZeroLength-Eigenschaft auf True setzen, kann der Wert für Felder vom Datentyp Text oder Memo auf eine leere oder leere Zeichenfolge (“”) gesetzt werden

Zeichenfolge mit Nulllänge vs

Nullwert: Beachten Sie, dass in Access die Angabe einer Zeichenfolge mit Nulllänge bedeutet, dass Sie tatsächlich einen Wert angeben, und wenn Sie die Eigenschaft „Erforderlich“ auf „True“ setzen, bedeutet dies, dass das Feld einen Nullwert haben kann, was bedeutet, dass dies der Fall ist Es muss KEIN Wert eingegeben werden – für den Benutzer gibt es keinen sichtbaren Unterschied zwischen den beiden.

Die Eigenschaft ist für ein Field-Objekt schreib- und lesbar, bevor sie an eine Fields-Auflistung angehängt wird

Nachdem ein Field-Objekt angehängt wurde, ist es für Fields, die in einem TableDef-Objekt enthalten sind, schreibgeschützt, und für Felder, die in Recordset- oder QueryDef-Objekten enthalten sind, ist es schreibgeschützt, aber die Eigenschaft wird nicht für Felder unterstützt, die in Index & Relation-Objekten enthalten sind

.DAO Field.ValidationRule-Eigenschaft

Verwenden Sie die Field.ValidationRule-Eigenschaft, um die Daten eines Felds mit einer bestimmten Regel oder Bedingung zu validieren

Die Eigenschaft gibt einen Zeichenfolgenwert als Vergleich wie in einer WHERE-Klausel (wie sie in SQL-Anweisungen verwendet wird) an, verwendet jedoch nicht das WHERE-Wort

Wenn der Feldwert nicht der angegebenen Regel oder Bedingung entspricht, wird die Fehlermeldung (ein Zeichenfolgenwert) wie von der ValidationText-Eigenschaft angegeben angezeigt

Nur Datenbanken, die das Microsoft Access-Datenbankmodul verwenden, unterstützen die Validierung

Die Eigenschaft ist für ein Field-Objekt schreib- und lesbar, bevor sie an eine Fields-Auflistung angehängt wird

Nachdem ein Field-Objekt angehängt wurde, ist es für Fields, die in einem TableDef-Objekt enthalten sind, schreibgeschützt, und für Felder, die in Recordset- oder QueryDef-Objekten enthalten sind, ist es schreibgeschützt, aber die Eigenschaft wird nicht für Felder unterstützt, die in Index & Relation-Objekten enthalten sind

.DAO Field.ValidationText-Eigenschaft

Validierungstext gibt die Fehlermeldung (ein Zeichenfolgenwert) an, die angezeigt wird, wenn der Wert des Felds nicht der angegebenen Regel oder Bedingung entspricht, die durch die ValidationRule-Eigenschaft angegeben wird Fields-Auflistung

Nachdem ein Field-Objekt angehängt wurde, ist es für Fields, die in einem TableDef-Objekt enthalten sind, schreibgeschützt, und für Felder, die in Recordset- oder QueryDef-Objekten enthalten sind, ist es schreibgeschützt, aber die Eigenschaft wird nicht für Felder unterstützt, die in Index & Relation-Objekten enthalten sind

.Beispiel 4a: Erstellen Sie Tabellen und Felder in einer DAO-Datenbank.

Siehe Bild 4a, wie im Code erwähnt.

1

Erstellen Sie eine neue Datenbank;

2

Tabellen erstellen und anhängen (z

B

TableDef-Objekte);

3

Felder erstellen und anhängen;

4

Tabellen in der Datenbank und ihre Eigenschaften aufzählen;

5

Felder in einer Tabelle aufzählen;

6

Felder & Tabellen löschen;

SubAccessDAO_CreateTablesCreateFields_4a()

‘Neue Datenbank erstellen;

‘Tabellen erstellen und anhängen (z

B

TableDef-Objekte);

‘Felder erstellen und anhängen;

‘Tabellen in der Datenbank und ihre Eigenschaften auflisten;

‘Felder in einer Tabelle aufzählen;

‘Felder & Tabellen löschen;

„Um DAO in Ihrem Excel-VBA-Projekt zu verwenden, müssen Sie einen Verweis auf die DAO-Objektbibliothek in Excel (Ihre Hostanwendung) hinzufügen, indem Sie in VBE auf Tools-Referenzen klicken

Dim strMyPath As String, strDBName As String, strDB As String

Dim daoDB als DAO.Datenbank

Dim daoTD als DAO.TableDef, daoTD1 als DAO.TableDef, daoTD2 als DAO.TableDef

Dim daoFld As DAO.Field

Dim daoPrp As DAO.Property

‘—————

‘Pfad / Speicherort der Datenbank abrufen, vermutlich am selben Speicherort wie die Host-Arbeitsmappe:

strMyPath = DieseArbeitsmappe.Pfad

‘Name der neu zu erstellenden MS Access-Datenbank:

strDBName = “SalesReportNew.accdb”

‘set the string variable to the new Database:

strDB = strMyPath & “\” & strDBName

‘—————

‘EINE NEUE MS ACCESS DATENBANK, TABELLEN UND FELDER ERSTELLEN:

„Beziehen Sie sich auf Bild 4a, um Tabellen und Felder (in der „SalesManager“-Tabelle) der neuen Datenbank („SalesReportNew.accdb“) anzuzeigen, nachdem Sie den folgenden Code ausgeführt haben, bevor Sie eine Tabelle oder ein Feld löschen

„Erstellen Sie eine neue Datenbank: Wenn Sie eine Datenbankobjekt, ohne einen Arbeitsbereich anzugeben, wird es innerhalb des Standardarbeitsbereichs existieren:

Legen Sie daoDB = DBEngine.CreateDatabase(strDB, dbLangGeneral) fest

‘Erstellen Sie Tabellen (d

h

TableDef-Objekte) mit den Namen “SalesManager” und “Performance”:

Setzen Sie daoTD1 = daoDB.CreateTableDef(“SalesManager”)

Setzen Sie daoTD2 = daoDB.CreateTableDef(“Leistung”)

‘Bevor Sie das TableDef-Objekt an die TableDefs-Sammlung anhängen, erstellen Sie Fields und hängen sie an das oben erstellte neue TableDef-Objekt (Tabelle mit dem Namen “SalesManager”) an:

Mit daoTD1

‘erstellen Sie ein neues Auto-Inkrement-Feld und legen Sie die Attribute fest:

‘Datentyp des Feldes auf Long setzen, Eigenschaft Attribute auf dbAutoIncrField setzen

Ein Auto-Increment-Feld (auch als AutoNumber-Feld bezeichnet) beginnt standardmäßig bei 1 und erhöht sich sequenziell und kann passend als Primärschlüsselfeld verwendet werden, um automatisch eindeutige Zahlen in ein Feld einzufügen “, dbLong)

.Fields(“EmployeeId”).Attributes = dbAutoIncrField + dbFixedField

‘Erstelle ein Textfeld, maximal 30 Zeichen und erforderlich.

Set daoFld =. CreateField(“FirstName”, dbText, 30)

daoFld.Attributes = dbVariableField

daoFld.Required = True

.Fields.DaoFld anhängen

‘Textfeld, Länge Null zulassen und maximal 25 Zeichen:

.Fields.Append. CreateField(“Nachname”, dbText, 25)

.Fields(“Nachname”).Required = True

.Fields(“Nachname”).AllowZeroLength = True

‘Erstellen Sie ein Datumsfeld mit einer Validierungsregel und einem Validierungstext:

Setzen Sie daoFld =. CreateField(“JoinDate”, dbDate)

‘einen Standardwert für das Feld angeben:

daoFld.DefaultValue = “#04/01/2010#”

‘bestätige den Wert des Feldes, bevor er festgelegt wird, mit einer bestimmten Regel oder Bedingung:

daoFld.ValidationRule = “>=#04/01/2010# und <=date()"

‘Geben Sie die Fehlermeldung an, die angezeigt wird, wenn der Wert des Felds nicht der angegebenen Regel oder Bedingung entspricht:

daoFld.ValidationText = “JoinDate sollte am oder nach dem 01.04.2010, aber innerhalb des aktuellen Datums liegen.”. Fields.DaoFld anhängen

‘Währungsfeld und erforderlich:

.Fields.Append. CreateField(“Sales”, dbCurrency)

.Fields(“Verkäufe”).Required = True

‘boolesches (Ja/Nein) Feld erstellen:

.Fields.Append. CreateField(“NewJoinee?”, dbBoolean)

‘Erstelle ein Hyperlink-Feld und setze das Attribut:

Setzen Sie daoFld =. CreateField(“WebProfile”, dbMemo)

daoFld.Attributes = dbHyperlinkField + dbVariableField

.Fields.DaoFld anhängen

Ende mit

Setzen Sie daoFld = nichts

‘Bevor Sie das TableDef-Objekt an die TableDefs-Sammlung anhängen, erstellen Sie Felder und hängen sie an das oben erstellte neue TableDef-Objekt (Tabelle mit dem Namen “Performance”) an:

Mit daoTD2

.Fields.Append. CreateField(“Vorname”, dbText)

Ende mit

‘Tabellen “SalesManager” & “Performance” an die TableDefs-Sammlung speichern/anhängen:

daoDB.TableDefs.Append daoTD1

daoDB.TableDefs.Append daoTD2

‘—————

‘DATENBANKTABELLEN UND -EIGENSCHAFTEN AUFZÄHLEN:

‘Anzahl der Tabellen in der Datenbank zurückgeben:

MsgBox daoDB.TableDefs.count

‘Tabellen in der Datenbank und ihre Eigenschaften auflisten:

Für jedes daoTD in daoDB.TableDefs

‘Verwenden Sie die Attributes-Eigenschaft, um System- und versteckte Tabellen zu ignorieren

Das Attributes-Argument gibt einen Wert zurück oder setzt einen Wert, der Charakteristik(en) des TableDef-Objekts angibt

Beachten Sie, dass wir zum Prüfen eines bestimmten Attributs den logischen UND-Operator zum Vergleichen verwendet haben von: (i) der TableDef Attributes-Eigenschaft und der dbSystemObject-Konstante; und (ii) die TableDef Attributes-Eigenschaft und die dbHiddenObject-Konstante

Alternativ können Sie einen Äquivalenztest mit numerischen Werten der Konstanten durchführen

If ((daoTD.Attributes And dbSystemObject) Or (daoTD.Attributes And dbHiddenObject)) Then

sonst Für jeden daoPrp In daoTD.Properties

MsgBox “Tabellenname: ” & daoTD.Name & ” – Eigenschaftsname: ” & daoPrp.Name & “, Eigenschaftstyp: ” & daoPrp.Typ & “, Eigenschaftswert: ” & daoPrp.Wert

Nächste

Ende Wenn

‘Alternative If-Anweisung zum Ignorieren von System- und versteckten Tabellen: Die dbSystemObject-Konstante hat einen numerischen Wert von -2147483646; Die dbHiddenObject-Konstante hat einen numerischen Wert von 1;

‘If daoTD.Attributes >= 0 And daoTD.Attributes <> 1 Then

‘MsgBox “Tabellenname: ” & daoTD.Name

‘Ende Wenn

Nächste

‘—————

‘TABELLENFELDER AUFZÄHLEN:

‘Anzahl der Felder in der Tabelle “SalesManager” zurückgeben:

MsgBox daoTD1.Fields.count

‘Felder aufzählen und ihren Namen, Typ und ihre Größe in der Tabelle mit dem Namen “SalesManager” zurückgeben:

Für jedes daoFld in daoTD1.Fields

MsgBox daoFld.Name & “, ” & daoFld.Type & “, ” & daoFld.Size

Nächste

‘—————

‘FELDER UND TABELLEN IN DATENBANK LÖSCHEN:

‘Ein Feld in der Tabelle mit dem Namen “SalesManager” löschen:

‘daoTD1.Fields.Löschen Sie “Nachname”

‘Lösche die oben erstellte Tabelle (TableDef-Objekt) mit dem Namen “Performance”:

‘daoDB.TableDefs.DaoTD2.Name löschen

‘oder

daoDB.TableDefs.Delete “Leistung”

‘—————

‘Objekte schließen:

daoDB.Schließen

‘Zerstöre die Variablen:

Setze daoDB = nichts

Setzen Sie daoTD = nichts

Setzen Sie daoTD1 = Nichts

Setzen Sie daoTD2 = Nichts

Setzen Sie daoFld = nichts

Setzen Sie daoPrp = nichts

end sub Recordset & Records einer DAO-Datenbanktabelle

Nachdem Sie sich mit einer Datenbank verbunden haben, können Sie ihre Daten manipulieren

In Microsoft Access werden Recordset-Objekte verwendet, um auf Daten in einer Datenbank zuzugreifen und diese zu bearbeiten

Ein Recordset-Objekt stellt eine Reihe von Datensätzen in einer Datenbanktabelle oder eine Reihe von Datensätzen dar, die von der Ausführung einer Abfrage zurückgegeben werden

Sowohl DAO- als auch ADO-Bibliotheken haben ein Recordset-Objekt, obwohl die Methoden, Eigenschaften und Optionen des jeweiligen Objekts unterschiedlich sind

Ein Record-Objekt ist eine Datenzeile in einem Recordset

Ein Recordset-Objekt hat eine Fields-Sammlung, die alle Field-Objekte enthält, wobei jedes Field-Objekt eine Spalte im Recordset darstellt

Mit anderen Worten, jeder Datensatz stellt eine Datenzeile dar und enthält viele Felder, und jedes Feld entspricht einer Spalte in der Datenbanktabelle

In Ihrem VBA-Code sollten Sie dem Objektnamen idealerweise das Präfix seiner Programm-ID (ProgID) voranstellen, was in ADO “ADODB” und in DAO “DAO” ist

Viele Objekte, zum Beispiel das Recordset-Objekt, haben ähnliche Namen in DAO und ADO, und es ist ratsam, explizite Referenzen in Ihrem Projekt zu haben

Dies ist ein Muss, wenn Sie Verweise auf die DAO- und ADO-Bibliotheken in Ihr VBA-Projekt aufgenommen haben, da sonst die zuerst in der Verweisliste erwähnte Objektbibliothek Vorrang hat, was zu Verwirrung im VBA-Code führt sollte nutzen:

Dim daoRecSet als DAO.Recordset

Dim adoRecSet als ADODB.Recordset

anstatt:

Dim RecSet als Recordset

DAO-Recordset-Typen

Es gibt fünf Arten von Recordsets:

1

Ein Datensatz vom Typ Tabelle basiert auf einer Tabelle und nicht auf einer Abfrage

Ein Datensatz vom Typ Tabelle wird nur erstellt, wenn mit einer einzelnen nicht verknüpften Tabelle gearbeitet wird

Nur gültig für Microsoft Access Jet-Arbeitsbereiche

Sie können die Seek-Methode (aber nicht die Find-Methode) verwenden, um dieses Recordset zu durchsuchen (unter Verwendung eines Tabellenindex), was schneller ist als die Verwendung der Find-Methode

2

Ein Dynaset-Type-Recordset ergibt sich aus einer Abfrage

Der Satz von Datensätzen kann Felder aus einer oder mehreren zugrunde liegenden Tabellen oder einer beliebigen verknüpften Tabelle (d

h

einer beliebigen mit der Access-Datenbank verknüpften Tabelle) enthalten

Das Recordset wird dynamisch aktualisiert und spiegelt alle Änderungen wider, die an den zugrunde liegenden Datensätzen vorgenommen wurden

Nachdem das Recordset erstellt wurde, fügt es keinen neuen Datensatz hinzu, der die Kriterien erfüllt

Dieser Recordset-Typ unterstützt die Find-Methode (aber nicht die Seek-Methode), um das Recordset zu durchsuchen, was jedoch langsamer als die Seek-Methode ist

wenn ein Datensatz erstellt wird

Der Satz von Datensätzen kann Felder aus einer oder mehreren zugrunde liegenden Tabellen oder einer beliebigen verknüpften Tabelle enthalten

Dieser Datensatztyp ist eine statische Kopie der Datensätze und wird nicht dynamisch aktualisiert und spiegelt keine Änderungen wider, die an den zugrunde liegenden Datensätzen vorgenommen wurden

Wenn ein Feldwert in einem Datensatz geändert wird, wird er nicht dynamisch aktualisiert, wie dies in einem Datensatz vom Typ Dynaset der Fall ist, und Sie müssen den Datensatz aktualisieren, um ihn zu aktualisieren

Dieser Recordset-Typ wird zum Lesen von Daten verwendet, und das Durchsuchen dieses Recordsets ist sehr schnell

Dieser Recordset-Typ unterstützt die Find-Methode zum Durchsuchen des Recordsets

4

Ein Recordset vom Typ „Forward-only“ ist identisch mit einem Snapshot-Typ, bei dem nur vorwärts durch die Datensätze gescrollt werden kann

5

Ein Recordset vom Typ „Dynamic“ ergibt sich aus a Abfrage aus einer oder mehreren zugrunde liegenden Tabellen

In diesem Recordset können Sie Datensätze aus einer Zeilen zurückgebenden Abfrage hinzufügen, ändern oder löschen

Dieses Recordset ähnelt dem Dynaset-Typ, außer dass nach dem Ausführen einer Abfrage die übereinstimmenden Datensätze, die von anderen Benutzern in den zugrunde liegenden Tabellen hinzugefügt, gelöscht oder bearbeitet wurden, ebenfalls automatisch im Recordset dieses Typs widergespiegelt werden

Nur gültig für ODBC Direct-Arbeitsbereiche.

Alle aktiven Recordsets einer Datenbank sind in der Recordsets-Sammlung enthalten, wobei ein Recordset beim Öffnen an die Sammlung angehängt und beim Schließen (mithilfe der Close-Methode) aus der Sammlung entfernt wird

Jedes Recordset-Objekt enthält eine Auflistung der Felder und eine Auflistung der Indizes in der zugrunde liegenden Tabelle.

DAO Recordset.Type-Eigenschaft

Verwenden Sie die Recordset.Type-Eigenschaft, um den Typ von Recordset festzulegen oder zurückzugeben, indem Sie die RecordsetTypeEnum-Konstanten oder -Werte verwenden

Es gibt fünf Einstellungen: dbOpenTable (Wert-1, Tabellentyp, nur für Microsoft Access-Arbeitsbereiche); dbOpenDynaset(Wert-2, Dynaset-Typ); dbOpenSnapshot(Wert-4, Snapshot-Typ); dbOpenForwardOnly (Wert-8, Nur-Weiterleitungstyp); dbOpenDynamic (Wert-16, dynamischer Typ, nur für ODBCDirect-Arbeitsbereiche)

Erstellen Sie ein neues Recordset-Objekt

Erstellen Sie ein Recordset-Objekt und fügen Sie es mithilfe der OpenRecordset-Methode an die Recordsets-Auflistung an

Sie können die OpenRecordset-Methode verwenden, um ein Recordset zu öffnen, das auf einer Tabelle, einer SQL-Anweisung, einer gespeicherten oder einer Parameterabfrage basiert, wie unten beschrieben

Argumente haben in allen OpenRecordset-Methoden dieselbe Bedeutung.

See also  Best Choice illustrator skalieren proportionen beibehalten New Update

DAO Database.OpenRecordset-Methode

Syntax: DatabaseObject.OpenRecordset(Name, Typ, Optionen, LockEdit)

In dieser Methode übergeben Sie den Tabellennamen an die Methode und verwenden den Set-Operator, um das Recordset zurückzugeben

Nur das Name-Argument muss angegeben werden, während andere Argumente optional sind

Das Argument Name gibt die Quelle der Datensätze an und kann der Name einer Tabelle oder einer Abfrage oder eine SQL-Anweisung sein

Geben Sie im Type-Argument einen der fünf Typen für das Recordset an, indem Sie die Konstanten verwenden: dbOpenTable (Table-type); dbOpenDynaset (Dynaset-Typ); dbOpenSnapshot (Snapshot-Typ); dbOpenForwardOnly (Nur-Weiterleitungstyp); dbOpenDynamic (dynamischer Typ)

Ein Recordset, das in einer lokalen Microsoft Access-Tabelle ohne Angabe des Typs erstellt wurde, wird standardmäßig auf den Tabellentyp festgelegt

Wenn Sie die OpenRecordset-Methode für eine verknüpfte Tabelle oder Abfrage ausführen, ohne den Typ anzugeben, wird standardmäßig der Dynaset-Typ verwendet

Im Options-Argument können Sie eine der vielen Konstanten angeben, die die Eigenschaften des Recordsets darstellen, nämlich

die Angabe von dbReadOnly öffnet ein Recordset als schreibgeschützt und so weiter

Das LockEdit-Argument gibt eine Konstante an, die den Typ der Datensatzsperre bestimmt, die beim Öffnen eines Recordsets verwendet wird

DAO TableDef.OpenRecordset-Methode

Syntax: TableDefObject.OpenRecordset(Typ, Optionen)

In dieser Methode erhalten Sie zuerst einen Verweis auf die Tabelle (TableDefObject) und verwenden dann den Set-Operator, um das Recordset zurückzugeben

DAO Recordset.OpenRecordset-Methode

Syntax: RecordsetObject.OpenRecordset(Typ, Optionen)

Bei dieser Methode erhalten Sie zuerst eine Referenz auf ein Recordset-Objekt und verwenden dann den Set-Operator

Siehe Beispiel 7, wo diese Methode zum Filtern von Datensätzen verwendet wird

Erstellen eines Recordsets basierend auf einer gespeicherten Abfrage oder einer Parameterabfrage unter Verwendung der QueryDef.OpenRecordset-Methode

Einzelheiten zu dieser Methode finden Sie im Abschnitt “Erstellen und Ausführen einer Abfrage”

Erstellen Sie einen neuen Datensatz in einer Datenbanktabelle – verwenden Sie die AddNew- und Update-Methoden

DAO Recordset.AddNew-Methode

Erstellen Sie mithilfe der Recordset.AddNew-Methode einen neuen Datensatz für ein Recordset-Objekt

Syntax: RecordsetObject.AddNew

Wenn Sie diese Methode verwenden, wird der Wert des Felds auf seinen Standardwert gesetzt und in Ermangelung einer Standardwertangabe auf Null gesetzt

Stellen Sie sicher, dass Sie nach dem Hinzufügen eines neuen Datensatzes mit der AddNew-Methode oder nach dem Vornehmen von Änderungen an einem Datensatz mit der Edit-Methode den Datensatz und/oder alle Änderungen daran mit der Update-Methode speichern müssen, BEVOR Sie einen Vorgang wie das Verschieben zu einem anderen ausführen oder verwenden Sie erneut die Edit- oder AddNew-Methode, schließen Sie das Recordset oder legen Sie die Lesezeicheneigenschaft für einen anderen Datensatz fest.

In DAO ist der aktuelle Datensatz nach Verwendung der Update-Methode der Datensatz, der vor der AddNew-Methode den Fokus hatte

Die Verwendung der LastModified-Eigenschaft (für ein DAO-Recordset) gibt ein Lesezeichen zurück, das auf den zuletzt hinzugefügten/geänderten Datensatz zeigt, und wenn Sie die Bookmark-Eigenschaft auf dieses Lesezeichen setzen, wird der neue Datensatz zum aktuellen Datensatz

Geben Sie Recordset ein und verwenden Sie die AddNew-Methode

Der neue Datensatz wird am Ende des Recordsets angezeigt, wodurch die Sortierung des Recordsets, falls vorhanden, außer Kraft gesetzt wird

In diesem Fall können Sie das Recordset neu erstellen oder die ReQuery-Methode verwenden, damit der neue Datensatz an seiner sortierten Position angezeigt wird

Wenn ein Datensatz zu einem Datensatz vom Typ Tabelle hinzugefügt wird, wird der neue Datensatz gemäß dem Index des Datensatzes angezeigt, und wenn kein Index vorhanden ist, wird der neue Datensatz am Ende des Datensatzes angezeigt

DAO-Methode „Recordset.Update“

Stellen Sie sicher, dass Sie nach dem Hinzufügen eines neuen Datensatzes mit der AddNew-Methode oder nach dem Vornehmen von Änderungen an einem Datensatz mit der Edit-Methode den Datensatz und/oder alle Änderungen daran mit der Recordset.Update-Methode speichern müssen, BEVOR Sie einen Vorgang wie move ausführen zu einem anderen Datensatz hinzufügen oder die Edit- oder AddNew-Methode erneut verwenden oder das Recordset schließen oder die Lesezeicheneigenschaft für einen anderen Datensatz festlegen

Syntax: RecordsetObject. Update(UpdateType, Force)

Beide Argumente von UpdateType & Force sind optional

Recordset.LastModified-Eigenschaft

In Recordsets vom Typ Table oder Dynaset wird ein Lesezeichen des Datensatzes, der zuletzt hinzugefügt oder geändert wurde, von der Eigenschaft Recordset.LastModified zurückgegeben

Verwenden Sie diese Eigenschaft, um ein Lesezeichen zu setzen und zu dem Datensatz zu wechseln, der zuletzt hinzugefügt oder geändert wurde

Syntax: RecordsetObject.LastModified

Siehe Beispiel 4b zur Verwendung dieser Eigenschaft

Recordset.Bookmark-Eigenschaft

Verwenden Sie die Recordset.Bookmark-Eigenschaft, um den aktuellen Datensatz eindeutig zu identifizieren, indem Sie ein Lesezeichen setzen oder zurückgeben

Sie können eine beliebige Anzahl von Lesezeichen in einem Recordset erstellen, indem Sie jedes Lesezeichen speichern und seinen Wert einer Variablen zuweisen und dann zu diesem Datensatz zurückkehren, indem Sie die Bookmark-Eigenschaft des Recordsets auf die Variable setzen

Informationen zur Verwendung dieser Eigenschaft finden Sie in Beispiel 4b

Datensätze in einem Recordset bearbeiten

Verwenden Sie die DAO-Recordset.Edit-Methode, um Änderungen an Feldern des aktuellen Datensatzes in einem Recordset-Objekt vorzunehmen

Stellen Sie sicher, dass Sie nach dem Vornehmen von Änderungen an einem Datensatz mit der Edit-Methode die Änderungen mit der Update-Methode speichern müssen

Nach dem Bearbeiten des Datensatzes bleibt der aktuelle Datensatz, an dem Änderungen vorgenommen werden, aktuell, dh

der Rekord mit Fokus

Syntax: RecordsetObject.Edit.

Wechseln zwischen Datensätzen in einem Recordset

DAO Recordset.Move-Methode

Syntax: RecordsetObject.Move(Rows, StartBookmark)

Diese Methode verschiebt die Position des aktuellen Datensatzes gemäß der angegebenen Anzahl von Zeilen (Rows-Argument) ausgehend von einem mit einem Lesezeichen versehenen Datensatz, der durch das StartBookmark-Argument angegeben wird, oder vom aktuellen Datensatz, wenn dieses Argument weggelassen wird

Es ist notwendig, das Rows-Argument anzugeben, und wenn es größer als 0 ist, bewegt sich der aktuelle Datensatz vorwärts zum Ende des Recordsets, und wenn es kleiner als 0 ist, bewegt sich der aktuelle Datensatz rückwärts

Sie können diese Methode verwenden, wenn das rows-Argument auf 0 gesetzt ist, um die zugrunde liegenden Daten des aktuellen Datensatzes abzurufen

MoveFirst-, MoveLast-, MoveNext- und MovePrevious-Methoden (DAO): Die MoveFirst-Methode verschiebt den aktuellen Datensatz zum ersten Datensatz

Denken Sie daran, dass beim Öffnen eines Recordsets der erste Datensatz der aktuelle Datensatz ist

Mit der MoveLast-Methode wird der aktuelle Datensatz zum letzten Datensatz im Recordset verschoben

MoveNext-Methode verschiebt den aktuellen Datensatz um eine Position nach vorne und MovePrevious verschiebt den aktuellen Datensatz um eine Position nach hinten

Beachten Sie, dass die Methoden MoveFirst, MoveLast und MovePrevious nicht für ein Recordset vom Typ Forward-Only verwendet werden können

Syntax: RecordsetObject.MoveFirst, RecordsetObject.MoveLast, RecordsetObject.MoveNext, RecordsetObject.MovePrevious.

Die EOF-Eigenschaft (DAO) gibt an, ob die aktuelle Datensatzposition nach dem letzten Datensatz in der Menge von Datensätzen liegt, wobei ihr Wert WAHR ist

Die BOF-Eigenschaft (DAO) gibt an, ob die aktuelle Datensatzposition vor dem ersten Datensatz in der Menge von Datensätzen liegt, wobei ihr Wert WAHR ist

Beide Eigenschaften geben einen booleschen Wert zurück und werden verwendet, um zu bestimmen, ob der aktuelle Datensatz außerhalb der Grenzen des Recordset-Objekts liegt

Es wird keinen aktuellen Datensatz geben, wenn entweder die EOF-Eigenschaft oder die BOF-Eigenschaft wahr ist, und wenn beide Eigenschaften beim Öffnen eines Recordsets wahr sind, zeigt dies an, dass keine Datensätze vorhanden sind

Das Öffnen eines Datensatzes mit mindestens einem Datensatz macht den ersten Datensatz zum aktuellen Datensatz, und in diesem Fall sind sowohl die EOF-Eigenschaft als auch die BOF-Eigenschaft falsch

Syntax: RecordsetObject. EOF, RecordsetObject. BOF.

Zählt die Anzahl der Datensätze in einem Recordset

Verwenden Sie die DAO-Eigenschaft „Recordset.RecordCount“, um: (i) die Anzahl der Datensätze zu zählen, auf die in einem Dynaset-Typ-, Snapshot-Typ- oder Forward-Only-Typ-Recordset zugegriffen wurde, und nachdem auf den letzten Datensatz zugegriffen wurde (d

h

nach der Recordset gefüllt ist) RecordCount gibt die Gesamtzahl der Datensätze an, die im Recordset enthalten sind; oder (ii) die Gesamtzahl der Datensätze in einem tabellenartigen Recordset oder in einem TableDef-Objekt zählen, wobei RecordCount immer die richtige Zahl zurückgibt

Verwenden Sie die Methode Recordset.MoveLast, um den Zugriff auf den letzten Datensatz in einem Recordset vom Typ Dynaset, Snapshot oder Forward-Only zu erzwingen

Syntax: RecordsetObject.RecordCount.

DAO-Objekte mit der Close-Methode schließen

Sie sollten ein geöffnetes Recordset mithilfe der DAO-Methode Recordset.Close schließen, wodurch alle zugehörigen Systemressourcen freigegeben werden

Schließen Sie auf ähnliche Weise ein geöffnetes Workspace-Objekt mit der Workspace.Close-Methode und schließen Sie eine geöffnete Datenbank mit der Database.Close-Methode

Das Schließen eines Objekts reicht nicht aus, um es aus dem Speicher zu entfernen, wofür Sie die Objektvariable auf Nothing setzen müssen, nachdem Sie das Objekt geschlossen haben

So schließen Sie ein Recordset: RecordsetObject.Close

So zerstören Sie die Recordset-Variable: Setzen Sie RecordsetObject = Nothing

Beispiel 4b: Hinzufügen/Bearbeiten von Datensätzen und Eingeben von Daten in Tabellen

Siehe Bild 4b, wie im Code erwähnt

2

Bearbeiten Sie Datensätze mit der Edit-Methode;

3

Verwenden Sie die Recordset.Bookmark-Eigenschaft, um den aktuellen Datensatz zu identifizieren

4

Verwenden Sie die Recordset.LastModified-Eigenschaft, die auf den zuletzt hinzugefügten/geänderten Datensatz verweist

Sub AccessDAO_AddRecordsEnterData_4b()

‘Neue Datensätze mit der AddNew-Methode zu einer Tabelle hinzufügen;

‘Datensätze mit der Edit-Methode bearbeiten;

‘Verwenden Sie das Recordset

Bookmark-Eigenschaft, um den aktuellen Datensatz zu identifizieren;

‘Verwenden Sie die Recordset.LastModified-Eigenschaft, die auf den zuletzt hinzugefügten/geänderten Datensatz verweist VBE.

‘Siehe Bild 4b ​​nach dem Ausführen des folgenden Codes, der Datensätze in der in Beispiel 4a oben erstellten Datenbankdatei hinzufügt und bearbeitet (beachten Sie, dass das Feld “SurName” der Tabelle “SalesManager” nicht gelöscht wurde).

Dim strMyPath As Zeichenfolge, strDBName als Zeichenfolge, strDB als Zeichenfolge, recBookMark als Zeichenfolge

Dim daoDB als DAO.Datenbank

Dim recSet als DAO.Recordset

‘—————

‘Ihre Datenquelle, mit der eine Verbindung hergestellt werden soll – Geben Sie den Namen der MS Access-Datenbank ein:

strDBName = “SalesReportNew.accdb”

‘Pfad / Speicherort der Datenbank abrufen, vermutlich am selben Speicherort wie die Host-Arbeitsmappe:

strMyPath = DieseArbeitsmappe.Pfad

‘Setzen Sie die String-Variable auf die Datenbank:

strDB = strMyPath & “\” & strDBName

„Wenn Sie ein Datenbankobjekt öffnen, ohne einen Arbeitsbereich anzugeben, existiert es im Standardarbeitsbereich

Weisen Sie zunächst die Datenbankreferenz einer Objektvariablen zu:

Legen Sie daoDB = DBEngine.OpenDatabase(strDB) fest

‘Öffnen Sie ein Tabellentyp-Recordset, das auf einer MS Access-Tabelle mit dem Namen “SalesManager” basiert:

Set recSet = daoDB.OpenRecordset(“SalesManager”)

‘—————-

‘neue Datensätze zu einer Tabelle hinzufügen, indem die AddNew-Methode (des Recordset-Objekts) verwendet wird:

Mit recSet

.Neue hinzufügen

‘Sie brauchen keinen Wert für das automatisch inkrementierende Feld von “EmployeeId” einzugeben; der Startwert ist 1

In DAO können Sie den Startwert der automatischen Nummer nicht festlegen, Sie können jedoch bei einem bestimmten Wert in einer neuen Tabelle beginnen, indem Sie den bestimmten Wert für den ersten Datensatz eines AutoNummer-Felds eingeben, und nachfolgende Datensätze werden von erhöht dieser spezifische Startwert…Fields(“EmployeeId”) = 55

.Fields(“FirstName”) = “Lisa”

.Fields(“Nachname”) = “Randall”

‘Geben Sie einen Datums-/Uhrzeitwert zwischen # und # oder in doppelten Anführungszeichen ein:

.Fields(“JoinDate”) = “11.08.2012”

.Fields(“Verkäufe”) = “22456”

.Fields(“NewJoinee?”) = True

‘Verwenden Sie für ein Hyperlink-Feld sowohl # als auch doppelte Anführungszeichen:

.Fields(“WebProfile”) = “#http://www.google.com#”

‘wird erst gespeichert, nachdem die Update-Methode ausgeführt wurde:

.Aktualisieren

.Neue hinzufügen

‘Beachten Sie, dass das Feld “JoinDate” weggelassen wird, daher wird sein Standardwert eingegeben

.Fields(“Vorname”) = “Tracy” & ” ” & “Von”

.Fields(“Nachname”) = “Murray”

.Fields(“Verkäufe”) = “41098”

.Fields(“NewJoinee?”) = False

.Fields(“WebProfile”) = “#http://www.yahoo.com#”

.Aktualisieren

‘zweiter Datensatz – Position des aktuellen Datensatzes speichern:

.Lesezeichen =. LastModified

recBookMark =. Lesezeichen

.Neue hinzufügen

.Fields(“Vorname”) = “John”

.Fields(“Nachname”) = “Maurer”

.Fields(“JoinDate”) = #9/2/2012#

.Fields(“Verkäufe”) = “31478”

.Fields(“NewJoinee?”) = True

.Fields(“WebProfile”) = “#http://www.msn.com#”

.Aktualisieren

‘In DAO ist nach dem Update der aktuelle Datensatz der Datensatz, der vor dem AddNew den Fokus hatte

Die Verwendung der LastModified-Eigenschaft (für ein DAO-Recordset – es funktioniert nicht mit einem ADO-Recordset) gibt ein Lesezeichen zurück, das auf den zuletzt hinzugefügten/geänderten Datensatz verweist

Dadurch wird der neue Datensatz zum aktuellen Datensatz..

.Bookmark =. LastModified

Ende mit

‘gibt “John” zurück

MsgBox recSet.Fields(“Vorname”)

‘den neuen Datensatz mit der Edit-Methode (des Recordset-Objekts) bearbeiten:

Mit recSet

‘Recordset.Edit-Methode ist für ein DAO-Recordset gültig, es funktioniert nicht mit einem ADO-Recordset:

.Bearbeiten

.Fields(“Vorname”) = “Julia”

.Fields(“Nachname”) = “Willis”

‘wird erst gespeichert, nachdem die Update-Methode ausgeführt wurde:

.Aktualisieren

Ende mit

‘gibt “Julia” zurück

MsgBox recSet.Fields(“Vorname”)

‘den zweiten Datensatz zurückgeben, dessen Position gespeichert wurde:

recSet.Bookmark = recBookMark

‘gibt “Tracy Von” zurück

MsgBox recSet.Fields(“Vorname”)

‘—————

‘Objekte schließen:

daoDB.Schließen

‘Zerstöre die Variablen:

Setze daoDB = nichts

setze recSet = nichts

end sub Beispiel 5a: OpenRecordset, Recordset aufzählen, Recordset-Eigenschaften, durch Records navigieren..

1

OpenRecordset-Methode des Datenbankobjekts – OpenRecordset basierend auf einer Tabelle; OpenRecordset basierend auf einer SQL-Anweisung

2

OpenRecordset-Methode des TableDef-Objekts – Open Recordset basierend auf einer Tabelle

3

Auflisten des Recordsets; Listen Sie alle gültigen Eigenschaften von Recordset auf

4

Verwenden Sie die MoveFirst- und MoveNext-Methoden, um durch die Datensätze zu navigieren, zusammen mit der EOF-Eigenschaft

Sub AccessDAO_OpenRecordsetMoveThruRecords_5a()

‘AUFZEICHNUNGSSATZ ÖFFNEN; AUFZEICHNUNGSSATZ; DATENSATZ-EIGENSCHAFTEN; DURCH DIE AUFZEICHNUNGEN NAVIGIEREN:

‘OpenRecordset-Methode des Datenbankobjekts – Open Recordset basierend auf einer Tabelle; OpenRecordset basierend auf einer SQL-Anweisung.

‘OpenRecordset-Methode des TableDef-Objekts – OpenRecordset basierend auf einer Tabelle.

‘Enumerate the Recordset; Listen Sie alle gültigen Eigenschaften von Recordset auf.

‘Verwenden Sie die MoveFirst- und MoveNext-Methoden, um durch Datensätze zu navigieren, zusammen mit der EOF-Eigenschaft.

‘Um DAO in Ihrem Excel-VBA-Projekt zu verwenden, müssen Sie einen Verweis auf die DAO-Objektbibliothek in Excel hinzufügen (Ihre Host-Anwendung), indem Sie in VBE auf Tools-References klicken

Dim strMyPath As String, strDBName As String, strDB As String, strSQL As String

Dim daoDB als DAO.Datenbank

Dim recSet als DAO.Recordset

Dim daoTblDef As DAO.TableDef

Dim daoFld As DAO.Field

Dim daoPrp As DAO.Property

Dim n so lang, i so lang

‘—————

‘Ihre Datenquelle, mit der eine Verbindung hergestellt werden soll – Geben Sie den Namen der MS Access-Datenbank ein:

strDBName = “SalesReport.accdb”

‘Pfad / Speicherort der Datenbank abrufen, vermutlich am selben Speicherort wie die Host-Arbeitsmappe:

strMyPath = DieseArbeitsmappe.Pfad

‘Setzen Sie die String-Variable auf die Datenbank:

strDB = strMyPath & “\” & strDBName

„Wenn Sie ein Datenbankobjekt öffnen, ohne einen Arbeitsbereich anzugeben, existiert es im Standardarbeitsbereich

Weisen Sie zunächst die Datenbankreferenz einer Objektvariablen zu:

Legen Sie daoDB = DBEngine.OpenDatabase(strDB) fest

‘—————

‘OpenRecordset METHODE DES DATENBANKOBJEKTS – OPEN RECORDSET BASIEREND AUF EINER TABELLE:

‘Offener tabellenartiger, schreibgeschützter Recordset basierend auf einer MS Access-Tabelle:

Set recSet = daoDB.OpenRecordset(“SalesManager”, dbOpenTable, dbReadOnly)

‘gibt das erste Feld (Name & Wert) jedes Datensatzes des Recordsets zurück:

‘Während Sie sich innerhalb eines Datensatzes vorwärts bewegen, verwenden Sie EOF, um den letzten Datensatz nicht zu überschreiten

EOF-Eigenschaft gibt an, dass die aktuelle Datensatzposition hinter dem letzten Datensatz in der Datensatzgruppe liegt

Do While Not recSet.EOF

MsgBox recSet.Fields(0).Name & ” – ” & recSet.Fields(0).Value

‘MoveNext-Methode verschiebt den aktuellen Datensatz um eine Position nach vorne.

recSet.MoveNext

Schleife

recSet.Close

setze recSet = nichts

‘—–

‘OpenRecordset METHODE DES DATENBANKOBJEKTS – OPEN RECORDSET BASIEREND AUF EINER SQL-ANWEISUNG:

‘Recordset vom Typ Dynaset basierend auf einer SQL-Anweisung öffnen:

strSQL = “SELECT * FROM SalesManager WHERE EmployeeId > 18”

Set recSet = daoDB.OpenRecordset(strSQL, dbOpenDynaset)

‘Recordset aufzählen – alle Felder in jedem Datensatz des Recordsets:

fieldsCount = recSet.Fields.count

n = 1

‘durch Datensätze in einem Recordset navigieren:

Mit recSet

‘MoveFirst-Methode verschiebt den aktuellen Datensatz zum ersten Datensatz. .

MoveFirst

Do While Not. EOF

MsgBox “Record No.” & n

For i = 0 To fieldsCount – 1

MsgBox. Fields(i).Name & ” – ” &. Fields(i).Value

next i. MoveNext

n = n + 1

Schleife

Ende mit

recSet.Close

setze recSet = nichts

‘—–

‘OpenRecordset METHODE DES TableDef-OBJEKTS – OFFENER RECORDSET BASIEREND AUF EINER TABELLE:

‘auf ein TableDef-Objekt anhand seines Namens verweisen: auf die Tabelle mit dem Namen SalesManager verweisen

Legen Sie daoTblDef = daoDB.TableDefs(“SalesManager”) fest

‘Aufzeichnungssatz vom Snapshot-Typ basierend auf einer MS Access-Tabelle öffnen:

Set recSet = daoTblDef.OpenRecordset(dbOpenSnapshot, dbReadOnly)

‘Alle Felder jedes Datensatzes des Recordsets auflisten:

Do While Nicht recSet.EOF

Für jedes daoFld in recSet.Fields

MsgBox daoFld.Name & ” – ” & daoFld.Value

Nächster TagFld

recSet.MoveNext

Schleife

‘Alle gültigen Eigenschaften des Recordset-Objekts auflisten:

Für jeden daoPrp in recSet.Properties

‘Ungültige Werte überspringen mit Fortsetzung der nächsten Anweisung

Bei Fehler als nächstes fortfahren

MsgBox “Eigenschaftsname: ” & daoPrp.Name & “; Eigenschaftswert: ” & daoPrp.Wert

Als nächstes daoPrp

‘—————

‘Objekte schließen:

recSet.Close

daoDB.Schließen

‘Zerstöre die Variablen:

Setze daoDB = nichts

setze recSet = nichts

Setzen Sie daoTblDef = nichts

Setzen Sie daoFld = nichts

Setzen Sie daoPrp = nichts

end sub Beispiel 5b: Zählen Sie die Anzahl der Datensätze in einem Recordset – DAO Recordset.RecordCount Property.

Siehe Bild 5, wie im Code erwähnt.

Sub AccessDAO_RecordCount_5b()

‘Zählen Sie die Anzahl der Datensätze in einem Recordset – DAO Recordset.RecordCount Property

‘siehe Bild 5, um die SalesManager-Tabelle in der MS Access-Datei “SalesReport.accdb” anzuzeigen, auf der RecordCount in diesem Code ausgeführt wird.

‘Um DAO in Ihrem Excel-VBA-Projekt zu verwenden, müssen Sie einen Verweis auf die DAO-Objektbibliothek hinzufügen in Excel (Ihre Hostanwendung), indem Sie in VBE auf Tools-References klicken

Dim strMyPath As String, strDBName As String, strDB As String, strSQL As String

Dim daoDB als DAO.Datenbank

Dim recSet als DAO.Recordset

Dim daoTblDef As DAO.TableDef

Dim qryD als DAO.QueryDef

‘—————

‘Ihre Datenquelle, mit der eine Verbindung hergestellt werden soll – Geben Sie den Namen der MS Access-Datenbank ein:

strDBName = “SalesReport.accdb”

‘Pfad / Speicherort der Datenbank abrufen, vermutlich am selben Speicherort wie die Host-Arbeitsmappe:

strMyPath = DieseArbeitsmappe.Pfad

‘Setzen Sie die String-Variable auf die Datenbank:

strDB = strMyPath & “\” & strDBName

‘Datenbankreferenz einer Objektvariablen zuweisen:

Legen Sie daoDB = DBEngine.Workspaces(0).OpenDatabase(strDB) fest

‘—————

‘RecordCount in einem TableDef-Objekt:

Legen Sie daoTblDef = daoDB.TableDefs(“SalesManager”) fest

‘gibt 5 zurück, siehe Bild 5:

MsgBox “RecordsCount in einem TableDef-Objekt: ” & daoTblDef.RecordCount

‘—–

‘RecordCount in einem Recordset vom Typ Tabelle:

Set recSet = daoDB.OpenRecordset(“SalesManager”, dbOpenTable)

‘gibt 5 zurück, siehe Bild 5:

MsgBox “RecordsCount im Datensatz vom Typ Tabelle: ” & recSet.RecordCount

recSet.Close

setze recSet = nichts

‘—–

‘RecordCount in einem Recordset vom Typ Dynaset:

strSQL = “SELECT * FROM SalesManager WHERE EmployeeId > 18”

Setzen Sie qryD = daoDB.CreateQueryDef(“sqlQuery”, strSQL)

Set recSet = qryD.OpenRecordset(dbOpenDynaset)

‘gibt 1 zurück, siehe Bild 5:

MsgBox “RecordsCount in Dynaset-Typ Recordset BEFORE MoveLast: ” & recSet.RecordCount

recSet.MoveLast

‘gibt 3 zurück, siehe Bild 5:

MsgBox “RecordsCount in Dynaset-Typ Recordset NACH MoveLast: ” & recSet.RecordCount

daoDB.QueryDefs.Delete(“sqlQuery”)

recSet.Close

setze recSet = nichts

‘—–

‘RecordCount in einem Datensatz vom Typ Snapshot:

Set recSet = daoDB.OpenRecordset(“SalesManager”, dbOpenSnapshot)

‘gibt 1 zurück, siehe Bild 5:

MsgBox “RecordsCount im Snapshot-Recordset BEFORE MoveLast: ” & recSet.RecordCount

recSet.MoveLast

‘gibt 5 zurück, siehe Bild 5:

MsgBox “RecordsCount im Snapshot-Recordset NACH MoveLast: ” & recSet.RecordCount

recSet.Close

setze recSet = nichts

‘—–

‘RecordCount in einem Recordset vom Typ Forward-Only:

Set recSet = daoDB.OpenRecordset(“SalesManager”, dbOpenForwardOnly)

‘gibt 1 zurück, siehe Bild 5:

MsgBox “RecordsCount in Forward-Only-Typ Recordset BEFORE MoveNext: ” & recSet.RecordCount

recSet.MoveNext

‘gibt 2 zurück, siehe Bild 5:

MsgBox “RecordsCount im Forward-Only-Typ Recordset NACH dem ersten MoveNext: ” & recSet.RecordCount

recSet.MoveNext

‘gibt 3 zurück, siehe Bild 5:

MsgBox “RecordsCount im Forward-Only-Recordset NACH dem zweiten MoveNext: ” & recSet.RecordCount

‘—–

‘Objekte schließen:

recSet.Close

daoDB.Schließen

‘Zerstöre die Variablen:

Setze daoDB = nichts

setze recSet = nichts

Setzen Sie daoTblDef = nichts

Setzen Sie qryD = nichts

end sub Beispiel 6: Suchmethode (FindFirst & FindNext) in einem Datensatz vom Typ Dynaset oder Snapshot; Bearbeiten/Löschen von Datensätzen.

Siehe Bilder 6a, 6b und 6c, wie im Code erwähnt

2

Bearbeiten Sie einen Datensatz mit der Edit-Methode;

3

Löschen Sie einen Datensatz mit der Delete-Methode

Sub AccessDAO_FindMethod_EditDeleteRecords_6()

‘Suchen Sie mit den Methoden FindFirst und FindNext in einem Dynaset- oder Snapshot-Recordset Datensätze, die mit angegebenen Kriterien übereinstimmen;

‘Einen Datensatz mit der Edit-Methode bearbeiten;

‘Einen Datensatz mit der Delete-Methode löschen;

„Um DAO in Ihrem Excel-VBA-Projekt zu verwenden, müssen Sie einen Verweis auf die DAO-Objektbibliothek in Excel (Ihre Hostanwendung) hinzufügen, indem Sie in VBE auf Tools-Referenzen klicken

„Siehe Bild 6a, um die vorhandene SalesManager-Tabelle in der MS Access-Datei anzuzeigen “SalesReport.accdb”.

Dim strMyPath als Zeichenfolge, strDBName als Zeichenfolge, strDB als Zeichenfolge

Dim daoDB als DAO.Datenbank

Dim recSet als DAO.Recordset

‘—————

‘Ihre Datenquelle, mit der eine Verbindung hergestellt werden soll – Geben Sie den Namen der MS Access-Datenbank ein:

strDBName = “SalesReport.accdb”

‘Pfad / Speicherort der Datenbank abrufen, vermutlich am selben Speicherort wie die Host-Arbeitsmappe:

strMyPath = DieseArbeitsmappe.Pfad

‘Setzen Sie die String-Variable auf die Datenbank:

strDB = strMyPath & “\” & strDBName

‘Datenbankreferenz einer Objektvariablen zuweisen:

Legen Sie daoDB = DBEngine.Workspaces(0).OpenDatabase(strDB) fest

‘Öffnen Sie ein Recordset vom Typ Dynaset basierend auf einer MS Access-Tabelle mit dem Namen “SalesManager”:

Set recSet = daoDB.OpenRecordset(“SalesManager”, dbOpenDynaset)

‘—————-

‘VERWENDEN SIE DIE METHODEN FindFirst UND FindNext, UM ALLE AUFZEICHNUNGEN ZU SUCHEN, DIE EINEM BESTIMMTEN KRITERIUM ENTSPRECHEN:

‘ersten Datensatz mit übereinstimmenden Kriterien suchen:

recSet.FindFirst “Nachname LIKE ‘*A*'”

‘wenn ein Datensatz mit übereinstimmenden Kriterien gefunden wird:

Wenn recSet.NoMatch = False dann

‘Die NoMatch-Eigenschaft wird auf True gesetzt, wenn kein übereinstimmender Datensatz gefunden wird:

Do While Not recSet.NoMatch

‘Return-Record mit übereinstimmenden Kriterien: Returns Murray, Mason & Davis: siehe Bild 6a:

MsgBox recSet.Fields(“Nachname”)

‘Nächsten Datensatz mit übereinstimmenden Kriterien suchen:

recSet.FindNext “Nachname LIKE ‘*A*'”

Schleife

sonst MsgBox “Kein passender Datensatz gefunden!”

Ende Wenn

‘——————–

‘DATENSATZ ZUM BEARBEITEN SUCHEN, UNTER VERWENDUNG DER FindFirst-METHODE:

‘siehe Bild 6b nach dem Ausführen des folgenden Codes:

‘recSet.FindFirst “Vorname = ‘Jim'”

‘recSet.FindFirst “Nachname=””Murray”””

recSet.FindFirst “EmployeeId=56”

‘Die NoMatch-Eigenschaft wird auf True gesetzt, wenn kein übereinstimmender Datensatz gefunden wird:

Wenn nicht recSet.NoMatch Dann

‘Ändern eines DAO-Recordsets – Bearbeiten eines Datensatzes in einer Tabelle mit der Edit-Methode (des Recordset-Objekts):

Mit recSet

.Bearbeiten

.Fields(“Vorname”) = “James”

.Fields(“Nachname”) = “Anleihe”

‘wird erst gespeichert, nachdem die Update-Methode ausgeführt wurde:

.Aktualisieren

‘Die Verwendung der LastModified-Eigenschaft gibt ein Lesezeichen zurück, das auf den zuletzt hinzugefügten/geänderten Datensatz verweist

Dadurch wird der neue Datensatz zum aktuellen Datensatz..

.Bookmark =. LastModified

Ende mit

sonst MsgBox “Kein passender Datensatz gefunden!”

Ende Wenn

‘gibt James zurück, siehe Bild 6b, nachdem Sie diesen Code ausgeführt haben:

MsgBox recSet.Fields(“Vorname”)

‘——————–

‘AUFTRAG FINDEN, DEN SIE LÖSCHEN MÖCHTEN:

‘siehe Bild 6c nach dem Ausführen des folgenden Codes:

recSet.FindFirst “EmployeeId=56”

‘Ändern eines DAO-Recordsets – Löschen eines Datensatzes in einer Tabelle mit der Delete-Methode (des Recordset-Objekts):

‘Datensatz mit EmployeeId 56 wird gelöscht, siehe Bild 6c:

Wenn recSet.NoMatch = False dann

recSet.Löschen

sonst MsgBox “Datensatz nicht gefunden”

Ende Wenn

‘kein aktueller Datensatz, nachdem die Delete-Methode verwendet wurde, daher gehe zu First Record:

recSet.MoveFirst

‘ gibt Tracy zurück, siehe Bild 6c:

MsgBox recSet.Fields(“Vorname”)

‘gehe zum letzten Datensatz, dann gehe einen Datensatz zurück:

Mit recSet

.MoveLast

.Verschieben -1

‘gibt Jim zurück, siehe Bild 6c:

MsgBox recSet.Fields(“Vorname”)

Ende mit

‘—————

‘Objekte schließen:

recSet.Close

daoDB.Schließen

‘Zerstöre die Variablen:

Setze daoDB = nichts

setze recSet = nichts

end sub Beispiel 7: Verwenden Sie die DAO-Eigenschaft „Recordset.Filter“ zum Filtern von Datensätzen (anwendbar auf Recordsets vom Typ „Dynaset“, „Snapshot“ oder „Nur weiterleiten“) AccessDAO_RecordsetFilter_7( )

‘Datensätze filtern: Verwenden Sie die Eigenschaft DAO Recordset.Filter, um die Aufnahme von Datensätzen in ein danach geöffnetes Recordset zu bestimmen

Ein Filter kann auf Recordsets vom Typ Dynaset, Snapshot oder Nur-Weiterleitung angewendet werden

„Um DAO in Ihrem Excel-VBA-Projekt zu verwenden, müssen Sie einen Verweis auf die DAO-Objektbibliothek in Excel (Ihrer Hostanwendung) hinzufügen

indem Sie in VBE auf Tools-References klicken

Dim strMyPath As String, strDBName As String, strDB As String

Dim daoDB als DAO.Datenbank

Dim recSet als DAO.Recordset, recSetF als DAO.Recordset

‘—————

‘Ihre Datenquelle, mit der eine Verbindung hergestellt werden soll – Geben Sie den Namen der MS Access-Datenbank ein:

strDBName = “SalesReport.accdb”

‘Pfad / Speicherort der Datenbank abrufen, vermutlich am selben Speicherort wie die Host-Arbeitsmappe:

strMyPath = DieseArbeitsmappe.Pfad

‘Setzen Sie die String-Variable auf die Datenbank:

strDB = strMyPath & “\” & strDBName

‘—————

‘Datenbankreferenz einer Objektvariablen zuweisen:

Legen Sie daoDB = DBEngine.Workspaces(0).OpenDatabase(strDB) fest

‘Werte aller Datensätze in NewJoinee setzen? Feld (Boolean) zu False:

‘Siehe Bild 7a, um die SalesManager-Tabelle in der MS Access-Datei „SalesReport.accdb“ anzuzeigen, nachdem der folgende Code ausgeführt wurde

Set recSet = daoDB.OpenRecordset(“SalesManager”)

Do While Nicht recSet.EOF

recSet.Edit

recSet.Fields(“NewJoinee?”).Value = False

recSet.Update

recSet.MoveNext

Schleife

recSet.Close

setze recSet = nichts

‘—————

‘Erstelle ein gefiltertes Recordset (dynaset-Typ) mit einer SQL-Anweisung, die Datensätze aus der SalesManager-Tabelle zurückgibt, deren Mitarbeiter-ID zwischen 15 und 56 liegt, und sie in der Reihenfolge von JoinDate: zurückgibt/sortiert

Set recSet = daoDB.OpenRecordset(“SELECT * FROM SalesManager WHERE EmployeeId BETWEEN 15 AND 56 ORDER BY JoinDate”)

Filtern Sie das Recordset mithilfe der Filter-Eigenschaft neu, geben Sie Datensätze zurück, deren JoinDate nach dem „01.01.2011“ liegt, und markieren Sie sie als NewJoinee:

recSet.Filter = “JoinDate ZWISCHEN #01/01/2011# UND jetzt”

‘Erstellen Sie ein weiteres gefiltertes Recordset (Typ Dynaset) mit der DAO-Methode Recordset.OpenRecordset:

Setzen Sie recSetF = recSet.OpenRecordset

‘return die EmployeeId & JoinDate-Felder jedes Datensatzes im gefilterten Recordset:

‘siehe Bild 7b, um die SalesManager-Tabelle anzuzeigen, nachdem Sie den folgenden Code ausgeführt haben

Do While Not recSetF.EOF

MsgBox recSetF.Fields(“EmployeeId”) & “, ” & recSetF.Fields(“JoinDate”)

‘Werte gefilterter Datensätze in NewJoinee setzen? Feld auf True:

recSetF.Edit

recSetF.Fields(“NewJoinee?”).Value = True

recSetF.Update

recSetF.MoveNext

Schleife

‘—————

‘Objekte schließen:

recSet.Close

daoDB.Schließen

‘Zerstöre die Variablen:

Setze daoDB = nichts

setze recSet = nichts

setze recSetF = nichts

End Sub

Microsoft Access Intro to VBA Programming – Visual Basic for Applications for Beginners – Access VBA Update

Video unten ansehen

Neues Update zum Thema access vba tools

There is a NEW version of this video available here: https://youtu.be/uvmtcjJeBe4
In this introduction to Microsoft Access Visual Basic for Applications programming, you will learn how to write your first code in Access VBA. To learn more, see my full course at the links below:
Full Access Developer 1 Course:
http://599cd.com/XYTD1
Intro to Microsoft Access:
https://www.youtube.com/watch?v=eQMc30gSPN8
Full THREE-HOUR Microsoft Access Beginner Tutorial:
https://www.youtube.com/watch?v=ySyMn3H4rvg

access vba tools Einige Bilder im Thema

 Update New Microsoft Access Intro to VBA Programming - Visual Basic for Applications for Beginners - Access VBA
Microsoft Access Intro to VBA Programming – Visual Basic for Applications for Beginners – Access VBA Update

Weitere Informationen zum Thema access vba tools

Updating

Suche zum Thema access vba tools

Updating

Ende des Themas access vba tools

Articles compiled by Tratamientorosacea.com. See more articles in category: DIGITAL MARKETING

Related Videos

Leave a Comment