Makros. Typen und Methoden zum Erstellen von Makros. Wie Makros (Aktionen) geschrieben werden Zuweisen eines Makros zu einer Schaltfläche

Der grundlegende Satz von Microsoft Access-Tools, den wir in den vorherigen Kapiteln des Buches besprochen haben, richtet sich an Benutzer, die keine Programmiersprachen sprechen. Für Programmierer werden diese Tools ergänzt mit Makros(kleine Programme in der Makrosprache des Access-Systems) und Module(Prozeduren in Visual Basic for Application, VBA). Mit ihrer Hilfe können Sie die Funktionalität der von Ihnen erstellten Anwendung erheblich erweitern und an die Bedürfnisse bestimmter Benutzer anpassen. In diesem Kapitel werden wir eines dieser Werkzeuge, Makros, und eine der Access-Programmiersprachen, die Makrosprache, vorstellen. Wir stellen Ihnen VBA-Module und -Sprache vor im CH. 13 ,

Daher werden wir folgende Fragen diskutieren:

  • Makrokonzept
  • Verwenden von Makros in Anwendungen
  • Erstellen von Makros und Makrogruppen
  • Festlegen von Bedingungen für die Steuerung des Prozesses der Makroausführung
  • Verschiedene Möglichkeiten zum Ausführen von Makros
  • Tipps zum Debuggen von Makros
  • Behandeln von Ereignissen in Formularen und Berichten mithilfe von Makros

Verwenden von Makros in einer Microsoft Access-Datenbank

Mit Makros können Sie fast alle Aktionen an Access-Objekten ausführen, die in den vorherigen Kapiteln beschrieben wurden.

Ein Makro in Access ist eine Struktur, die aus einem oder mehreren Makros besteht, die entweder nacheinander oder in einer durch bestimmte Bedingungen festgelegten Reihenfolge ausgeführt werden. Der Satz von Makros in Access ist sehr umfangreich, mit Hilfe von Makros können Sie vieles von dem implementieren, was VBA-Prozeduren zulassen. Jedes Makro hat einen bestimmten Namen und möglicherweise ein oder mehrere vom Benutzer angegebene Argumente. Wenn Sie beispielsweise das OpenForm-Makro verwenden, müssen Sie mindestens den Namen des zu öffnenden Formulars und den Anzeigemodus als Argumente angeben.

Tabelle 11.1 enthält eine Liste von Microsoft Access 2002-Makros, gruppiert nach Kategorien: Arbeiten mit Daten in Formularen und Berichten; Ausführung von Befehlen, Makros, Prozeduren und Abfragen; mit Objekten arbeiten; Import / Export von Daten und Objekten und anderen. Die Kategorie "Sonstiges" enthält alle Makros, mit denen Sie die Anwendungsoberfläche beeinflussen können.

Kategorie Geplanter Termin Makro
Arbeiten mit Daten in Formularen und Berichten Datenbemusterung Filter anwenden
Durch Daten navigieren NextRecord (FindNext) FindRecord (GoToControl) On Page (GoToPage) ForRecord (GoToRecord)
Daten oder Bildschirm aktualisieren Aktualisieren (Requery) ShowAllRecords (ShowAllRecords)
Performance Ausführen eines Befehls Befehl ausführen (RunComraand)
Ausführen eines Makros, einer Prozedur oder einer Abfrage RunMacro RunCode OpenQuery 3anyc zu 3anpoca SQL (RunSQL)
Ausführen einer anderen Anwendung Starten einer Anwendung (RunApp)
Ausführung abbrechen Ereignis abbrechen (CancelEvent) Stop AllMacros (StopAllMacros) StopMacro (StopMacro)
Von Microsoft Access abmelden Verlassen
Import Export Übergeben von Microsoft Access-Objekten an andere Anwendungen Ausgabe im Format (OutputTo) SendObject (SendObject)
Datenformatkonvertierung Transfer Database TransferSQLDatabase Transfer Spreadsheet TransferText
Arbeiten mit Objekten Kopieren, Umbenennen und Speichern eines Objekts CopyObject CopyDatabase Datei Umbenennen Speichern
Andere Anzeigen oder Ausblenden der integrierten oder dedizierten Symbolleiste Ertönen eines Signaltons Symbolleiste (ShowToolbar) Signal (Lüfter)

Tabelle 11.1. Microsoft Access 2002-Makros

Wie Sie dieser Tabelle entnehmen können, sind die Aktionen, die mit Makros ausgeführt werden können, sehr vielfältig. Auch wenn Sie in Ihren Anwendungen keine Makros verwenden werden, ist es sinnvoll, diese Makros zu lernen, da sie in VBA-Prozeduren verwendet werden können, wie unten gezeigt wird. (siehe Kapitel 13).

Im Vergleich zur Vorgängerversion von Access verfügt Microsoft Access 2002 über drei neue Makros:

TransferSQLDatabase - überträgt eine Microsoft SQL Server 7.0 und höhere Datenbank auf einen anderen Server;

CopyDatabaseFile (CopyDatabaseFile) - kopiert die aktuelle Datenbank von Microsoft SQL Server 7.0 und höher, die an das Access-Projekt angehängt ist;

OpenFunction - Führt eine benutzerdefinierte Funktion in einem Access-Projekt aus. Diese Funktion ist eine Abfrage, die unter Verwendung von Eingabeparametern Ergebnisse auf die gleiche Weise wie eine gespeicherte Prozedur zurückgibt.

Die Verwendung von Makros wird damit begründet, dass sie einfach zu erstellen sind und man dafür nicht die Syntax der Programmiersprache lernen muss. Wie Sie im nächsten Abschnitt sehen werden, müssen Sie zum Erstellen eines Makros nur die grundlegenden Techniken der Arbeit in Microsoft Access und Windows kennen, z. B. das Ziehen und Ablegen von Objekten aus dem Fenster. Datenbank(Datenbank) in ein spezielles Fenster - Makrokonstruktor(Makrodesign), Auswählen einer Aktion aus einer Liste und Eingeben von Ausdrücken als Argumente in ein Makro. Wenn Sie die Syntax der VBA-Sprache wirklich nicht lernen möchten oder es zu schwierig erscheint, können Sie Makros verwenden, und Sie erhalten eine ziemlich funktionale Anwendung.

Wie oben erwähnt, besteht der Hauptzweck von Makros darin, eine praktische Anwendungsoberfläche zu schaffen: damit Formulare und Berichte geöffnet werden, wenn Sie auf Schaltflächen in einem Formular oder auf einer Symbolleiste klicken oder einen Menübefehl auswählen; damit der Benutzer beim Öffnen der Anwendung auf dem Bildschirm kein Fenster sieht not Datenbank(Datenbank), gefüllt mit vielen Tabellen, Abfragen, Formularen und Berichten, aber einigen verständlichen Formularen, mit denen Sie sofort die gewünschten Aktionen ausführen können usw.

Mithilfe von Makros können Sie komfortable Menüs und Symbolleisten für Ihre Anwendung erstellen, und etwas später beschreiben wir, wie das geht.

Allerdings hat die Verwendung von Makros auch einige Nachteile, die hier angebracht sind.

  • Die Fähigkeiten von Makros sind im Vergleich zu den Fähigkeiten der VBA-Sprache begrenzt, daher ist die Programmierung in VBA in einigen Fällen unverzichtbar, obwohl Sie zuerst sicherstellen müssen, dass diese zusätzlichen Fähigkeiten wirklich benötigt werden. Die VBA-Sprache bietet umfangreichere Möglichkeiten für die Arbeit mit Daten, ermöglicht es Ihnen, den Objektprogrammierungsmechanismus zu verwenden, um mit anderen Anwendungen zu kommunizieren, Funktionen aus Windows Dynamic Loading Libraries (DLLs) aufzurufen und Ihre eigenen spezialisierten Funktionen zu erstellen.
  • Makros können fast überall verwendet werden, wo VBA-Prozeduren verwendet werden, aber VBA-Prozeduren sind im Allgemeinen schneller.
  • Makros sind Objekte, die getrennt von den Formularen und Berichten existieren, in denen sie verwendet werden. Wenn es viele dieser Objekte gibt, ist ihre Pflege also ziemlich mühsam. VBA-Ereignisroutinen sind ein integraler Bestandteil von Formularen und Berichten, und das hat seine Vorteile. Wenn Sie beispielsweise Formulare und Berichte von einer Datenbank in eine andere verschieben, werden die zugehörigen Prozeduren automatisch mit übertragen.

Dennoch ist, wie bereits erwähnt, in vielen Fällen der Einsatz von Makros durchaus gerechtfertigt, da dies die Entwicklung der Anwendung stark vereinfacht und beschleunigt. Sie können kleine Einzelbenutzeranwendungen mithilfe von Makros erstellen, obwohl VBA die bessere Wahl ist, wenn Sie Mehrbenutzer- oder Client-/Serveranwendungen erstellen, bei denen die Anwendungsgeschwindigkeit entscheidend ist.

Makros erstellen

Microsoft Access verfügt über ein spezielles Werkzeug zum Erstellen von Makros - das Makrodesign. Betrachten wir den Vorgang zum Erstellen eines Makros mit dem Konstruktor.

Makrokonstruktor

Fenster öffnen Makrokonstruktor(Macro Design) Es gibt zwei Möglichkeiten, ein neues Makro zu erstellen:

  1. Erweitern Sie die Liste der Makros im Fenster Datenbank(Datenbank) durch Linksklick auf die Verknüpfung Makros(Makros) und klicken Sie auf Ein ... kreieren(Neu) oben im Fenster (Abb.11.1).
  2. Klicken Sie auf den Abwärtspfeil auf der Schaltfläche Neues Objekt(Neues Objekt) in der Symbolleiste Datenbank(Datenbank) und Element auswählen Makro(Makro).

Das Makrokonstruktor-Fenster ist ähnlich aufgebaut wie das Tabellenkonstruktor-Fenster, dh es ist horizontal in zwei Teile unterteilt: das Beschreibungs-Panel und das Argument-Panel.

Der obere Teil des Design-Fensters – das Beschreibungsfenster – besteht aus mehreren Spalten. Standardmäßig zeigt dieses Panel zwei Spalten an: Aktion und Kommentare. Im Beschreibungsbereich können Sie die Reihenfolge der Makros definieren, aus denen das Makro besteht.

Die Zeile in der Spalte Aktion ist ein Kombinationsfeld, aus dem Sie das gewünschte Makro auswählen können.

Die Zeile in der Spalte Kommentare ist ein einfaches Textfeld, in das Sie einen Kommentar eingeben können, der die durchzuführende Aktion beschreibt.

Wenn das Feld Aktion ausgefüllt ist, wird das Argumente-Panel am unteren Rand des Makro-Builder-Fensters angezeigt, in dem Sie die Werte der Argumente des entsprechenden Makros eingeben können. Die Liste der Felder in diesem Panel hängt vom ausgewählten Makro ab und ist möglicherweise nicht vorhanden, wenn das Makro keine Argumente hat. Daher müssen Sie sich beim Erstellen von Makros nicht die Liste der Argumente für jedes Makro merken.

In Abb. 11.1 zeigt die Auswahl des ApplyFilter-Makros. Das Argumentfenster enthält zwei Felder, in denen Sie den Filternamen und die Kriterien für die Auswahl von Datensätzen angeben können. Um eine Bedingung für die Auswahl von Datensätzen festzulegen, können Sie den Ausdrucksgenerator verwenden (siehe Abschnitt „Ausdrücke mit dem Expression Builder erstellen“ Kapitel 4).

Feige. 11.1. Makro-Generator und Argumente-Panel

Dieses Makro kann in einem Formular oder Bericht verwendet werden, um die Anzahl der angezeigten Datensätze zu begrenzen.

Kommentar

Um schnell zwischen den Beschreibungs- und Argumentfeldern zu wechseln, können Sie genau wie beim Arbeiten mit Tabellen und Abfragen im Entwurfsmodus die Taste . verwenden .

Es gibt eine andere sehr einfache Möglichkeit, ein Makro einzugeben. Angenommen, Sie möchten ein Makro erstellen, um das Kundenformular in der Northwind-Anwendung zu öffnen. Dafür im Fenster Datenbank(Datenbank) müssen Sie auf die Verknüpfung klicken Formen(Formulare) und dann mit der Symbolleiste (Methode 2) das Fenster öffnen Makrokonstruktor(Makrodesign) und ziehen Sie das Kundenformular in das Aktionsfeld des Makro-Designer-Fensters.

Rat

Zum einfachen Ziehen und Ablegen von Objekten aus dem Datenbankfenster in das Formular wählen Sie den Befehl Fenster, vertikal anordnen, um die Fenster nebeneinander auf dem Bildschirm anzuordnen.

Dann erscheint das OpenForm-Makro automatisch im Aktionsfeld (Abb. 11.2), und die Felder werden automatisch im Argumentfeld ausgefüllt: Das Feld Formularname zeigt den Namen des Kundenformulars im Feld "Ansicht" an - die Standardwert des Formulars (Form), im Feld "Window Mode" - der Wert Verbreitet(Normal). Die restlichen Felder bleiben leer. Im selben Makro können wir einen Filter zum Auswählen von Datensätzen festlegen. Geben Sie dazu im Feld "Filtername" den Namen eines Filters ein, zum Beispiel "Sales Manager", den wir beim Studium von Abfragen erstellt haben (siehe Abschnitt "Abfrage aus einem Filter erstellen", Kapitel 4).

Außerdem können Sie Eingaben in diesem Formular für Änderungen unzugänglich machen, wofür im Feld Datenmodus(Datenmodus) Wert muss eingegeben werden Nur lesen(Schreibgeschützt).

Feige. 11.2. Automatische Erstellung von Makros durch Drag & Drop von Objekten

Ebenso können Sie Makros erstellen, indem Sie sie aus dem Fenster ziehen Datenbank(Datenbank-)Tabellen, Abfragen, Berichte und andere Makros. Die entsprechenden Makros erscheinen im Makro-Designer-Fenster: OpenTable (OpenTable), OpenRequest (OpenQuery), OpenReport (OpenReport), RunMacro (RunMacro).

Um Argumente für ein Makro einzugeben, müssen Sie meistens Werte aus Listen auswählen oder Ausdrücke eingeben. Um Ausdrücke einzugeben, können Sie den Ausdrucksgenerator verwenden, dessen Schaltfläche sich rechts neben dem Argumentfeld befindet. Eine weitere Schaltfläche für den Ausdrucks-Generator befindet sich in der Symbolleiste. Wie in anderen Fällen muss dem Ausdruck ein Gleichheitszeichen (=) vorangestellt werden. Die Ausnahmen sind das Argument Ausdruck(Ausdrucks-)Makros Setvalue und argument Anzahl der Wiederholungen(Wiederholungszähler) Makro-RunMacro (RunMacro). Wenn Sie einem Ausdruck, der den Wert dieser Argumente angibt, ein Gleichheitszeichen voranstellen, wird dieser zweimal ausgewertet, was zu unerwünschten Ergebnissen führen kann.

Wenn Sie den Namen eines Datenbankobjekts als Argument für einen Makrobefehl angeben müssen, können Sie ihn entweder über die Tastatur eingeben, aus der Dropdown-Liste auswählen oder den Namen des Objekts durch Ziehen aus dem Datenbankfenster.

Das von uns erstellte Makro öffnet also das Kundenformular im schreibgeschützten Modus und zeigt nur Vertriebsmanager darin an. Wie bereits erwähnt, kann ein Makro eine Folge von mehreren Makros enthalten. Daher wählen wir im selben Makro in der nächsten Zeile den Makrobefehl Message (MsgBox) aus, der nach dem Öffnen des Formulars ein Dialogfeld mit einer Nachricht anzeigt, welche Clients im Formular angezeigt werden. Geben Sie dazu in das Feld ein Botschaft(Nachricht) im Argumentfeld den Text der Nachricht, zum Beispiel Der Filter für Vertriebsleiter ist installiert, die restlichen Felder können unverändert gelassen werden Streit Signal(Fan) legt fest, ob die Nachricht von einem Piepton begleitet wird. Streit Eine Art(Typ) definiert das Aussehen des Nachrichtendialogfelds. Streit Überschrift(Titel) ermöglicht Ihnen, den Text festzulegen, der im Titel des Meldungsfelds angezeigt wird.

Bei einer großen Datenbank kann es einige Zeit dauern, Datensätze im Formular auszuwählen. Daher wird empfohlen, einen Sanduhr-Cursor auf dem Bildschirm anzuzeigen, um anzuzeigen, dass Daten verarbeitet werden. Dazu verwenden wir das Sanduhr-Makro. Makros in einem Makro werden in der Reihenfolge ausgeführt, in der sie in der Spalte Aktion stehen, also von oben nach unten. Das Sanduhr-Makro sollte zuerst platziert werden, da sich der Cursor ändern muss, bevor das Formular angezeigt wird. Daher müssen wir eine neue Zeile in den Beschreibungsbereich einfügen. Setzen Sie dazu den Cursor auf die erste Zeile des Panels und drücken Sie die Taste Zeilen hinzufügen(Zeilen einfügen) in der Symbolleiste oder einfach die Taste ... Es erscheint eine leere Zeile. Wählen Sie in dieser Zeile im Feld Aktion das Sanduhr-Makro aus. Das Feld Sanduhr Ein im Bedienfeld Argumente zeigt Ja an, was die Standardeinstellung ist, was wir wollen. Um die ursprüngliche Ansicht des Mauszeigers wiederherzustellen, müssen Sie am Ende des erstellten Makros dasselbe Makro Sanduhr eingeben, jedoch mit dem Wert Nein (Nein) als Argument Aktivieren(Sanduhr an).

Streng genommen ist es besser, dieses Makro vor das Makro zu setzen, um die Meldung auf dem Bildschirm anzuzeigen. Dies ist sehr einfach, da Makros einfach mit der Maus ausgetauscht werden können. Um die letzten beiden Makros stellenweise zu vertauschen, markieren Sie die letzte Zeile, indem Sie mit der linken Maustaste auf den Zeilenauswahlbereich (links im Design-Fenster) klicken und die Zeile nach oben ziehen. Die horizontale Linie zeigt die neue Position der Linie. Lassen Sie die Maustaste los, wenn sich diese Linie über der vorletzten Linie befindet.

Jetzt müssen Sie nur noch das erstellte Makro speichern. Dazu können Sie aus dem Menü auswählen Datei(Datei) Befehl Speichern als(Speichern unter) oder drücken Sie die Taste ... Das Fenster zum Speichern des Makros wird angezeigt. Geben Sie im Eingabefeld einen Namen für das Makro ein und beachten Sie dabei die Namenskonventionen für Access-Objekte, wie z. B. Vertriebsleiter.

Kommentar

Microsoft Word und Excel verfügen über automatische Makroaufzeichnungstools. Diese Tools sind sehr praktisch zum Erlernen von VBA, da Sie mit ihnen automatisch eine Prozedur erstellen können, indem Sie die Makroaufzeichnung aktivieren, die erforderlichen Aktionen ausführen und die Aufzeichnung stoppen. Dann werden alle Benutzeraktionen, die nach dem Einschalten der Aufzeichnung und vor dem Stoppen ausgeführt werden, in den Text der VBA-Prozedur umgewandelt. Dieser Text kann dann mit dem VBA-Editor angezeigt und bearbeitet werden. In Microsoft Access gibt es keine automatische Makroaufzeichnung, ebenso wie es keine Tools zur automatischen VBA-Codegenerierung gibt (außer dass die Assistenten erstellen).

Makrogruppen erstellen

Bei der Entwicklung einer Anwendung mit Makros kann die Anzahl der Makros sehr groß sein. Daher ist es wichtig, den Zugriff auf die erforderlichen Makros gut zu organisieren. Dafür in einem Objekt Makro(Makro) mehrere Makros können kombiniert werden. Es wird beispielsweise empfohlen, alle Makros, die Ereignissen in einem Formular oder Bericht zugeordnet sind, in einem separaten Objekt zusammenzufassen, das diesem Formular oder Bericht entspricht. Dazu muss jedes Gruppenmakro einen eigenen Namen haben und den Namen des Objekts Makro(Makro) ist der Name der Makrogruppe.

So erstellen Sie eine Makrogruppe:

  1. Öffnen Sie den Makro-Designer mit einer der im vorherigen Abschnitt beschriebenen Methoden.
  2. Drück den Knopf Makronamen(Makroname) in der Symbolleiste. Eine weitere Spalte erscheint im Beschreibungsfeld im Konstruktor-Fenster – „Makroname“ (Abb. 11.3).
  3. Geben Sie in dieser Spalte den Namen des ersten Makros ein. Es ist besser, die restlichen Felder dieser Zeile leer zu lassen - dies erleichtert das Verschieben und Kopieren von Makros.
  4. Geben Sie ab der nächsten Zeile alle Makros für das Makro und die entsprechenden Argumente für jedes Makro ein.
  5. Überspringe eine Zeile.
  6. Wiederholen Sie die Schritte 3 bis 5 für jedes Makro.

Feige. 11.3. Erstellen Sie eine Makrogruppe

In Abb. 11.H im Designfenster gibt es ein Makro "Mitarbeiter" der Datenbank (Northwind). Es ist kein separates Makro erforderlich, um das Ende eines Makros anzuzeigen. Access führt das Makro in der Gruppe weiter aus, bis es eine Zeile findet, die den Namen in der Spalte Makroname enthält, oder bis es die letzte Zeile im Makrofenster erreicht.

Bei der Verarbeitung eines Makros werden Leerzeilen ignoriert, daher ist es praktisch, sie zum Trennen von Makros in einer Gruppe zu verwenden. Diese Technik sowie das Einfügen von Kommentaren für komplexe Makros, die aus einer großen Anzahl von Makros bestehen, können die Lesbarkeit von Makros verbessern.

Um eines der Gruppenmakros auszuführen, wird der vollständige Name verwendet, um auf das Makro zu verweisen. Der vollständige Name eines Makros wird wie folgt gebildet: GroupName.MacroName.

Kommentar

Sie können das System so konfigurieren, dass die Spalte Makroname(Makroname) wurde im Makrodesigner immer angezeigt. Dazu müssen Sie die entsprechenden Parameter auf der Registerkarte einstellen Aussicht(Ansicht) im Dialogfeld Parameter(Optionen) (siehe Abschnitt "Parameter der Access-Anwendung einstellen" Kapitel 14).

Bedingungen in Makros anwenden macro

In den zuvor genannten Makrobeispielen wurde die sequentielle Ausführungsreihenfolge von Makros verwendet. Wie in jedem Programm kann jedoch die Ausführungsreihenfolge von Makros in einem Makro geändert werden. Dazu werden die Bedingungen zum Ausführen oder Überspringen von Makros eingeführt. Diese Bedingungen werden in Form von Ausdrücken in einer speziellen Spalte gesetzt, die im Makro-Designer-Fenster erscheint, wenn die Schaltfläche gedrückt wird Bedingungen(Bedingungen) in der Symbolleiste (Abb. 11.4).

Kommentar

Wie bei Makrogruppen können Sie Ihre Systemeinstellungen so konfigurieren, dass diese Spalte immer im Makrodesigner erscheint.

Feige. 11.4. Bedingungen in Makros anwenden macro

In Abb. 11.4 zeigt das Constructor-Fenster für die Makrogruppe "Customer Label Dialog", mit dem ein Bericht in Form von Etiketten auf Kuverts gedruckt wird. Außerdem können Sie Aufkleber für alle Kunden auf einmal oder für Kunden eines aus der Liste ausgewählten Landes drucken. Das Fenster zeigt die Spalte Bedingung an. Wenn die in dieser Spalte angegebene Bedingung wahr ist, wird das Makro in dieser Zeile ausgeführt. Ist die Bedingung falsch, wird das entsprechende Makro übersprungen und das nächste ausgeführt.

Müssen mehrere Makros gleichzeitig ausgeführt werden, wenn die Bedingung wahr ist, dann wird für alle Makros außer dem ersten ein Auslassungszeichen (...) in die Spalte Bedingung eingefügt. Die zu prüfende Bedingung wird in die Zeile des ersten Makrobefehls geschrieben. Wenn es wahr ist, wird dann der gesamte Satz von Makros von dieser Bedingung bis zum nächsten Makro mit einer gegebenen Bedingung, zum nächsten Makro oder bis zum Ende des Makros ausgeführt. Wenn die Bedingung falsch ist, werden alle mit Auslassungspunkten gekennzeichneten Befehle übersprungen, einschließlich des Makros mit der angegebenen Bedingung. Als nächstes wird der Makrobefehl ausgeführt, der den fehlenden folgt, der eine neue Bedingung enthält oder das Feld „Bedingung“ nicht gefüllt ist. Anders als „die meisten Programmiersprachen gibt es also keine alternative Verzweigung in Makros. Um ein Makro mit zwei Alternativzweigen zu erstellen, müssen Sie zunächst eine Bedingung eingeben und die Makros definieren, die bei Erfüllung dieser Bedingung ausgeführt werden. Unmittelbar danach müssen Sie die umgekehrte Bedingung angeben und die Makros definieren, die im Alternativzweig ausgeführt werden. Dann können Sie Makros eingeben, die bedingungslos ausgeführt werden. Diese Verzweigungsmethode wird beispielsweise im Vorschau-Makro verwendet, das der Schaltfläche zugeordnet ist Aussicht(Vorschau) in diesem Formular. Wenn der Benutzer die Option ausgewählt hat für alle Länder(AH-Länder), die durch den Wert von 1 der Kontrolle bestimmt wird Aufkleber drucken(PrintLabelFor) wird der Bericht im Vorschaumodus geöffnet und das Formular geschlossen. Wenn das Optionsfeld ausgewählt ist für ein bestimmtes Land(Spezifisches Land) ”und kein Land ausgewählt ist (der Wert des Kombinationsfelds SelectCountry ist nicht festgelegt), wird eine Meldung angezeigt, der Fokus wird auf das Kombinationsfeld zur Länderauswahl gesetzt und das Makro wird nicht mehr ausgeführt. Wenn das Land angegeben ist, wird der Bericht für das ausgewählte Land angezeigt und das Formular geschlossen.

Dieses Makro verwendet das StopMacro-Makro. Es ermöglicht Ihnen, die Ausführung des Makros zu stoppen, während alle Makros, die dem StopMacro-Makro folgen, nicht ausgeführt werden.

Kommentar

Es ist sinnvoll, das StopMacro-Makro nur zu verwenden, wenn ihm andere Makros folgen, die unter bestimmten Bedingungen nicht ausgeführt werden sollen. Wie oben erwähnt, ist kein spezielles Makro erforderlich, um das Ende eines Makros anzuzeigen.

Ausführen und Debuggen von Makros

Es gibt viele Möglichkeiten, Makros auszuführen. Darunter gibt es direkte Wege, wenn das Makro direkt vom Benutzer ausgeführt wird. Diese Methoden werden normalerweise beim Testen von Makros verwendet. Erstellen Sie beim Debuggen des Makros einen speziellen Menübefehl oder eine Schaltfläche auf der Symbolleiste oder ordnen Sie das Makro einem Ereignis in einem Formular oder Bericht zu. In diesem Abschnitt werden alle Möglichkeiten zum Ausführen eines Makros untersucht.

Eine universelle Möglichkeit, ein Makro auszuführen, ist die Verwendung des Menübefehls (Extras, Makro, Makro ausführen) (Abb. 11.5).

In der Dialogbox, die erscheint, wenn Sie diesen Befehl auswählen, müssen Sie den vollständigen Namen des Makros angeben (eingeben oder aus der Liste auswählen), dh GroupName.MacroName (Abb. 11.6). Mit dieser Methode können Sie ein Makro aus jedem aktiven Fenster ausführen, sei es ein Makrofenster, ein Datenbankfenster oder beispielsweise der Formulardesigner.

Feige. 11.5.

Feige. 11.6. Dialogfenster Ausführen eines Makros

Ausführen eines Makros aus dem Makro-Designer-Fenster

Diese Methode wird verwendet, um ein neu erstelltes oder überarbeitetes Makro zu testen. Wenn im Makro-Designer-Fenster nur ein Makro vorhanden ist, müssen Sie zum Ausführen nur die Schaltfläche . drücken Starten(Ausführen) in der Symbolleiste oder wählen Sie den Befehl Laufen, Schritt für Schritt(Ausführen, Einzelschritt) (die letztere Methode ermöglicht das Debuggen des Makros). Wenn jedoch mehrere Makros vorhanden sind, können Sie mit dieser Schaltfläche oder diesem Befehl nur das erste Makro in der Gruppe ausführen. Um ein anderes Makro aus der Gruppe auszuführen, müssen Sie den Menübefehl verwenden Dienst, Makro, Makro ausführen(Extras, Makro, Makro ausführen).

Wenn Sie diese Methode zum Ausführen eines Makros häufig verwenden, ist es sinnvoll, die Symbolleiste anzupassen, indem Sie eine Standardschaltfläche hinzufügen Starten(Makro ausführen). Es entspricht der Ausführung des Menübefehls Dienst, Makro, Makro ausführen(Extras, Makro, Makro ausführen). (Informationen zum Anpassen von Symbolleisten finden Sie im Abschnitt "Symbolleisten erstellen und ändern", Kapitel 14.)

Ausführen eines Makros aus dem Datenbankfenster

So führen Sie ein Makro aus einem Fenster aus Datenbank(Datenbank) klicken Sie auf die Verknüpfung Makros(Makros) im Objektbereich, suchen Sie das gewünschte Makro in der Liste und doppelklicken Sie darauf oder drücken Sie die Schaltfläche Starten(Ausführen) in der Fenstersymbolleiste Datenbank. Letztere Methode ist nur geeignet, wenn das ausgewählte Objekt ein Makro enthält. Andernfalls müssen Sie die oben beschriebene universelle Methode zum Ausführen eines Makros verwenden.

Kommentar

Wenn die Bedingungen oder Argumente von Makros Verweise auf Access-Objekte enthalten - Formulare, Berichte usw. - müssen diese vor der Ausführung des Makros geöffnet sein, andernfalls erhalten Sie Fehlermeldungen.

Ausführen eines Makros über eine Schaltfläche in der Symbolleiste

Direkte Möglichkeiten zum Ausführen von Makros sind einfach, aber nicht die schnellsten. Es gibt bequemere und schnellere Möglichkeiten. Aus unserer Sicht ist es am bequemsten, ein Makro zu starten, indem Sie eine spezielle Schaltfläche in der Symbolleiste erstellen. Es stimmt, es gibt viele Standardsymbolleisten in Access, und entsprechende Bedienfelder werden in verschiedenen Betriebsmodi auf dem Bildschirm angezeigt. Daher ist es am sinnvollsten, eine spezielle Symbolleiste zu erstellen, auf der Sie alle benötigten Schaltflächen platzieren können. Das Hinzufügen einer benutzerdefinierten Schaltfläche zu einer Standardsymbolleiste ist jedoch äußerst einfach.

So fügen Sie der standardmäßigen Access-Symbolleiste eine Schaltfläche hinzu:

  1. Klicken Sie mit der rechten Maustaste auf die Symbolleiste und wählen Sie den Befehl aus dem Kontextmenü Anpassung(Anpassen).
  2. Anpassung(Anpassen) Erweitern Sie die Registerkarte Symbolleisten(Symbolleisten).
  3. Aktivieren Sie zum Beispiel das Kontrollkästchen für eine der Standardsymbolleisten Abfrage im Tabellenmodus(Datenblatt abfragen) zur Anzeige auf dem Bildschirm.
  4. Schließen Sie den Dialog Anpassung(Anpassen) durch Klicken auf die Schaltfläche Schließen(Schließen).
  5. Klicken Sie auf die Verknüpfung Makros Datenbank(Datenbank) und suchen Sie das erforderliche Makro.
  6. Ziehen Sie das Makro mit der Maus in die Symbolleiste Anfrage im Modus Tabellen (Abfragedatenblatt).

Feige. 11.7. Erstellen Sie eine Symbolleistenschaltfläche, um ein Makro auszuführen

Kommentar

Wenn die Hauptbetriebsart Ihrer Anwendung mit Formularen arbeitet, können Schaltflächen zum Ausführen von Makros in der Symbolleiste platziert werden Formularmodus(Formularansicht).

Um die Symbolleiste, der Sie gerade eine Schaltfläche hinzugefügt haben, vom Bildschirm zu entfernen, klicken Sie mit der rechten Maustaste in den Symbolleistenbereich und deaktivieren Sie in der Liste der Standardbefehlsleisten das Kontrollkästchen links neben dem Bedienfeldnamen (Abb. 11.8).

Feige. 11.8. Kontextmenü mit einer Liste von Befehlsleisten

Sehen wir uns nun an, eine spezielle Symbolleiste zu erstellen und eine Makroaufruf-Schaltfläche darauf zu platzieren.

  1. Klicken Sie auf die Verknüpfung Makros(Makros) im Objektbereich im Fenster Datenbank(Datenbank) und wählen Sie das gewünschte Makro aus.
  2. Wählen Sie den Befehl (Extras, Makro, Symbolleiste aus Makro erstellen). Auf dem Bildschirm wird eine leere Symbolleiste angezeigt.
  3. Ziehen Sie das gewünschte Makro mit der Maus in dieses Panel.

Auf dem Bedienfeld wird eine Schaltfläche mit dem bekannten Makrosymbol angezeigt. Die Schaltfläche erhält denselben Namen wie das Makro, für das sie erstellt wurde.

Wenn Sie eine Symbolleiste zum Aufrufen mehrerer Makros erstellen müssen, empfehlen wir, diese Makros zu einer Gruppe zusammenzufassen (das Erstellen einer Gruppe von Makros wurde im vorherigen Abschnitt beschrieben). Wenn Sie dann den Menübefehl ausführen Extras, Makro, Symbolleiste aus Makro erstellen(Extras, Makro, Symbolleiste aus Makro erstellen) wird eine Symbolleiste erstellt, auf der jedes Makro in der Gruppe eine eigene Schaltfläche hat. In diesem Fall zeigen die Schaltflächen die Namen der entsprechenden Makros an. Die neue Symbolleiste hat denselben Namen wie der Makrogruppenname. Versuchen Sie diesen Befehl für eine der Makrogruppen in der Northwind-Datenbank, z. B. Kunden. Optional können Sie den Text auf den Schaltflächen durch Symbole ersetzen. Weitere Informationen zum Anpassen von Anwendungssymbolleisten und insbesondere zum Entfernen von Schaltflächen aus Panels und zum Entfernen der Panels selbst sowie zum Ändern des Aussehens dieser Schaltflächen finden Sie in

Ausführen eines Makros mit einem Menübefehl

Eine andere gängige Methode zum Ausführen eines Makros besteht darin, es mit einem speziell erstellten Menübefehl auszuführen. Die Methoden zum Erstellen von Menübefehlen zum Ausführen von Makros sind denen zum Erstellen von Symbolleistenschaltflächen sehr ähnlich. Dazu können Sie beispielsweise den Menübefehl verwenden Extras, Makro, Menü aus Makro erstellen(Extras, Makro, Menü aus Makro erstellen).

Weitere Informationen zum Erstellen und Konfigurieren benutzerdefinierter Menüs finden Sie unter Sekte. "Befehlsleisten erstellen und ändern" Kap. vierzehn. Daher betrachten wir in diesem Abschnitt nicht das Erstellen eines Menübefehls aus einem Makro.

Ausführen eines Makros mit einer Tastenkombination

Sie können eine Tastenkombination zuweisen, um ein Makro auszuführen. Dazu müssen Sie eine spezielle Gruppe von Makros erstellen - "AutoKeys". Diese Makrogruppe muss ein Makro enthalten, um das entsprechende Makro für jede von Ihnen zugewiesene Tastenkombination auszuführen. Ein Beispiel für die Makrogruppe "AutoK" wird in der Northwind-Datenbank bereitgestellt. Öffnen Sie diese Makrogruppe im Entwurfsmodus. Es enthält ein Makro (Abb. 11.9). Makroname ist ein Shortcut-Datensatz +

Das Makro selbst besteht aus einem Makro, RunMacro, das das Makro „Client-Telefone. Drucken “(Kundentelefonliste.Drucken). Das Makro "AutoKeys" wird jedes Mal angezeigt, wenn der Benutzer spezielle Tastenkombinationen eingibt, wie z +

Wird die eingegebene Tastenkombination in "AutoKeys" gefunden, wird das entsprechende Makro gestartet.

Feige. 11.9. Ein Beispiel für das Makro "AutoKeys"

Diese Methode zum Starten eines Makros ist sicherlich die schnellste, hat jedoch einen erheblichen Nachteil: Es gibt nur sehr wenige freie Tastenkombinationen. Und obwohl die in "AutoKeys" definierten Kombinationen eine höhere Priorität haben als die Standardkombinationen (z. +- kopieren) wird nicht empfohlen, die Standardbelegung von Tastenkombinationen zu ersetzen. Erlaubte Tastenkombinationen sind in der Tabelle aufgeführt. 11.2. Tastenkombinationen in diesem Fall werden sie nicht angewendet, da sie zum Starten von Menübefehlen und Drücken von Tasten verwendet werden.

Tabelle 11.2. Erlaubte Tastenkombinationen

Ausführen eines Makros beim Öffnen einer Datenbank

Wenn Sie eine Microsoft Access-Datenbank öffnen, können einige Aktionen ausgeführt werden. Meistens ist dies das Öffnen eines speziellen Formulars, das sogenannte Main Button Form, das Anzeigen von speziellen Menüs oder Symbolleisten, das Ausblenden von Standardmenüs usw. Um diese Aktionen zu definieren, verwenden Sie das Dialogfeld Startparameter(Anlaufen). Manchmal ist es jedoch erforderlich, beim Starten einer Anwendung komplexere Aktionen auszuführen, als in diesem Dialogfeld zulässig. Beispielsweise müssen Sie möglicherweise mehrere Formulare im Voraus öffnen (ohne sie auf dem Bildschirm anzuzeigen), damit sie später nicht viel Zeit in Anspruch nehmen, einige Bedingungen überprüfen oder nach Daten fragen. All dies kann mit einem speziellen Makro namens "AutoExec" erfolgen. Wenn Sie die Datenbank öffnen, sucht Access nach diesem Makro und führt es, falls vorhanden, aus. Denken Sie beim Erstellen eines "AutoExec"-Makros daran, dass Access zuerst die im Fenster definierten Aktionen ausführt. Startparameter(Startup) gefolgt vom Makro "AutoExec", sodass keine widersprüchlichen Aktionen auftreten sollten.

Ausführen eines Makros von einem anderen Makro aus

Manchmal müssen Sie ein Makro von einem anderen Makro aus aufrufen. Dies kann mit dem RunMacro-Makro erfolgen. Dieses Makro haben wir bereits bei der Beschreibung des Makros "AutoKeys" kennengelernt. Dabei ist zu beachten, dass dieses Makro drei Argumente hat: Neben dem Namen des Makros werden die Anzahl der Wiederholungen der Ausführung des Makros und die Wiederholungsbedingung gesetzt. Somit können Sie mit diesem Makro Schleifen organisieren. Streit Anzahl der Wiederholungen(Repeat Count) legt die Anzahl der Aufrufe des Makros fest. Streit Bedingung wiederholen(Ausdruck wiederholen) ist ein Ausdruck, der wahr oder falsch sein kann. Der Wert dieses Ausdrucks wird überprüft, bevor das RunMacro-Makro ausgeführt wird. Bei True wird das Makro ausgeführt, bei False wird das Makro nicht ausgeführt und die Steuerung an den nächsten Makrobefehl übergeben. Werden diese beiden Argumente nicht angegeben, wird das Makro nur einmal ausgeführt. Wenn beide Argumente angegeben sind, endet die Aufrufschleife, wenn das Makro die angegebene Anzahl von Malen ausgeführt wurde oder wenn die angegebene Bedingung nicht erfüllt und auf False gesetzt ist.

Kommentar

Der Name des Makros im Argument des RunMacro-Makros muss vollständig qualifiziert sein, dh er muss die Form GroupName haben. MacroName, auch wenn sich das aufgerufene Makro in derselben Gruppe wie der Aufrufer befindet. Wenn die Wiederholungsbedingung so eingestellt ist, dass sie immer wahr ist, dann ist die Schleife unendlich. Sie können es mit der Tastenkombination unterbrechen +... Wenn dies nicht hilft, müssen Sie den Zugriff unterbrechen, indem Sie die Tastenkombination drücken ++.

Zuweisen eines Makros zu einem Ereignis

Die häufigste Verwendung von Makros in einer Access-Anwendung ist die Behandlung von Ereignissen. Veranstaltung - es ist jede Aktion, die von einem Objekt erkannt wird, und die Reaktion des Objekts auf ein Ereignis kann bestimmt werden. Ereignisse treten als Ergebnis einer Benutzeraktion, der Ausführung von VBA-Anweisungen auf oder werden vom System generiert. Ein Beispiel für Ereignisse ist das Anzeigen eines Formulars, eines Berichts, das Eingeben von Daten in ein Textfeld oder das Drücken einer Maustaste oder einer Taste. Jedem dieser Ereignisse kann ein Makro oder eine VBA-Prozedur zugewiesen werden, die automatisch als Reaktion auf ein auftretendes Ereignis ausgeführt wird. Fast die gesamte Programmierung in Access läuft darauf hinaus, Makros oder Prozeduren zu schreiben, die Ereignisse behandeln, dh die Reaktion von Objekten auf Ereignisse wird programmiert. Es gibt viele verschiedene Arten von Ereignissen, auf die Objekte reagieren, und oft gibt es nicht ein, sondern eine ganze Abfolge von Ereignissen. Daher müssen Sie etwas Geschick haben, um zu entscheiden, welches Ereignis einer von Ihnen erstellten Makro- oder VBA-Prozedur zugewiesen werden soll. Alle Feinheiten dieser Wahl werden besprochen in Sek. "Programmierung in Formularen und Berichten" Kap. 13. Hier beschreiben wir nur, wie Sie einem Ereignis ein Makro zuordnen und geben Beispiele für die Behandlung von Ereignissen mit Makros.

Beginnen wir mit dem Einfachsten. Öffnen Sie das Formular Kunden in der Northwind-Datenbank. Dieses Formular zeigt Kundeninformationen an. Nehmen wir an, wir möchten nicht nur diese Informationen, sondern auch Daten über die vom Kunden gekauften Produkte sehen. Es wäre schön, einen Button zu erstellen Kundenbestellungen, Wenn Sie darauf klicken, wird das Bestellformular mit Bestellungen nur des Kunden angezeigt, der derzeit im Kundenformular ausgewählt ist. Um zu bekommen, was wir wollen, erstellen wir ein Makro, das ausgeführt wird, wenn das Ereignis eintritt Tastendruck(On Click) im Kundenformular.

Um ein Makro zu erstellen, das die beschriebene Anwendungsreaktion auf ein Ereignis definiert Tastendruck(OnClick):

  1. Öffnen Sie das Formular Kunden in der Entwurfsansicht.
  2. Erstellen Sie eine Schaltfläche im Titelbereich des Formulars. In diesem Fall muss die Wizard-Schaltfläche in der Symbolleiste losgelassen werden, da Sie sonst aufgefordert werden, eine Ereignisbehandlungsprozedur und kein Makro zu erstellen.
  3. Öffnen Sie das Eigenschaftenfenster der gerade erstellten Schaltfläche, falls es noch nicht geöffnet ist, und erweitern Sie die Registerkarte Veranstaltungen(Veranstaltung).
  4. Beachten Sie, wie viele verschiedene Ereignisse nur der Befehlsschaltfläche zugeordnet sind. Neben dem üblichen Drücken, das wir jetzt verwenden, umfasst die Reihe von Schaltflächenereignissen das Fokussieren und Verlieren des Fokus, das Doppelklicken mit der Maus, das einfache Bewegen des Mauszeigers über die Schaltfläche usw. Eine solche Vielzahl von Ereignissen gibt dem Entwickler großartig Möglichkeiten, eine komfortable Benutzeroberfläche zu erstellen. Suchen Sie nun die Veranstaltung in der Liste Tastendruck(Bei Klick) und positionieren Sie den Cursor in die entsprechende Zelle. Dies ist ein Kombinationsfeld und ist derzeit leer. Wenn Sie diese Liste öffnen, ist ihr erstes Element (), und dann gibt es eine Liste aller Makros, die in der Anwendung vorhanden sind (Abb. 11.10).
  5. Da das von uns benötigte Makro nicht in der Liste enthalten ist, erstellen wir es. Klicken Sie dazu rechts neben dem Feld auf die Schaltfläche Builder. Es erscheint ein Fenster Baumeister(Choose Builder), der Ihnen anbietet, einen von drei Buildern auszuwählen: Ausdrücke(Ausdrucksgenerator), Makros(Makro-Builder) und Programme(Code Builder) (Abb. 11.11).
  6. Bitte auswählen Makros(Macro Builder) und klicken Sie auf OK. Es öffnet sich das »Makro-Fenster und ein Dialog, in dem Sie den Namen des zu erstellenden Makros eingeben müssen. Geben Sie den Namen Kundenaufträge ein.

Feige. 11.10. Dialogfeld Schaltflächeneigenschaften Properties

Feige. 11.11. Dialogfenster Übergangssequenz

  1. Sie müssen dem Makro ein einzelnes OpenForm-Makro hinzufügen. Die Werte der Argumente dieses Makros werden in der Tabelle angezeigt. 11.Z.

Tabelle 11.3. Makroargumentwerte OpenForm

Streit Modus(Ansicht) definiert den Modus, in dem das Formular geöffnet werden soll. Es kann folgende Werte annehmen: Die Form(Bilden), Konstrukteur(Design), Aussicht(Druckvorschau), Tabelle(Datenblatt), Übersichtstabelle(PivotTable) und Pivot-Diagramm(Pivot-Diagramm). Streit Auswahlbedingung(Bedingung) definiert eine Bedingung für die Auswahl der im Formular angezeigten Datensätze. Die Bedingung ist ein Ausdruck. In diesem Fall enthält dieser Ausdruck einen Link zum Steuerelement. Kundencode(CustomerlD) im Customers-Formular, mit dem Sie alle Datensätze aus der Orders-Tabelle auswählen können, in der die Kunden-ID dem im Feld CustomerID des Customers-Formulars angegebenen Wert entspricht. (Weitere Informationen zur Verwendung von Referenzen in Makros und Ausdrücken finden Sie im Abschnitt Verwenden von Makros in diesem Kapitel.) Streit Datenmodus(Datenmodus) definiert die Art und Weise mit Daten zu arbeiten und kann einen der folgenden Werte annehmen: Hinzufügen(Hinzufügen), Der Wechsel(Editor Nur lesen(Schreibgeschützt). Schließlich die Argumentation Fenstermodus(Fenstermodus) definiert den Fenstertyp: Verbreitet(Normal), Unsichtbar(Versteckt), Symbol(Symbol) und Dialogfenster(Dialog).

  1. Schließen Sie das Makrofenster und speichern Sie Ihre Änderungen. Im Eigenschaftsfenster der Schaltfläche im Feld Tastendruck(Bei Klick) wird der Name des Makros "Verkaufsaufträge" angezeigt.
  2. Erweitern Sie die Registerkarte Format und geben Sie ein Unterschrift(Beschriftung) Schaltflächenname: Kundenbestellungen. Es wird empfohlen, den gleichen Namen in das Feld einzugeben Name Registerkarte (Name) Andere(Andere).

Jetzt müssen Sie nur noch in den Formularmodus gehen und überprüfen, wie das Makro das Ereignis auswertet Tastendruck(Bei Klick). Wenn Sie sich nirgendwo irren, sollten Sie auf dem Bildschirm ein Bild ähnlich dem in Abb. 11.12.

Feige. 11.12. Formular "Bestellungen"

Allerdings haben wir noch nicht alle notwendigen Schritte abgeschlossen. Wenn Sie im Kundenformular zum nächsten Datensatz wechseln, spiegeln die Daten im Bestellformular die Situation nicht mehr richtig wider – sie ändern sich nicht. Es ist darauf zu achten, dass sich diese Daten synchron mit dem Übergang zu anderen Datensätzen im Formular „Kunden“ ändern oder dass sich dieses Fenster einfach schließt. Betrachten wir die Implementierung der zweiten Option. Das Bestellformular öffnet sich, wenn wir auf die Schaltfläche klicken Kundenbestellungen, und wird aktiv. Sie möchten es schließen, wenn das Formular Kunden aktiv wird. Dazu müssen Sie das entsprechende Ereignis auswählen und eine Prozedur oder ein Makro festlegen, um es zu behandeln. Wenn du ein Fenster öffnest Eigenschaften(Eigenschaften) des Formulars "Kunden" und öffnen Sie die Registerkarte Veranstaltungen(Ereignis), dann sehen Sie unter den vielen Ereignissen ein Ereignis Einschalten(Bei Aktivieren). Das ist genau die Veranstaltung, die wir brauchen. Wir werden dieses Ereignis auswählen, aber jetzt keine neue Makrogruppe erstellen, sondern ein neues Makro zur Makrogruppe Kunden hinzufügen, die bereits Makros für das Formular Kunden enthält. Wählen Sie diese Makrogruppe aus der Dropdown-Liste aus und klicken Sie auf die Schaltfläche Builder. Es öffnet sich ein Fenster mit zwei Makros. Fügen wir ihnen ein weiteres Makro hinzu. Nennen wir es „Schließen“ und geben den Makrobefehl Schließen mit den entsprechenden Parametern ein (Tabelle 11.4). Bevor Sie das Formular schließen, müssen Sie jedoch überprüfen, ob es geöffnet ist. Dazu verwenden wir die Funktion isLoaded, die True zurückgibt, wenn das Formular geöffnet ist, andernfalls False. Der Name des Formulars muss als Argument an die isLoaded-Funktion übergeben werden. Also, in die Spalte Bedingung(Bedingung) Geben Sie neben dem Schließen-Makro IsLoaded (oder IsLoaded (Orders)) ein.

Streit Wert
Objekttyp Formular (Formulare)
Objektname Aufträge
speichern Nein (Nein)

Tabelle 11.4. Argumentwerte für Aktion schließen

Streit Erhaltung(Speichern) lässt Sie steuern, ob Access ein Dialogfeld anzeigt, wenn Sie das Formular schließen, um zu bestätigen, dass die geänderten Daten gespeichert werden. Da wir das Bestellformular im schreibgeschützten Modus geöffnet haben, ist das Ändern der Daten verboten, daher muss dieses Argument auf . gesetzt werden Nein(Nein). Das fertige Makro ist in Abb. 11.13.

Schließen Sie das Makrofenster und speichern Sie Ihre Änderungen. Ändern Sie den Namen des dem Ereignis zugewiesenen Makros Einschalten(Bei Aktivieren). Wählen Sie dazu aus der Liste oder geben Sie den Namen Kunden ein.Schließen und drücken Sie die Taste ... Speichern Sie nun das Formular, wechseln Sie in den Formularmodus und prüfen Sie, wie die von Ihnen erstellten Makros funktionieren.

Feige. 11.13. Makro zum Schließen eines Formulars

Aufruf eines Makros aus einer VBA-Prozedur

Wie bereits erwähnt, sind VBA-Prozeduren und Makros in Access enge und oft austauschbare Objekte, d. h. Sie können anstelle eines Makros eine VBA-Prozedur verwenden und umgekehrt. Es gibt Möglichkeiten, ein Makro aus einer VBA-Prozedur auszuführen, eine VBA-Prozedur aus einem Makro auszuführen, und Access ermöglicht Ihnen, ein Makro in eine VBA-Prozedur zu konvertieren. Diese Konvertierung ist beschrieben in Sekte. „Konvertieren von Makros in VBA-Prozeduren“ in diesem Kapitel.

Um eine VBA-Prozedur aus einem Makro heraus zu starten, gibt es ein spezielles RunProgramme (KipCode)-Makro. Dieses Makro hat ein Argument, den Namen der aufzurufenden Prozedur, obwohl nur eine Funktion aufgerufen werden kann, keine Unterroutine.

Um ein Makro aus einer VBA-Prozedur auszuführen, verwenden Sie die spezielle RunMacro-Methode des DoCmd-Objekts, zum Beispiel:

DoCmd.RunMacro "Makro!"

Das DoCmd-Objekt wird in einer VBA-Prozedur verwendet, um Access-Makros auszuführen. In diesem Fall muss als Methode des DoCmd-Objekts der englische Name des benötigten Makros angegeben werden, zum Beispiel die Prozedurzeile

DoCmd.OpenForm "Kunden"

ermöglicht das Öffnen des Formulars "Kunden". Hier ist "Clients" das Argument zum Makro. Argumente werden in der DoCmd-Klausel durch Kommas getrennt aufgelistet. Die meisten Makros können auf diese Weise ausgeführt werden.

Wir werden die Erstellung von VBA-Prozeduren im Folgenden in Betracht ziehen CH. 13.

Debuggen von Makros und Finden von Fehlern

Normalerweise wird ein Makro zum Debuggen schrittweise ausgeführt. Um diesen Modus zu aktivieren, drücken Sie die Taste Schritt für Schritt(Einzelschritt) in der Symbolleiste des Makro-Builder-Fensters oder wählen Sie den Menübefehl Laufen, Schritt für Schritt(Ausführen, Einzelschritt). Dann erscheint vor der Ausführung jedes Makrobefehls die Dialogbox (Macro Single Step) (Abb. 11.14).

Dieses Fenster zeigt den Namen des Makros, den Namen des ausführbaren Makros, die Bedingung für seine Ausführung und Argumente an. Außerdem in den Feldern Bedingung(Zustand) und Argumente(Argumente) die Werte des bedingten Ausdrucks und die Argumente des Makros sind sichtbar. Wenn in der Makrozeile keine Bedingung angegeben ist, zeigt das Feld Bedingung immer den Wert an Wahr(Wahr). Mit den Schaltflächen rechts neben den Feldern in diesem Fenster können Sie den nächsten Makrobefehl ausführen, die Makroausführung unterbrechen (z. B. wenn Sie sehen, dass die Argumente falsch berechnet wurden) und die Ausführung wie gewohnt fortsetzen, d Schritte.

Feige. 11.14. Dialogfenster Schrittweise Ausführung eines Makros

Tritt bei der Ausführung eines Makros ein Fehler auf, erscheint ein Dialogfeld. Fehler bei der Makroausführung(Aktion fehlgeschlagen), ähnlich wie Fenster Schrittweise Ausführung eines Makros(Macro Single Step), aber ohne Möglichkeit, den Vorgang fortzusetzen (Schaltflächen Schritt(Schritt) und Vorgehen(Weiter) sind nicht verfügbar). Sie können die Ausführung des Makros nur unterbrechen, indem Sie auf die Schaltfläche klicken Abbrechen(Halt). Im Fenster wird ein Makro mit einem Fehler angezeigt.

Das Auffinden von Fehlern in Makros ist normalerweise einfach. Dies liegt daran, dass:

  • Die meisten Syntaxfehler werden während der Eingabe überprüft und das System lässt Sie einfach nicht zu, einen falschen Makronamen oder einen bedingten Ausdruck einzugeben (es schützt Sie jedoch nicht vor der Eingabe eines falschen Objektnamens, z. B. eines nicht vorhandenen Formulars oder ein Formularsteuerelement);
  • Makros sind in der Regel recht einfach und enthalten keine langen Makrosequenzen, ansonsten ist es besser, eine Prozedur in VBA zu schreiben, da die VBA-Sprache mehr Möglichkeiten bietet und deutlich bessere Debugging-Möglichkeiten bietet.

Die Hauptfehler, die in Makros auftreten, hängen entweder mit der falschen Eingabe von Objektnamen zusammen, und dann kann Access das entsprechende Objekt nicht finden, oder die vom Makro referenzierten Objekte sind nicht verfügbar, z . Daher ist im Fehlerfall zunächst zu prüfen, ob die Objektnamen korrekt eingegeben wurden und ob die in den Bedingungen oder Argumenten der Makros verwendeten Formulare geöffnet sind.

Rat

Bevor Sie Links zu einem Formular oder Steuerelement verwenden, sollten Sie überprüfen, ob das Formular geöffnet ist, indem Sie die Funktion isLoaded() verwenden. Leider handelt es sich bei dieser Funktion nicht um eine standardmäßige Access-Funktion, sondern ist normalerweise im Utility Function-Modul der Northwind-Datenbank enthalten. Sie können es von dort in Ihre Datenbank kopieren.

Die Standardtechnik zum Debuggen sowohl von Prozeduren als auch von Makros besteht darin, spezielle Meldungen auf dem Bildschirm anzuzeigen, die den Ablauf bestimmter Phasen des Prozesses anzeigen. In Makros geschieht dies durch Einfügen zusätzlicher MsgBox-Makros, um solche Meldungen anzuzeigen. Darüber hinaus können Sie in der Nachricht die Werte der Eigenschaften der Steuerelemente anzeigen, zum Beispiel: "Produktpreis =" & Formulare! Produkte! Preis

Sie können die Anzeige von Debug-Meldungen ganz einfach ausschalten, indem Sie in der Spalte Bedingung gegenüber den entsprechenden Makros den Wert False eingeben.

Ein weiterer gängiger Trick ist das Setzen von Breakpoints. Es wird verwendet, um die Ausführung eines Makros an einem bestimmten Punkt zu stoppen, bevor der Prozess endet. Verwenden Sie dazu das StopMacro-Makro. Das Makro wird vor dem StopMacro-Makro ausgeführt, danach können Sie die Ergebnisse überprüfen. Somit ist es möglich, den Fehler bis auf Makro-Genauigkeit zu lokalisieren.

Anwenden von Makros

Mit Makros können verschiedenste Aufgaben gelöst werden. Im ersten Abschnitt dieses Kapitels haben wir eine Tabelle mit Makros bereitgestellt, die nach Kategorien gruppiert sind. Schauen wir uns nun die Verwendung von Makros einiger Kategorien an.

Arbeiten mit Daten in Formularen und Berichten

Diese Kategorie umfasst eine Reihe von Makros, die Daten auswählen, durch Daten navigieren und Daten in Formularen aktualisieren. Bevor wir zu Beispielen für die Verwendung von Makros übergehen, zeigen wir Ihnen, wie Sie Verweise auf Formulare, Berichte und Steuerelemente in den Argumenten und Bedingungen von Makros verwenden, da solche Verweise sehr häufig verwendet werden.

Links zu Formularen, Berichten und deren Eigenschaften

Um auf ein Formular oder einen Bericht zu verweisen, müssen Sie zunächst feststellen, zu welcher Sammlung das referenzierte Objekt gehört. (Weitere Informationen zu Familien und ihren konstituierenden Objekten finden Sie in Kapitel 13) Alle geöffneten Formulare befinden sich in der Formularfamilie und geöffnete Berichte befinden sich in der Berichtsfamilie. Ein vollständiger Link zu einem Formular oder Bericht muss aus zwei Teilen bestehen: FamilyName!ObjectName. Enthält der Objektname außerdem Leerzeichen oder Sonderzeichen, muss er in eckige Klammern eingeschlossen werden. Wenn im Namen keine Leerzeichen verwendet werden, können Klammern weggelassen werden. Der Link zum Formular sieht also so aus: Formulare![Kundenaufträge] ODER Formulare!Kunden Für den Bericht sehen die Links ähnlich aus:

Berichte! [Verkaufsbericht] ODER Berichte! Preisliste Ein Link zu einem Formular oder einer Berichtseigenschaft besteht aus drei Teilen: Familienname! Objektname.Eigenschaftsname Zum Beispiel:

Formulare Clients.Visible oder Reports [Period Sales] .MenuBar Property Ausgabe auf dem Display(Sichtbar) legt fest, ob das Formular auf dem Bildschirm sichtbar oder ausgeblendet ist, und die Eigenschaft Speisekarte(MenuBar) ermöglicht es Ihnen, einem Bericht oder Formular ein spezielles Menü zuzuordnen.

Links zu Kontrollen von Formularen, Berichten und deren Eigenschaften

Um eine Verknüpfung zu einem Steuerelement oder seiner Eigenschaft herzustellen, müssen Sie seinen Namen angeben. Enthält der Name Leerzeichen, wird er in eckige Klammern eingeschlossen. Ein Link zu einem Steuerelement in einem Formular oder Bericht besteht aus drei Teilen:

Familienname!Objektname!Elementname

Formulare [Kundenaufträge]! [Auftragsnummer]

Berichte! [Umsatz für den Zeitraum]! [Betrag]

Familienname! Objektname! ItemName.PropertyName

Beispielsweise:

Formulare [Kundenbestellungen] [Bestellnummer] .Aktiviert

Eigentum Zugriff(Aktiviert) ermöglicht Ihnen, den Zugriff auf das Steuerelement zu verweigern oder zuzulassen.

Ein Objekt kann eine Standardeigenschaft haben. Diese Eigenschaft wird verwendet, wenn der Eigenschaftsname nicht explizit im Link angegeben ist. Steuerelemente haben beispielsweise die Standardeigenschaft Wert(Wert), also der Link Formulare! Produkte! Mit Preis können Sie auf den im Textfeld Preis angezeigten Wert zugreifen.

Links zu Unterformularen und Berichten

Sie können auf ein Unterformular oder einen Bericht wie auf jedes andere Steuerelement verweisen, da das Unterformular und der Unterbericht ein Steuerelementtyp sind. Beispielsweise:

Formulare! Bestellungen! UnterformularProdukte

Hier ist SubformProducts der Name des Steuerelements im Bestellformular, bei dem es sich um ein Unterformular handelt.

Der Link zu einem Steuerelement in einem Unterformular oder Bericht hat jedoch eine besondere Struktur: Nach dem Namen des Steuerelements, das ein Unterformular ist, müssen Sie zuerst eine spezielle Eigenschaft angeben: Formular - für Formulare oder Bericht - für Berichte und dann den Namen des Steuerelements, auf dem es ausgeführt wird, Link:

Formulare! Bestellungen! ProdukteSubform.Form! [Produktcode]

Filtern von Datensätzen in Formularen, Berichten, Tabellen

Kommen wir zu Beispielen für die Verwendung von Access-Makros. Um Datensätze in Formularen, Berichten und Tabellen auszuwählen, verwenden Sie den Makrobefehl ApplyFilter. Es gibt zwei Möglichkeiten, einen Filter zu definieren: entweder durch Angabe des Namens eines zuvor erstellten Filters im Argument Filtername(Filtername) oder durch direkte Angabe der Auswahlbedingung im Argument Auswahlbedingung(Wo Bedingung). Wenn der Filter sofort beim Öffnen des Formulars angewendet werden soll, dann mit dem Ereignis Öffnung(Beim Öffnen) muss das Formular ein Makro binden, das das ApplyFilter-Makro enthält. Wenn Sie die angezeigten Datensätze in einem geöffneten Formular dynamisch ändern müssen, gehen Sie wie folgt vor:

  • Erstellen Sie in diesem Formular eine Reihe von Feldern, in denen Sie die Auswahlbedingungen festlegen können;
  • eine Schaltfläche erstellen Filter anwenden, mit dem das Makro verknüpft werden soll, das das ApplyFilter-Makro enthält. Als Argumentwert Auswahlbedingung(Where-Bedingung) für dieses Makro gibt einen Ausdruck an, der Verweise auf diese Felder enthält.

Ein Beispiel für eine solche Lösung ist in Abb. 11.15. Diese Abbildung zeigt das Formular Produkte, mit dem Sie Produkte mit einer Auswahl nach verschiedenen Kriterien durchsuchen können.

Dieses Formular wird mithilfe des Assistenten für automatische Multifunktionsleistenformulare aus der Tabelle Products erstellt. Anschließend werden ihm im Formularentwurfsmodus Felder hinzugefügt, um Auswahlkriterien und Schaltflächen zum Anwenden und Aufheben des Filters zu definieren. Entsprechende Makros, die dem Ereignis zugeordnet sind Tastendruck(On Click) sind in Abb. 11.16. Um den Filter abzubrechen, verwenden Sie den Makrobefehl ShowAllRecords.

Feige. 11.15. Formular zur Auswahl von Datensätzen nach bestimmten Kriterien


Feige. 11.16. Makros zum Setzen und Aufheben eines Filters im Formular "Produkte"

In Abb. 11.16 präsentiert zwei Makros: SetFilter und CancelFilter. Im Dialogfeld Eingabebereich(Zoom) der Wert des Arguments wird angezeigt Auswahlbedingung(Where-Bedingung) des ApplyFilter-Makros. Bitte beachten Sie, dass sich die Bedingung als ziemlich kompliziert herausstellte und die Feldlänge Auswahlbedingung(Where-Bedingung) ist auf 255 Zeichen beschränkt. Wenn wir also ein weiteres Feld in die Auswahlbedingungen aufnehmen, zum Beispiel "Lieferungen gestoppt", müssten wir separat einen speziellen Filter erstellen und dessen Namen im Argument setzen Filtername(Filtername).

Im Makro „UndoFilter“ werden neben dem ShowAllRecords Makro noch zwei weitere Makros benötigt, um die Felder „SupplierSelect“ und „TypeSelect“ zu leeren, also ihnen einen Wert zuzuweisen Leer(Null). Dies geschieht mit dem SetValue-Makro.

Durch Daten navigieren

Diese Gruppe von Makros ist mit der Navigation durch Datensätze und Steuerelemente verbunden. Betrachten Sie als Beispiel für die Verwendung der Makros dieser Gruppe eine Situation, in der ein Benutzer mit dem Formular "Kunden" arbeitet und die Bestellung des aktuellen Kunden finden möchte, dessen Nummer er kennt. Gehen wir zurück zu dem Beispiel in Sekte. "Ein Makro einem Ereignis zuweisen". Dann haben wir im Formular "Kunden" eine Schaltfläche erstellt. Kundenbestellungen um die Bestellungen des ausgewählten Kunden anzuzeigen. Versuchen wir, diese Formulare zu verbessern. Kennt der Benutzer die Bestellnummer, kann er diese in das Textfeld eingeben Bestellung suchen, die dem Kundenformular hinzugefügt werden können. Anschließend sollten Sie im geöffneten Formular "Bestellungen" sofort den Beleg mit der entsprechenden Rechnung vorzeigen. Fügen wir der Kopfzeile des Formulars das Feld „Suche nach Bestellung“ hinzu und machen Sie es so, dass beim Öffnen des Formulars „Bestellungen“ der Wert dieses Felds überprüft wird und, wenn es nicht leer ist, die Rechnung mit der angegebenen Nummer gesucht und der Übergang zum entsprechenden Datensatz durchgeführt. Andernfalls würde der erste Datensatz aus dem gefilterten Datensatz zum aktuellen Datensatz. In Abb. Abbildung 11.17 zeigt das Kundenformular mit einem neuen Feld und einem Find Order-Makro, das mit dem On Load-Ereignis des Orders-Formulars verknüpft ist.

Da sich das hinzugefügte Ereignismakro auf ein Steuerelement im Kundenformular bezieht, sollte es nur ausgeführt werden, wenn das Formular geöffnet ist, und außerdem sollte die Suche nur durchgeführt werden, wenn das Feld Bestellsuche nicht leer ist ... Darauf aufbauend werden die Bedingungen des Makros gebildet. Bevor Sie einen Datensatz anhand eines Musters in einem der Felder suchen, müssen Sie dieses Feld aktivieren, wofür Sie das Makro KElementControl (GoToControl) verwenden. Es setzt den Fokus auf das Feld Orderld. Dieses Feld ist jedoch im Bestellformular nicht verfügbar, daher müssen Sie zuerst den Wert der Eigenschaft ändern Zugriff(Aktiviert) dieses Feld. Andernfalls führt die Ausführung des GoToControl-Makros zu einem Fehler.

In der Regel wird das Makro KElementControl (GoToControl) verwendet, wenn Sie die Standardreihenfolge des Übergangs zwischen Feldern in einem Formular ändern möchten. Normalerweise erfolgt der Übergang zwischen den Feldern mit der Taste<Таb>Manchmal möchten Sie jedoch eine Reihe von Feldern überspringen und den Fokus auf ein bestimmtes Steuerelement verschieben. Dies kann von einer bestimmten Bedingung abhängen, z. B. vom Wert eines Felds. In diesem Fall ist die Veranstaltung Nach dem Update(After Update) diesem Prlya wird ein Makro zugewiesen, das den Fokus auf das gewünschte Steuerelement im Formular verschiebt. Als Argument für das Makro muss der Kurzname des Steuerelements angegeben werden. Wenn der Name zu lang ist, wird nicht zum Steuerelement navigiert und eine Fehlermeldung angezeigt.

Feige. 11.17. Beispielmakro zum Navigieren in Daten

Aktualisieren von Daten in Formularen und Steuerelementen

Die letzte Gruppe von Makros in dieser Kategorie bezieht sich auf die Aktualisierung von Daten in aktiven Formularen, Tabellen und Abfragen. Wenn mehrere Personen im Netzwerk gleichzeitig Daten ändern, spiegeln die Formulare und Tabellen eines bestimmten Benutzers möglicherweise nicht die tatsächlichen Daten wider. Damit die angezeigten Daten dem aktuellen Stand der Datenbank entsprechen, müssen diese mit dem Befehl Beiträge, Update(Aufzeichnen, Aktualisieren) (siehe Abschnitt Arbeiten mit Datensätzen, Kapitel 2).

Eine ähnliche Situation tritt sogar im Einzelbenutzermodus auf, wenn ein Formular ein Kombinationsfeld verwendet, dessen Datenquelle eine Tabelle oder Abfrage ist. Wenn der ursprünglichen Tabelle Datensätze hinzugefügt wurden, werden sie nicht automatisch im Kombinationsfeld angezeigt - Sie müssen die Abfrage erneut ausführen. Steuerelemente, die die angezeigten Daten aktualisieren müssen, umfassen neben Kombinationsfeldern auch Listen- und Teilformularsteuerelemente, OLE-Objekte und berechnete Steuerelemente, die Aggregatfunktionen für eine Teilmenge von Datensätzen enthalten, z. B. DLookUp() oder DSum().

Um Datensätze in Formularen, Tabellen oder Steuerelementen zu aktualisieren, verwenden Sie die Makros Requery, ShowAllRecords und RepaintObject.

Das Update-Makro (Requery) aktualisiert die Daten im Datenbankobjekt, indem es die Datenquelle erneut besucht. Das Makro hat ein Argument, das den Namen des zu aktualisierenden Objekts enthält. Wenn Sie ein aktives Objekt aktualisieren, z. B. ein Formular, sollte das Argumentfeld leer bleiben. In diesem Fall führt das Makro die in der Eigenschaft angegebene Anforderung erneut aus Datenquelle(RecordSource) dieses Formulars.

Sehen wir uns ein Beispiel für die Verwendung eines Makros zum Aktualisieren von Daten an. Das Formular Kunden enthält ein Kombinationsfeld Land. Die Datenquelle für dieses Feld ist eine Abfrage, die Werte aus dem Feld Country der Customers-Tabelle abruft:

SELECT DISTINCT Clients.Country FROM Clients;

Wird bei der Eingabe eines Kunden ein neuer Ländername in die Tabelle aufgenommen, so erscheint dieses Land nicht in der Liste, da die Abfrage erst beim nächsten Öffnen des Formulars wiederholt wird. Um die Länderliste früher zu aktualisieren, sollten Sie ein Ereignis zuweisen Nach dem Update(After Update) des Formulars Macro Clients Aktualisieren der Länderliste, die aus einer Macro Requery mit dem Wert des Arguments "Country" besteht (Abb. 11.18).

Feige. 11.18. Zuweisen eines Makros zu einem Formularereignis Nach dem Update

Kommentar

Das Requery-Makro aktualisiert nur ein Objekt. Wenn also Steuerelemente im Formular vorhanden sind, die eine Aktualisierung der angezeigten Daten erfordern, und das diesem Formular zugewiesene Makro das Requery-Makro mit einem leeren Argumentwert verwendet, werden nur die Datensätze im Formular verwendet bleibe auf dem Laufenden. Für jedes solche Steuerelement muss ein separates Makro verwendet werden. Wenn dieses Makro den Namen eines Steuerelements als Argument enthält, wird nur dieses Steuerelement aktualisiert, wenn es ausgeführt wird. Die Einträge im Formular selbst werden nicht aktualisiert.

Mit dem Update-Makro (Requery) können Sie Daten in einem inaktiven Formular aktualisieren, genauer gesagt, nicht in dem Formular, dem das Makro zugeordnet ist. In diesem Fall müssen Sie jedoch zuerst das SelectObject-Makro ausführen, das den Fokus auf das gewünschte Formular überträgt, um es zu aktivieren (dann kann der Fokus wieder zurückgegeben werden).

Die Makroaktion ShowAllRecords bricht, wie bereits erwähnt, den Filter ab und zeigt die Quelle der Datensätze erneut an. Es wird häufig verwendet, um Daten in einer untergeordneten Form zu aktualisieren.

Die Makroaktion RepaintObject gilt nur für ein Datenbankobjekt (Tabelle, Abfrage, Formular, Bericht, Seite, Makro und Modul) und nicht für ein Steuerelement. Es aktualisiert das angegebene offene Objekt sofort (wenn kein Objektname angegeben wird, wird das aktive Objekt aktualisiert), obwohl es die Abfrage für die Datenquelle nicht erneut ausführt. Das Aktualisieren des Objekts hat keine Auswirkungen. Anzeige von neuen und gelöschten Datensätzen, wie es beim Ausführen des Update-Makros (Requery) geschieht. Normalerweise wird das RepaintObject-Makro verwendet, um die Ergebnisse von Datenänderungen mithilfe der SetValue-Makros anzuzeigen und die Werte von Ausdrücken in berechneten Steuerelementen neu zu berechnen.

Arbeiten mit Objekten

Schauen wir uns zunächst an, wie das SetValue-Makro verwendet wird, mit dem Sie Eigenschaftswerte für Steuerelemente in Formularen und Berichten festlegen können. Wir haben dieses Makro bereits in den vorherigen Beispielen verwendet.

Durch das Festlegen der Eigenschaften von Steuerelementen können Sie diese Steuerelemente je nach Bedingungen dynamisch unzugänglich oder unsichtbar machen. Hier sind einige Beispiele.

  • Sie können ein Formular erstellen, in dem, abhängig von bestimmten Bedingungen, verschiedene Felder sichtbar sind. Dadurch können Sie ein Formular in mehreren Fällen verwenden und nicht für jede Situation ein zusätzliches Formular erstellen. Wenn die Anwendung viele Formulare enthält, ist diese Funktion sehr nützlich. Um das Steuerelement unsichtbar zu machen, setzen Sie den Wert Falsch(Falsch) für Eigentum Ausgabe auf dem Display(Sichtbar) dieses Artikels. Um das Steuerelement auf dem Bildschirm anzuzeigen, setzen Sie diese Eigenschaft auf Wahr(Wahr).
  • Abhängig vom aktuellen Arbeitsstatus mit Daten können Sie die Verfügbarkeit von Schaltflächen zum Ausführen bestimmter Aktionen oder anderer Steuerelemente im Formular ändern. Um das Steuerelement nicht verfügbar zu machen, legen Sie den Wert fest Falsch(False) auf seine Enabled-Eigenschaft. Um das Steuerelement zugänglich zu machen, stellen Sie den Wert ein Wahr(Wahr) für diese Eigenschaft.
  • Sie können verhindern, dass der Benutzer die Daten im Formular ändert. Dafür ist die Eigenschaft Zugriff(Aktiviert) entsprechende Felder sollten auf . gesetzt werden Falsch(Falsch) und die Eigenschaft Sperren von Datensätzen(Gesperrt) - Wert Wahr(Wahr). Wenn Sie das Ändern in allen Feldern verbieten möchten, legen Sie den Wert fest Falsch(False) für die folgenden Formulareigenschaften: Änderungen zulassen(Änderungen zulassen), Hinzufügen zulassen(Ergänzungen zulassen), Löschen zulassen(Erlaube Streichungen). Diese Eigenschaften können dynamisch geändert werden, dh während der Benutzer mit dem Formular arbeitet. Sie können beispielsweise die Datenbearbeitung aktivieren oder deaktivieren, nachdem Sie die Rechte des Benutzers überprüft haben.
  • Mit der Makroaktion SetValue können Sie den Eigenschaftswert dynamisch ändern Aufnahmequelle(RecordSource) für das Formular, mit dem Sie den Inhalt der angezeigten Daten steuern können.

Es gibt Makros zum Öffnen und Schließen von Access-Objekten:

OpenForm, OpenQuery, OpenReport usw. Um ein Objekt jedes Typs zu öffnen, verwenden Sie einen separaten Makrobefehl, und um ein Objekt zu schließen, verwenden Sie den für Objekte aller Typen gemeinsamen Makrobefehl Schließen. Der Objekttyp, auf den dieses Makro angewendet werden soll, wird als eines seiner Argumente angegeben. In den vorherigen Beispielen wurden bereits die Makros OpenForm und Close für das aktive Objekt verwendet.

Mit der OpenQuery-Makroaktion können Sie jede Art von Abfrage ausführen, einschließlich einer Abfrage zum Ändern von Daten. Wenn als Argument für dieses Makro der Name einer Auswahlabfrage oder einer Querabfrage angegeben wird, werden als Ergebnis der Makroausführung die ausgewählten Datensätze angezeigt. Wenn das Argument der Name der Anforderung zum Ändern der Daten ist, führt das Makro die Anforderung aus und ändert die Daten in den Tabellen entsprechend.

Wenn Sie eine Abfrage ausführen, die Daten ändert, werden Warnmeldungen auf dem Bildschirm angezeigt. Um die Anzeige dieser Meldungen zu deaktivieren, verwenden Sie das SetWarnings-Makro mit dem Argumentwert Nein(Nein). Denken Sie daran, die Anzeige von Systemmeldungen nach der Ausführung der Abfrage wieder zu aktivieren, indem Sie dasselbe Makro verwenden, jedoch mit dem Argument Ja. Andernfalls zeigt Access keine Systemmeldungen an, die zu unerwünschten Aktionen in der Anwendung führen können.

Das OpenView-Makro ähnelt dem OpenQuery-Makro, wird jedoch in Access 2000-Projekten verwendet und ist für die Arbeit mit auf dem Server gespeicherten Daten vorgesehen.

Mit der Makroaktion OpenStoreProcedure können Sie eine gespeicherte Serverprozedur im Bearbeitungsmodus ausführen oder öffnen. .

In diesem Abschnitt werden nicht alle Makros beschrieben. Vollständige Informationen finden Sie im Access-Hilfesystem. So erhalten Sie schnelle Hilfe:

  1. Wähle ein Team Hilfe, Micrift-Hilfe Access (Hilfe, Microsoft Access-Hilfe).
  2. Erweitern Sie die Registerkarte Antwortassistent(Antwortassistent) und geben Sie in das Feld ein Wählen Sie eine Aktion(Was möchten Sie tun?) Ist der Name des Makros. Drück den Knopf Finden(Suche).

Konvertieren von Makros in VBA-Prozeduren

Wenn Sie viele Makros erstellt haben und sich dann entschieden haben, zur VBA-Programmierung überzugehen, müssen Sie sich keine Sorgen machen, alle erstellten Makros in VBA neu schreiben zu müssen. Access hat die Möglichkeit, Makros automatisch in VBA-Prozeduren zu konvertieren. Dies gilt sowohl für Makros, die Ereignissen in Formularen und Berichten zugeordnet sind, die in Ereignisprozeduren umgewandelt werden, als auch für allgemeine Makros, die sich nicht auf Formulare und Berichte beziehen. Alle werden in separate Standardmodule umgewandelt.

Versuchen wir, Makros, die Ereignissen im Formular Customers Labels Dialog zugewiesen sind, in Ereignisroutinen umzuwandeln:

  1. Öffnen Sie das Formular Customers Labels Dialog in der Entwurfsansicht.
  2. Wähle ein Team Service, Makro, Formularmakros konvertieren(Extras, Makro, Makros des Formulars in Visual Basic konvertieren).
  3. Im Dialogfeld Formularmakrokonvertierung(Formularmakros konvertieren) (Abb. 11.19) Klicken Sie auf die Schaltfläche Konvertieren(Konvertieren), wobei die Standard-Kontrollkästchen aktiviert bleiben.

Feige. 11.19. Konvertieren von Makros in VBA-Verfahren

  1. Wenn die Konvertierung abgeschlossen ist, klicken Sie z. B. im Formular Customers Labels Dialog mit der rechten Maustaste Stornieren, und wähle den Befehl Eigenschaften(Eigenschaften).
  2. Im Dialogfeld Eigenschaften(Eigenschaften) Erweitern Sie die Registerkarte Veranstaltungen(Veranstaltungen).
  3. In der Eventbox Tastendruck(On Click) stellte sich als gesetzt heraus [Ereignisprozedur](). Klicken Sie auf die Schaltfläche Builder rechts neben dem Feld - ein VBA-Editorfenster mit dem Prozedurtext öffnet sich (Abb. 11.20).

Feige. 11.20. Von einem Makro abgeleitetes Verfahren

Diese von Makros abgeleitete Prozedur verwendet das DoCmd-Objekt, um das Makro zum Schließen des Formulars auszuführen. Entsprechend den im Fenster gesetzten Checkboxen Makrokonvertierung(Makro konvertieren), Kommentare in einem Makro wurden in Kommentare in einer Prozedur umgewandelt und ein Fehlerbehandlungscode wurde hinzugefügt, um eine Fehlermeldung anzuzeigen, wenn ein Fehler auftritt (siehe Kapitel 13).

Die Konvertierung von Makros, die Berichtsereignissen zugeordnet sind, erfolgt auf die gleiche Weise.

Sehen wir uns nun die Konvertierung eines Makros in eine VBA-Prozedur an, das keinem Ereignis in einem Formular oder Bericht zugeordnet ist, wie beispielsweise das zuvor erstellte Makro Sales Manager.

  1. Klicken Sie auf die Verknüpfung Makros(Makros) im Fenster Northwind-Datenbank. Eine Liste mit Makros wird angezeigt. Wählen Sie das Makro Sales Managers aus.
  2. Wähle ein Team Service, Makro, Makros konvertieren(Extras, Makro, Makros in Visual Basic konvertieren).
  3. Es öffnet sich die gleiche Dialogbox wie im vorherigen Beispiel (siehe Abb. 11.19), in der Sie auf . klicken müssen Konvertieren(Konvertieren). Nach Abschluss des Konvertierungsvorgangs erscheint eine Meldung über den erfolgreichen Abschluss des Konvertierungsvorgangs und das VBA-Editorfenster öffnet sich, in dem Sie den resultierenden Code in VBA betrachten können (Abb. 11.21).
  4. Das Makro wird in eine Funktion mit dem gleichen Namen Sales_Managers umgewandelt (Leerzeichen wurden durch Unterstriche ersetzt).

Feige. 11.21. Ergebnis der Konvertierung des Makros "Vertriebsleiter"

Nach der Konvertierung wurde das ursprüngliche Verkaufsmakro nicht entfernt, und der Liste der Module im Datenbankfenster von Northwind wurde ein neues Modul mit dem Namen Konvertiertes Makro hinzugefügt.

Es gibt eine andere Möglichkeit, Makros in das VBA-Modul zu konvertieren:

  1. Wählen Sie im Fenster Northwind Database das Sales Managers-Makro aus.
  2. Wähle ein Team Datei, Speichern unter(Datei, Speichern unter).
  3. Im angezeigten Dialogfeld Erhaltung(Speichern unter) aus der Dropdown-Liste unter ein Element auswählen Modul(Modul) (Abb. 11.22) und drücken Sie die Taste OK.

Feige. 11.22. Speichern eines Makros als Modul

Schlussfolgerungen

In diesem Kapitel haben wir Ihnen Makros vorgestellt, wie Sie sie erstellen und ausführen, Ihnen einen kurzen Überblick über bestehende Makros gegeben und Ihnen Beispiele für deren Verwendung gezeigt. Wir haben nicht alle Ereignisse in Formularen und Berichten und deren Verarbeitung mittels Makros beschrieben. Dieses Material ist detailliert in CH. 13. Der Behandlung von Ereignissen mit Makros muss keine besondere Aufmerksamkeit gewidmet werden, da die gleichen Aktionen in VBA-Prozeduren implementiert werden können.

Abschließend möchte ich noch einmal betonen, dass Sie durch die Verwendung von Makros auf einfache Weise Anwendungen erstellen können, die viele Benutzeraktionen automatisieren. Es wird empfohlen, dass Sie zunächst solche Anwendungen erstellen, bevor Sie sich tiefer in die VBA-Programmiersprache vertiefen. Komplexe Mehrbenutzeranwendungen sollten jedoch sofort mit der Programmiersprache VBA entwickelt werden, ohne komplexe Kombinationen von Makros und Modulen zu erstellen.

Laborarbeit Nr. 1 "Tabellen in Excel erstellen und formatieren"(Ausbildungsform - Vollzeit, Teilzeit) - interaktives Formular "Arbeiten in Kleingruppen".

1. Erstellen Sie eine Tabelle gemäß dem Beispiel:

EIN B C D E F G
P / p Nr. Klient Datum Zeit (Stunde, Minute) Menge, reiben. Hinweis.
pro Monat pro Jahr
Woronin 15. Februar 3,7 Server
Woronin 18. Februar 5,8 Server
Skobelew 22. Februar 3,5 Monitor
Vasin 15. März 4,9 Drucker
Vasin 24. März 7,5 Modem
Woronin 05.Apr 4,6 Server
Skobelew 20. April 3,8 Monitor
Skobelew 25. April 7,2 Drucker
GESAMT

4. Stellen Sie die Seitenparameter ein: Ränder - alle 1,5 cm, A4-Format, Buch.

5. Geben Sie die Zeilennummerierung von 1 bis 8 mit automatischer Nummerierung ein.

6. Weisen Sie das Datumsformat den Datumsangaben - 14. März 01, den Beträgen - Geldformat zu.

In der erstellten Tabelle (siehe oben):

1. Markieren Sie Werte zwischen 200 und 300 in blauer Kursivschrift, zwischen 2500 und 3500 in roter Kursivschrift (mit bedingter Formatierung).

2. Sortieren Sie die Spalte „Kunde“ alphabetisch aufsteigend.

3. Erstellen Sie Diagramme: ein Balkendiagramm "Kunde - aufgewendete Zeit", ein Tortendiagramm - "Kunde - Gesamtjahr" (mit Titeln und Datenbeschriftungen).

10. Fügen Sie eine Kopfzeile hinzu: Formular 067-15-887.

11. Legen Sie die Tabelle und die Diagramme auf eine Seite, stellen Sie die Ränder auf 1,5 cm ein; Einstellen der horizontalen und vertikalen Mittelausrichtung; Fügen Sie eine allgemeine Kopfzeile hinzu - X-RING-KUNDEN, fügen Sie ein Bild ein.

Um sich auf die Laborarbeit vorzubereiten und selbstständig zu arbeiten, müssen Sie die folgenden Abschnitte des Themas 3.4 beherrschen: Tabellen in Excel mit einfachsten Berechnungen erstellen und formatieren, Format von Zellen ändern, bedingte Formatierung, Sortieren, grafische Objekte einfügen, Überschriften erstellen und Fußzeilen.

1. Beschreiben Sie die Datentypen und -formate, die Darstellung von Daten in einer Zelle.

2. Verwenden von Autovervollständigung, Autoeingabe, Autokorrektur bei der Dateneingabe.

3. Bedingte Formatierung von Daten nach Werten und Berechnungsergebnissen.

4. Was ist der Unterschied zwischen absoluten und relativen Links.

5. Beschreiben Sie, wie Sie den Funktionsassistenten verwenden.

6. Beschreiben Sie, wie Sie Diagramme in die Tabellenkalkulation einfügen und formatieren.

7. Wie füge ich eine Grafik in eine Tabelle ein?

Abschnitt 8.1. - einer.

Abschnitt 8.2. - 1, 2, 3.

Laborarbeit Nr. 2 „Meister der Funktionen in Excel. Absolute und relative Links "

1. Erstellen Sie eine Tabelle:

EIN B C D E
Gehalt der Abteilung "Marketing" im 1. Quartal
Nachname Januar Februar März %
Ivanov 0,20
Pavlov 0,30
Antonov 0,25
Karpov 0,28
Nekrasov 0,21
Postnikov 0,32
Averin 0,15
Yakushev 0,22
Vasin 0,27
Verkaufsvolumen, $
Durchschnittlicher Dollarkurs, reiben.

- (COS (1,2) + SIN (0,7)) * ROOT (9) / 4;

- die Wurzeln der quadratischen Gleichung x 2 - 5x + 6 = 0;

Aufgaben zum Selbststudium

- alle Werte von "Total";

- DURCHSCHNITT (C3: C17) * MAX (E3: E17) / 32;

Um die praktische Aufgabe abzuschließen, ist es notwendig, die folgenden Abschnitte des Themas 3.4 zu beherrschen: Berechnungen nach Formeln; absolute und relative Verweise auf Zellen und Zellblöcke; Kopieren von Formeln; Verwenden einer Funktion in Formeln; Funktionseinteilung in MS Excel; Anwendung des Funktionsassistenten.

Testfragen zum Selbsttest

1. Welche Arten von integrierten Funktionen können in einer Tabellenkalkulation verwendet werden?

2. Wozu dienen Zellbezüge? Was sind absolute und relative Zellbezüge in einer Tabellenkalkulation? Wie erfolgt die gegenseitige Umsetzung dieser Links? Wann werden absolute und wann relative Links verwendet?

3. Was ist das Zellenformat? Welche Techniken zum Formatieren von Daten in Zellen kennen Sie?

4. Wie wird in MS Excel mit Formeln gerechnet? Wie wird die Funktion in die Formel eingefügt? Wie werden Referenzen auf Funktionsargumente angegeben?

6. Was liefert der Formelkopiermechanismus?

7. Was ist „Auto-Summation“ und wie wird sie durchgeführt?

Abschnitt 8.1. - einer.

Abschnitt 8.2. - 1, 2, 3.

Laborarbeit Nr. 3 "Matrixoperationen in Excel"(Ausbildungsform - Vollzeit, Teilzeit) - interaktives Formular "Ausbildung".

1. Finden Sie das Produkt von Matrizen:

–6 –7
;
*
*
–8 –12 –2 –6
–4

2. Lösen Sie die Gleichungssysteme:

X 1 - x 2 + x 3 = 3, x 1 + 2x 2 + 3x 3 - 2x 4 = 6, 2x - 3y + z –2 = 0,

2x 1 + x 2 + x 3 = 11, 2x 1 + 4x 2 - 2x 3 - 3x 4 = 18, x + 5y - 4z + 5 = 0,

x 1 + x 2 + 2x 3 = 8,3x 1 + 2x 2 - x 3 + 2x 4 = 4, 4x + y - 3z + 4 = 0.

2x 1 - 3x 2 + 2x 3 + x 4 = - 8.

3x + 2y + z = 5, x - 2y + 3z = 6, 4x - 3y + 2z = 9,

2x + 3y + z = 1, 2x + 3y - 4z = 20, 2x + 5y - 3z = 4,

2x + y + 34z = 11,3x - 2y - 5z = 6,5x + 6y - 2z = 18.

Aufgaben zum Selbststudium

1. Finden Sie das Produkt von Matrizen:

*
6
*
1
–3
;
12
–2 –6
–5 –3 –5 –1

2. Lösen Sie die Gleichungssysteme:

X + y + 2z = - 1, x + y + 2z = - 1, 2x - y - z = 4,

2x - y - 3z = 4, 2x - y + 2z = - 4, 3x + 4y - 2z = 11,

5x + 6y - 2z = 18,4x + y + 4z = - 2,3x - 2y + 4z = 11.

3x + 4y + 2z = 8, 4x + 7y - 3z = - 10, - 3x + 6y + 8z = - 7,

2x - y - 3z = - 4, 2x + 9y - z = 8, 9x - 11y - 15z = - 15,

x + 5y + z = 1,x - 6y + 3z = - 3,18x - 22y + 3z = - 3 .

Um sich auf die Laborarbeit vorzubereiten und selbstständig zu arbeiten, ist es notwendig, die folgenden Abschnitte des Themas 3.4 zu beherrschen: Matrixoperationen und Methoden zum Lösen linearer Gleichungen in Excel mit Matrixoperationen.

Testfragen zum Selbsttest

1. Beschreiben Sie die Reihenfolge der Matrixmultiplikation.

2. Beschreiben Sie das Verfahren zum Lösen von linearen Gleichungssystemen.

3. Formulieren Sie die Regel für die Matrixmultiplikation mit dem Verhältnis der Zeilen- und Spaltenanzahl.

4. Welche eingebaute Funktion wird für die Matrixmultiplikation verwendet?

5. Welche eingebauten Funktionen werden verwendet, um lineare Gleichungssysteme zu lösen?

Abschnitt 8.1. - einer.

Abschnitt 8.2. - 1, 2, 3.

Laborarbeit Nr. 4 "Verwendung von Gruppenoperationen in Excel"(Ausbildungsform - Vollzeit, Teilzeit) - interaktives Formular "Brainstorming".

1. Erstellen und füllen Sie die Tabelle mit mindestens 10 Datensätzen aus:

2. Sortieren Sie die Liste in der Reihenfolge "Tag - Gruppe - Nachname Vorname".

3. In der allgemeinen Liste:

- Überschrift "Bezirk" und Daten (nach Telefonnummer) hinzufügen:

- Fügen Sie ein neues Sortierelement in der folgenden Reihenfolge hinzu:

Strogino, Chimki, Wychino, Krylatskoje, Taganskaya,

- Sortieren Sie die Liste nach dem erstellten Element.

4.Verwenden eines Autofilters:

- Nachnamen anzeigen, die mit "K" beginnen und "p" enthalten;

- 599 Schüler;

- Schüler der 1. Gruppe;

- Schüler der 2. und 3. Gruppe montags und dienstags.

5. Zeigen Sie mithilfe des erweiterten Filters die Anzahl der Schüler gemäß den Bedingungen 1–6 an:

Zustand Nr. Familienname Die Schule Klasse Telefon der Tag Gruppe
P*B*C*
Sa
Mo Di Mi
Sa Mo Di

6. Zeigen Sie mit Zwischensummen die Anzahl der Schüler nach Schule, Wochentag, Bezirk, Gruppe an.

7. Erstellen Sie Pivot-Tabellen:

- die Zahl der Schüler nach Schulstufen;

- die Anzahl der Schüler pro Tag aus den Gruppen;

- die Anzahl der Schüler pro Tag aus dem Unterricht.

Aufgaben zum Selbststudium

1. Tabelle aus Laborarbeit Nr. 2 ausfüllen: - Überschrift: "HAUS-Kostenvoranschlag", Rahmen, Spaltenüberschriften in einem anderen Format hervorheben.

2. Sortieren Sie die Daten "Ausgaben" alphabetisch, zeigen Sie Zwischensummen (Beträge) nach Ausgabenart an.

3. Erstellen Sie ein Diagramm auf einem separaten Blatt zu Punkt 3 "Ausgaben - Betrag" (Daten in Zeilen), benennen Sie das Blatt mit dem Diagramm in "Ausgaben - Betrag" um.

4. Sortieren Sie die Daten nach "Empfänger", zeigen Sie die Höhe der Ausgaben für jeden Empfänger an.

5. Entfernen Sie Summen, verwenden Sie den Autofilter, um die Daten des Empfängers Prestige JSC anzuzeigen.

6. Zeigen Sie mit Hilfe eines Autofilters die Daten für Januar an, erstellen Sie ein Diagramm "Datum - Summe" und benennen Sie es um.

7. Entfernen Sie den Autofilter, sortieren Sie die Daten nach Datum, nummerieren Sie die Tabellenzeilen mit Autovervollständigung, indem Sie eine Spalte vor Spalte A einfügen, fügen Sie einen Rahmen in Spalte A hinzu.

Um sich auf die Laborarbeit vorzubereiten und selbstständig zu arbeiten, müssen Sie die folgenden Abschnitte des Themas 3.4 beherrschen: Erstellen von Listen in Excel mit Sortieren, Zwischensummen, Filtern, Autovervollständigen; Gruppieren Sie Operationen beim Arbeiten mit Listen in Excel (Erstellen neuer Sortierelemente, Arbeiten mit einem erweiterten Filter, Arbeiten mit Pivot-Tabellen).

Testfragen zum Selbsttest

1. Wie werden eingebaute Autocomplete-Listen verwendet?

2. Was ist die Autovervollständigung eines Zellblocks?

3. Wie bereite ich eine Liste für die automatische Vervollständigung vor?

4. Was ist der Unterschied zwischen der Arbeit mit Autofilter und erweitertem Filter?

5. Wie erfolgt die mehrstufige Sortierung von Listen?

6. Was sind die Merkmale der Listenbildung?

7. Wie wird die Berechnung von Zwischensummen durchgeführt?

Abschnitt 8.1. - einer.

Abschnitt 8.2. - 1, 2, 3.

Laborarbeit Nr. 5 "Makros in Excel erstellen"(Ausbildungsform - Vollzeit) - interaktives Formular "Brainstorming".

1. Makros zum Erstellen von Tabellen mit relativen Referenzen aufzeichnen und mit den Tastenkombinationen STRG + T und STRG + P aufrufen.

Gruppenunterrichtsplan für 1 Semester
Montag zu – t di zu – t Heiraten zu – t das zu – t Freitag zu – t

Aufgaben zum Selbststudium

1. Zeichnen Sie ein Makro auf - Vorlage fortsetzen.

2. Erstellen Sie ein Makro, das ein beliebiges ausgewähltes Intervall formatiert.

3. Erstellen Sie ein Makro, das Text eingibt und immer in denselben Zellen formatiert.

Um sich auf die Laborarbeit vorzubereiten und selbstständig zu arbeiten, müssen Sie die folgenden Abschnitte des Themas 3.4 beherrschen: Erstellen und Ausführen von Makros in Excel zur Automatisierung von Rechenoperationen.

Testfragen zum Selbsttest

1. Formulieren Sie den Zweck der Erstellung von Makros in Excel.

2. Beschreiben Sie, wie Sie ein Makro automatisch aufzeichnen.

3. Was ist der Unterschied zwischen der Aufzeichnung eines Makros mit relativen und absoluten Referenzen?

4. Wie weise ich der Ausführung eines Makros eine Tastenkombination zu?

5. Wie weist man der Ausführung eines Makros eine Schaltfläche in der Symbolleiste zu?

Abschnitt 8.1. - einer.

Makro Geplanter Termin
OpenForm Kann das Formular im Vorschaumodus öffnen. Es ist möglich, einen Filter anzuwenden und die Auswahlbedingungen festzulegen
Anfrage öffnen Kann eine Abfrage im Vorschaumodus öffnen
Offener Tisch Kann die Tabelle im Vorschaumodus öffnen.
AusgabeInformat Gibt die angegebene Tabelle, Abfrage, das Formular, den Bericht oder das Modul in eine Datei im XLS-, RTF- oder TXT-Format aus und startet außerdem die entsprechende Anwendung zum Bearbeiten der Datei.
Drucken Druckt die aktive Tabelle, das Formular oder den Bericht. Sie können den zu druckenden Seitenbereich, die Anzahl der Kopien und die Verschachtelung von Kopien festlegen
Befehlsmenü Führt einen Befehl aus dem Access-Hauptmenü aus
Ausgabe Schließt alle Fenster und beendet Access
Makro starten Führt ein anderes Makro aus
StopAlleMakros Stoppt die Ausführung aller Makros, einschließlich des Makros, das dieses Makro gestartet hat
Menü hinzufügen Fügt einer benutzerdefinierten Menüleiste für ein Formular oder einen Bericht ein Dropdown-Menü hinzu. Die Argumente dieses Makros geben den Namen der Menüleiste und den Namen eines anderen Makros an, das alle im Menü verwendeten Befehle und alle diesen Befehlen entsprechenden Aktionen enthält.
Befehlsmenü Führt einen Befehl aus einem der Access-Hauptmenüs aus. Wenn Sie dieses Makro in einer benutzerdefinierten Menüleiste verwenden, können Sie Befehle im benutzerdefinierten Menü ausführen.
BefehleTastaturen Merkt sich die Reihenfolge der gedrückten Tasten
SetValue Ändert den Wert eines Steuerelements oder einer Eigenschaft, die aktualisiert werden können
Signal Signaltöne
Botschaft Zeigt eine Warn- oder Informationsmeldung an
Nachrichten einstellen Wenn aktiviert, wird die Eingabetaste als Antworttaste für alle Systemwarnungen oder Informationsmeldungen zugewiesen, wenn das Makro ausgeführt wird. Um die Anzeige von Nachrichten abzubrechen, verwenden Sie diesen Befehl in Verbindung mit dem DisplayOnScreen-Makro, das auf Aus eingestellt ist.
Anzeige Zeigt Informationen zu Zwischenaktionen an, die ausgeführt werden, wenn das Makro ausgeführt wird
Erweitern Erhöht die Größe des aktiven Fensters auf volle Größe
Zusammenbruch Minimiert das aktive Fenster auf ein Symbol
Größe verschieben Ändert die Größe des aktiven Fensters
Wiederherstellen Stellt das Fenster in seiner ursprünglichen Größe wieder her

Die folgenden Schaltflächen dienen zum Arbeiten mit Makros in der Symbolleiste (Abb. 9.1.):

Taste Makronamen(mit dem Bild „XYZ“) zeigt oder entfernt die Spalte „ Makroname " wo Sie Makros, die in der Gruppe enthalten sind, Namen zuweisen können;

Taste Bedingungen(mit Flussdiagrammbild) zeigt oder entfernt die Spalte „ Bedingung" im Makrofenster, in dem Sie eine Bedingung festlegen können, mit der eine Aktion verknüpft ist;

Taste Ausführen(mit dem Bild "!") führt das Makro aus;

Taste Schritt für Schritt(mit einem Pfeil und einer Liste) führt das Makro Schritt für Schritt aus;

Um einige in der Datenbank enthaltene Objekte zu bedienen, wird manchmal eine große Menge von Makros erstellt, von denen jedes ein sehr spezifisches Verfahren automatisiert. Es wird empfohlen, alle Makros, die mit Ereignissen in einem Formular oder Bericht verknüpft sind, in einem separaten Objekt (Gruppe) zusammenzufassen, das diesem Formular oder Bericht entspricht. Jedes Makro muss innerhalb der Gruppe einen eindeutigen Namen haben. Objektname Makro wird der Name der Gruppe sein. Der Aufruf eines Makrobefehls aus einer Makrogruppe erfolgt durch Angabe des genauen Namens der Makrogruppe und des Makrobefehls in der Gruppe: Gruppenname.Makroname.

Die Ausführungsreihenfolge von Makros in einem Makro kann geändert werden. Dazu werden im Makro Bedingungen für die Ausführung oder das Überspringen von Makros eingetragen. Bedingungen werden als Ausdruck in einer Spalte angegeben Bedingung.

Ein Link zu einem Formular oder Bericht besteht aus zwei Teilen: FamilyName!ObjectName. Alle geöffneten Formulare sind in der Familie Formulare, offene Berichte - in der Familie Berichte enthalten. Zum Beispiel Formulare![Kundenbestellungen] oder Formulare!Kunde; Link zum Bericht - Berichte! [Verkaufsbericht]. Enthält der Objektname Leerzeichen oder Sonderzeichen, muss er in eckige Klammern eingeschlossen werden. Ein Link zu einer Eigenschaft eines Formulars oder Berichts besteht aus drei Teilen: FamilyName!ObjectName.PropertyName. Beispiel: Formulare!Client.Anzeige.

FamilyName! ObjectName! ItemName (z. B. Formulare! [Kundenaufträge]! [Kundennummer]);

FamilyName! ObjectName! ItemName.PropertyName (z. B. Formulare! [Kundenaufträge]! [Zugriff]).

Die Aufgabe

1. Erstellen Sie ein Makro, das die OpenForm-Makroaktion enthält. Das Formular sollte über eine Schaltfläche geöffnet werden, die sich in einem anderen Formular befindet.

2. Erstellen Sie eine Gruppe, die das vorherige Makro zusammen mit den neuen Makros enthält. Treffen Sie die Wahl der Makros nach Ihrem Ermessen.

3. Erstellen Sie ein Makro mit Bedingungen.

Arbeitsauftrag

Erstellen eines Makros

1. Im Fenster Datenbank klick auf tab Makros und klicke auf den Button Ein ... kreieren... Ein Makroentwurfsfenster ähnlich dem in Abb. 9.1. (es wird keine Spalten geben Makroname und Bedingung). Jede Zeile in diesem Fenster kann einen Makrobefehl und einen Kommentar dazu enthalten.

2. Geben Sie in der mit dem Zeiger markierten Zeile ein Makro... Der Befehl kann über die Tastatur eingegeben werden oder die Liste verwenden, die in den Zellen der Spalte verfügbar ist Makro.

3. Es empfiehlt sich, Erläuterungen in die Spalte einzugeben Hinweis... Kommentare erleichtern das Verständnis und die Pflege von Makros.

4. Wenn das Feld Makro gefüllt, unten Makrokonstruktor wird auftauchen Argumente-Panel... Die Liste der Felder in diesem Panel hängt vom ausgewählten Makro ab und kann fehlen, wenn das Makro keine Argumente hat. Geben Sie alle vom System erforderlichen Informationen im Makroargumentbereich an. Im Allgemeinen wird empfohlen, die Argumente für ein Makro in der Reihenfolge anzugeben, in der sie aufgelistet sind, da die Auswahl eines Arguments die möglichen Werte des nächsten Arguments bestimmen kann.

5. Speichern Sie das Makro. Verwenden Sie dazu die Schaltfläche speichern, oder führen Sie den Befehl aus DATEI / Speichern... Geben Sie dem Makro einen Namen (der Name sollte aussagekräftig sein).

6. Führen Sie das Makro zur Ausführung aus.

Sie können ein Makro auf verschiedene Weise aufrufen und ausführen:

Klicken Sie im Makroentwurfsmodus (siehe Abb. 9.1.) auf die Schaltfläche Ausführen;

Befehl ausführen SERVICE / Makro ausführen und wählen Sie aus der Liste den Namen des auszuführenden Makros aus;

Im Fenster Datenbank in der Registerkarte Makros Doppelklicken Sie auf den Namen des auszuführenden Makros.

7. Öffnen in Konstruktor-Modus eine andere Form als die Form, für die das Makro entwickelt wird.

8. Erstellen Sie eine Schaltfläche, indem Sie sie im Titelbereich eines geöffneten Formulars platzieren. Öffnen Sie das Eigenschaftsfenster der Schaltfläche (Abb. 9.2): Wählen Sie die Schaltfläche aus, drücken Sie die rechte Maustaste, im erscheinenden Menü wählen Sie Artikeleigenschaften(Sie können das Eigenschaftenfenster öffnen, indem Sie auf die Schaltfläche doppelklicken). Geben Sie im Eigenschaftenfenster an, mit welchem ​​Ereignis das Makro verknüpft ist. Standardmäßig ist dieses Ereignis Tastendruck.

Makrogruppen erstellen

Kombinieren Sie Makros zu einer Makrogruppe (Sie können ein neues Objekt erstellen oder ein zuvor erstelltes Makro in eine Makrogruppe konvertieren).

1. Aufmachen Makrokonstruktor.

2. Drück den Knopf Makronamen auf der Symbolleiste. Im Fenster Makrokonstruktor eine weitere Spalte wird erscheinen Makroname.

3. Geben Sie in dieser Spalte den Namen des ersten Makros ein. In derselben Zeile in einer Spalte Makro Geben Sie den Namen des Makros gefolgt von allen passenden Argumenten ein. Soll das Makro mehrere Makros enthalten, dann tragen Sie diese in die nachfolgenden Zeilen der Spalte ein Makro.

4. Überspring die Linie.

5. Geben Sie den Namen des nächsten Makros und der entsprechenden Makros ein. In Abb. 9.3 wird als Beispiel das Makro „Lieferanten“ der Datenbank „Northwind“ vorgestellt.

6. Überprüfen Sie, ob das Makro funktioniert. Führen Sie den Befehl aus SERVICE / Makro ausführen(nur das erste Makro aus der Makrogruppe wird ausgeführt) . Der Aufruf weiterer Makros aus der Gruppe ist möglich, indem Sie den Namen der Makrogruppe in das Dialogfeld eingeben und den Namen des Makros durch einen Punkt angeben.

7. Speichern Sie das Makro.

Erstellen eines bedingten Makros

Zum Beispiel in Abb. 9.4 zeigt ein Fenster zum Entwerfen eines Makros, das eine Tabelle über die Waren im Lager des Unternehmens anzeigt. Tabelle "Waren auf Lager" wird nur geöffnet, wenn im Feld Preis gestalten ein Wert kleiner 1000 wird eingegeben Das Makro ist mit einem Steuerelement verknüpft Preis in Form von "Ware ab Lager verkauft"... Dieses Makro mit einem Steuerelement verbinden Preis geschieht auf die gleiche Weise wie das Verbinden eines Schaltflächenmakros. Das Makro bindet sich entweder an ein Ereignis Ausgabe, oder mit der Veranstaltung Eingang.

1. Aufmachen Makrokonstruktor.

2. Drück den Knopf Bedingung. Schreiben Sie in die Spalte Bedingung ein Ausdruck, der, wenn er wahr ist, das generierte Makro ausführt. Es ist bequemer, Ausdrücke für die Bedingung im Fenster anzugeben. Ausdruckserstellung.

3. Legen Sie das Makro fest.

4. Speichern Sie das Makro.

5. Öffnen in Konstruktor-Modus ein Formular, in dem eines der Steuerelemente mit dem entwickelten Makro verknüpft werden soll. Verknüpfen Sie ein Steuerelement und ein Makro.

6. Überprüfen Sie, ob das Makro funktioniert.

Anhang 1

Statistische Funktionen

Funktion Beschreibung
Summe Berechnet die Summe aller Werte im angegebenen Feld in jeder Gruppe. Wird nur für numerische und Währungsfelder verwendet.
Durchschn Berechnet das arithmetische Mittel aller Werte im angegebenen Feld in jeder Gruppe. Wird nur für numerische und Währungsfelder verwendet. Nullwerte werden in Berechnungen nicht berücksichtigt.
Minimal Maximal) Gibt den kleinsten (größten) Wert zurück, der im angegebenen numerischen Feld innerhalb jeder Gruppe gefunden wurde. Bei Textfeldern der kleinste der Zeichenwerte, unabhängig von der Groß-/Kleinschreibung. Nullwerte werden ignoriert.
Anzahl Gibt die Anzahl der Datensätze zurück, in denen die Werte dieses Felds nicht Null sind. Anzahl (*) wird verwendet, um Nullwerte zu berücksichtigen
StdAbw * Berechnet die verzerrte statistische Standardabweichung für alle Werte in diesem Feld in jeder Gruppe. Gilt für numerische und Währungsfelder. Gibt Null zurück, wenn die Gruppe weniger als zwei Zeilen enthält.
StAbwP * Berechnet die unverzerrte statistische Standardabweichung
Var * Berechnet die verzerrte statistische Varianz für alle Werte im angegebenen Feld in jeder Gruppe. Gilt für numerische und Währungsfelder. Gibt Null zurück, wenn die Gruppe weniger als zwei Zeilen enthält.
VarP * Berechnet unverzerrte statistische Varianz
Zuerst * Gibt den ersten Wert im angegebenen Feld zurück.
Letzte * Gibt den letzten Wert im angegebenen Feld zurück.

Hinweis: Mit * gekennzeichnete Funktionen sind in Abfrageassistent nicht bewerben.


Anlage 2

Ausdruckserstellung

Expression Builder ist ein Tool zum Erstellen komplexer Ausdrücke. Fensterstruktur Ausdruckserstellung ist in Abb. A.2.1.

Ausdruck-Textfeld

Ausdruck- eine Menge von Operatoren und Operanden (Konstanten, Bezeichner und Funktionen).

Bezeichner- Namen von Objekten (zB Felder von Tabellen oder Abfragen), die bei der Auswertung von Ausdrücken durch ihre aktuellen Werte ersetzt werden. Besteht der Name eines Objekts aus mehr als einem Wort, muss er in eckige Klammern eingeschlossen werden. Es ist jedoch üblich, Klammern zu verwenden, auch wenn der Name eines Objekts aus einem Wort besteht, damit die Namen der Objekte beim Arbeiten mit Ausdrücken sofort ersichtlich sind.

Bezeichner sind die Namen von Konstanten und Variablen, die in Visual Basic für Applikationen-Programmen verwendet werden, sowie benannte Konstanten True, False, Yes, No, Null.

Funktionen- Geben Sie den Wert im Ausdruck anstelle des Funktionsnamens zurück. Die meisten Funktionen erfordern Klammern um ihre Argumente. Ein Beispiel für eine Funktion mit einer leeren Argumentliste: Datum ()- gibt das aktuelle Datum zurück.

Es gibt sechs Kategorien von Operatoren zum Erstellen von Ausdrücken, die in Tabelle 2.1 dargestellt sind.

Tabelle S. 2.1

Operatoren zum Erstellen von Ausdrücken

Betreiberkategorie Operator Beispiel Beschreibung
Rechenzeichen + [Gesamt] + [Aufpreis] Fügt zwei Operanden hinzu
- Datum () - 7 Zählt die Differenz zweier Operanden
* [Boxen] * [Preis] Multipliziert zwei Operanden
/ [Betrag] / 5,33 Dividiert einen Operanden durch einen anderen
\ [Menge: 2 Teilt einen ganzen Operanden ganzheitlich in einen anderen. In diesem Fall werden Operanden mit Dezimalbrüchen auf die nächste ganze Zahl gerundet
Mod [Boxen] Mod 3 Gibt den Rest des Zweigs in seiner Gesamtheit zurück
^ [A] ^ [b] Hebt Operand A an die Potenz b . an
Vergleichsoperatoren 1 < 1 < 100 Weniger
<= [ein]<= 2 Weniger als oder gleich
= [b] = 3 Gleichermaßen
> [a]> 2 Mehr
>= [b]> = 3 Größer als oder gleich
<> 1<>100 Nicht gleich
Logische Operatoren 2 Und [A und B] Konjunktion (logisches UND)
Oder [A oder B] Disjunktion (Boolesches Oder)
Nicht Kein] Logische Negation
Xor [A] Xoder [B] Exklusiv oder
Gl [A] Gl. [B] Logische Äquivalenz
Wichtel [A] Kobold [B] Logische Implikation
Verkettungsoperatoren + "Visuell" + "Einfach" Kombinieren von zwei Texten
& „Visuell“ & „Einfach“ Werte in eine Zeile. Beide Operanden sind äquivalent, aber & wird bevorzugt
Fortsetzung der Tabelle A.2.1
Identifikationsoperatoren ! Objektklasse! Objektname Trennzeichen in Objektreferenzen
. ObjectName.Method Trennzeichen in Verweisen auf Methoden und Eigenschaften von Objekten
Mustervergleichsoperatoren Zwischen Zwischen (-100) und (100) Bestimmt, ob ein numerischer Wert in einem bestimmten Bereich liegt
Ist [Name] ist null Wird nur zum Vergleich mit einem Wert verwendet. Im Beispiel wird der Ausdruck als wahr ausgewertet, wenn keine Daten im Feld Name vorhanden sind.
Im In ("Moskau", "Kiew", "Murmansk") Bestimmt, ob ein Zeichenfolgenwert ein Element einer Werteliste ist
Mögen Wie „Yves*“ Wie „db ??“ Bestimmt, ob ein Stringwert mit den angegebenen Zeichen beginnt (das Zeichen „*“ steht für eine beliebige Anzahl von Zeichen, „?“ steht für nur ein Zeichen)

Anmerkungen:

1. Das Ergebnis der Verwendung von Vergleichsoperatoren ist Wahr oder Falsch. Wenn einer der Operanden Null ist, gibt jeder Vergleich Null zurück.

2. Das Ergebnis der Verwendung von logischen Operatoren ist Wahr oder Falsch. Die Operanden haben einen Wert aus der Menge (Wahr, Falsch, Null). Für alle booleschen Operatoren außer Imp führt ein Null-Operandenwert zu einem Null-Ergebniswert.

Ausdruckselemente werden in das Textfeld eingegeben Ausdrucksersteller. Die gängigsten Operatoren werden durch Schaltflächen in der Mitte des Fensters dargestellt. Ausdruckselemente können aus Listen von Objekten, Funktionen, Konstanten, Operatoren und allgemeinen Ausdrücken ausgewählt werden.

Um Ausdruckselemente aus Listen zu kopieren, klicken Sie zuerst auf einen der Ordner im linken Bereich. Einige Ordner haben untergeordnete Ordner, auf die Sie ebenfalls doppelklicken, um sie zu erweitern. Die Liste der Elemente, die dem geöffneten Ordner entsprechen, wird im rechten Fensterbereich angezeigt.

In einigen Fällen enthält der mittlere Bereich auch Elemente, die Sie Ausdrücken hinzufügen können (z. B. Tabellenfeldbezeichner).

Um ein Element aus der Liste zu einem Textfeldausdruck hinzuzufügen, doppelklicken Sie darauf oder wählen Sie es aus und klicken Sie auf die Schaltfläche Einfügen.


Anhang 3

Toolbox-Schaltflächen ZUGRIFF

Taste Schaltflächenname Funktion
Objektauswahl Verwandelt den Mauszeiger in ein Auswahlwerkzeug
Meister Aktiviert oder deaktiviert die New Control Wizards
Inschrift Überschriften, Bildunterschriften oder erläuternder Text, dieser Text bleibt unverändert
Feld Erstellt ein Feld zum Anzeigen und Bearbeiten von Textdaten
Gruppe Erstellt einen Rahmen zum Platzieren von Schaltern, Optionsfeldern und Kontrollkästchen. Es kann jeweils nur eines der gerahmten Objekte ausgewählt werden. Jedes Element des Rahmens hat eine eindeutige Nummer
Kontrollkästchen Schalter wechseln Schalter, Schalter, Checkbox nicht in einer Gruppe enthalten Booleschen Wert definieren Ja (Ja) oder nicht (Nein), es ist erlaubt, True zu verwenden (Wahr) oder eine beliebige positive Zahl, False (Falsch) oder null
Kombinationsfeld Erstellt ein Kombinationsfeld mit einem Werteingabefeld und einem Listenfeld, aus dem Sie einen Wert aus einer Reihe von Werten auswählen können
Aufführen Erstellt eine Dropdown-Liste zur Auswahl von Werten
Taste Erstellt eine Schaltfläche, die beim Anklicken eine Access VBA-Ereignisroutine auslöst
Bild Fügt einem Formular oder Bericht eine Bitmap hinzu. Das Bild ist kein OLE-Objekt; einmal im Formular platziert, kann es nicht mehr geändert werden
Freier Rahmen Fügt einem Formular oder Bericht ein OLE-Objekt hinzu
Angebauter Rahmen Zeigt den Inhalt eines OLE-Datensatzfeldes an, wenn sich ein Grafikobjekt im Feld befindet, ansonsten wird das Objektsymbol angezeigt
Fortsetzung adj. 3
Seitenumbruch Zwingt den Drucker beim Drucken eines Formulars oder Berichts, am Seitenumbruch eine neue Seite zu beginnen. Umbruch erscheint nicht in Formular- oder Berichtsansicht
Registerkartensatz Fügt eine Reihe von Registerkarten ein, um ein durch Tabulatoren getrenntes Formular zu erstellen.
Untergeordnetes Formular / Bericht Fügt Unterformular / Bericht zum Hauptformular / Bericht hinzu
Linienrechteck Sie werden verwendet, um das Formular in logische Gruppen zu unterteilen, um Rahmen und Rahmen zu simulieren. Farbe, Linienstärke, Rechteckfüllung werden über die Formatierungssymbolleiste eingestellt
Zusätzliche Elemente

Anhang 4

Checkliste

1. Wie wird die Datenbankstruktur im ACCESS DBMS definiert?

2. In welchem ​​Modus wird der Aufbau der Datenbanktabelle beschrieben?

3. Geben Sie Definitionen der Begriffe „Objekt“, „Eigenschaft“, „Methode“, „Ereignis“ an.

4. Welche Objekttypen sind im Fenster ACCESS DB zu sehen?

5. Welche Erweiterung wird für Datenbankdateien akzeptiert?

6. Kann ich die Struktur der Tabelle ändern, nachdem sie erstellt wurde?

7. Welche Arten von Datenbankfeldern werden in ACCESS bereitgestellt?

8. Welche Regeln gelten für die Benennung von Datenbankfeldern?

9. Welche Informationen können in OLE-Objektfeldern gespeichert werden?

10. Welche Eigenschaften des Feldes müssen unbedingt definiert werden?

11. Erklären Sie den Zweck des Primärschlüssels in der relationalen Datenbank. Welche Einschränkungen gelten für Primärschlüsselwerte?

12. Erklären Sie den Zweck der Indizes.

13. Kann ich einen Index für einen Teil eines Felds erstellen? Wenn ja, wie machst du das?

14. Welche Arten der Datenkontrolle können im ACCESS DBMS automatisch durchgeführt werden?

15. Warum ist es notwendig, Beziehungen zwischen Datenbanktabellen zu beschreiben?

16. In welchem ​​Modus sollten Sie Beziehungen zwischen Tabellen beschreiben?

17. Welche Arten von Links unterstützt ACCESS?

18. Welchen Einfluss hat das Setzen von Links auf die Eingabe und Änderung von Informationen in der Datenbank?

19. Welche Aufgaben hat das Eingeben und Korrigieren von Daten in die Datenbank?

20. Welche typischen Operationen umfasst eine Datenkorrekturaufgabe?

21. Welche Datenkontrolltechniken sind in ACCESS verfügbar?

22. Wann wird die Datenvalidierung durchgeführt?

23. Wie füge ich der Tabelle einen neuen Datensatz hinzu?

24. Wie kann ich einen Datensatz aus einer Tabelle löschen?

25. Ist es möglich, aus der Datenbank gelöschte Informationen wiederherzustellen?

26. Wie finde ich den gewünschten Wert in der Tabelle?

27. Wie ersetzt man in allen Datenbankeinträgen den Namen von Zarya LLP durch Rassvet JSC?

28. Was ist ein Suchmuster, welche Symbole werden im Muster verwendet und wofür?

29. Zu welchem ​​Zweck und wie erfolgt die Sortierung von Datenbankeinträgen?

30. Wie verhalten sich die Daten in anderen Feldern der Tabelle bei der Sortierung nach dem Feld „Firma“?

31. Wie kann ich die Sortierung der Daten abbrechen?

32. Was ist eine Anfrage und welche Arten von Anfragen unterstützt ACCESS?

33. Wie setze ich Parameter beim Erstellen einer Abfrage-Auswahl mit Parametern?

34. Was sind aggregierte (Gruppen-)Operationen und wie werden sie in Abfragen angewendet?

35. Wie kann man bestimmen, aus welchen Tabellen die Felder in der Ausgabevorlage beim Erstellen einer Abfrage genommen werden?

36. Was ist eine Querverweisabfrage und wie ist sie aufgebaut?

37. Zu welcher Sprachklasse gehört SQL? Wie wird SQL verwendet, um Abfragen zu bilden?

38. Wie ist eine SQL-Abfrage aufgebaut, die Unterabfragen enthält?

39. Ist es möglich, Parameter an eine Anfrage aus einem Formular zu übergeben, wenn möglich, wie geht das dann?

40. Ist es möglich, Daten nach Möglichkeit über Abfragen in Tabellen einzugeben, in welchen Fällen, welche Einschränkungen gelten dann für miteinander verbundene Tabellen, für die Eingabe von Daten über Abfragen in Tabellen?

41. Was sind Gruppierungsfelder, Sie können mehrere Gruppierungsfelder gleichzeitig in einer Abfrage verwenden und was bedeutet das Ergebnis?

42. Was ist eine Abfrage zum Erstellen einer Tabelle, wie funktioniert sie, welche Tabelle können Sie erstellen?

43. Wie sind Änderungsanträge in Datenbanktabellen aufgebaut? Können Sie Änderungen in mehreren Tabellen in eine Abfrage einschließen?

44. Was sind Löschanträge, wie sind sie aufgebaut? Wofür können Löschanfragen verwendet werden? Kann es solche Abfragen mit Parametern geben?

45. Was sind berechnete Felder in Abfragen, wozu dienen sie und wie sind sie aufgebaut?

46. ​​​​Können berechnete Felder an der Bildung einer Auswahlbedingung in einer Abfrage teilnehmen?

48. Was sind sichtbare oder anzeigbare und unsichtbare oder nicht anzeigbare Abfragefelder? Warum brauchen wir unsichtbare Abfragefelder?

49. Wie können Sie die Felder einer bestimmten Tabelle, die Felder einer bestimmten Abfrage im Ausdrucksgenerator anzeigen? Warum sind beim Erstellen einer Abfrage nicht alle Felder im Ausdrucks-Generator sichtbar?

50. Wie viele Datenbanken können gleichzeitig geöffnet sein?

51. Welche Eigenschaften hat das Objekt „Tabelle“?

52. Zweck des Objekts "Formular". Welche Eigenschaften hat das Objekt "form"?

53. Ermöglicht ACCESS das Erstellen von Formularen mit mehreren Bildschirmen?

54. Ist es möglich, über dieselbe Maske Informationen in verschiedene Datenbankdateien einzugeben?

55. Wie bette ich ein Unterformular in ein Formular ein?

56. Zweck des Objekts "Bericht". Welche Eigenschaften hat das Objekt „Bericht“?

57. Ist es möglich, einen Bericht zu erhalten, der nur Summenzeilen enthält? Wenn ja, wie?

58. Ist es möglich, die Länge und das Format des Feldes im Ausgabedokument im Vergleich zu dem, das in der Datenbankdatei angegeben wurde, zu ändern?

59. Was ist ein Makro? Ernennung von Makros.

60. Welche Modi ermöglicht das Datenbankfenster für Tabellen, Abfragen und Formulare? Wie unterscheiden sie sich von gültigen Makromodi?

61. Wie erkennt man Fehler bei der Bedienung eines Makros?

62. Kann ACCESS Daten verwenden, die in anderen Formaten gespeichert sind?

63. Wie erstelle ich eine Tabelle durch Importieren von Daten aus einem EXCEL-Arbeitsblatt?

Das erstellte Makro sollte ausgeführt werden. Es gibt mehrere Möglichkeiten, Makros auszuführen:

1. Durch einen Befehl Makros -> Makro -> Service

2. Verwenden einer dem Makro zugewiesenen Tastenkombination;

3. Mittels des diesem Makro zugeordneten Menübefehls;

4. Über die diesem Makro zugeordnete Schaltfläche in der Symbolleiste.

Die Wahl, wie ein Makro ausgeführt wird, wird vom Benutzer selbst basierend auf seinen eigenen Bedürfnissen und Vorlieben bestimmt. Es empfiehlt sich, die zweite Methode zu verwenden, um die am häufigsten ausgeführten Makros auszuführen. Der dritte veranschaulicht die Möglichkeit, eigene Befehle in das Hauptmenü einzugeben und dadurch das Menü zu verbessern. Letztere Methode zeichnet sich durch die Sichtbarkeit des Starts aus.

Sehen wir uns jede dieser Methoden zum Ausführen von Makros genauer an.

1. Mannschaft Makros -> Makro -> Service- die Standardversion zum Aufrufen eines Makros zur Ausführung. Wählen Sie im Dialogfeld Makro das erstellte Makro aus und klicken Sie auf die Schaltfläche [Ausführen]. Diese Methode eignet sich auch zum Bearbeiten und Löschen eines Makrobefehls - die Schaltflächen [Bearbeiten], [Löschen].

2. Mit der Tastenkombination (Abb. 2):

Feige. 2. Dialogfeld. Tastatur für Belegung konfigurieren Makro

Tastenkombinationen in Microsoft Word.

2. So rufen Sie ein Makro in einem Dialogfeld auf Tastaturanpassung in der Registerkarte Neue Tastenkombination eine Kombination von Steuertasten wird angezeigt. Zum Beispiel zusammen mit einer Kombination aus numerischen oder alphabetischen Tasten (in Latein);

Anschließend wird auf die Schaltfläche [Zuweisen] geklickt, die die Zuweisung vornimmt.

3. Aufruf durch einen Befehl im Menü - die Standardeinstellung des Menüs erfolgt: Hinzufügen eines Menüpunktes, der mit dem Aufruf eines Makrobefehls verbunden ist:

Im angezeigten Dialogfeld Anpassung, auf der Registerkarte Befehle aus Kombibox Kategorien Team ist ausgewählt Makros gefolgt vom Namen des Makros;

Nachdem Sie mit der linken Maustaste auf den Namen des Makrobefehls geklickt haben, erscheint ein gepunktetes Bild der Schaltfläche, die in das Menü gezogen werden sollte, um einen Menüpunkt hinzuzufügen. Danach wird die linke Maustaste losgelassen.

4. Über die diesem Makro zugeordnete Schaltfläche in der Symbolleiste (Abb. 3):

Wenn Sie in Word im Dialogfeld auf die Schaltfläche [Panels] klicken (siehe Abb. 1) Aufzeichnung Makro-Dialogfeld erscheint Anpassung in der die Registerkarte Befehle aus Kombibox Kategorien ausgewählt Makros gefolgt vom Namen des Makros;

Nach einem Klick mit der linken Maustaste auf den Namen des Makros erscheint ein gepunktetes Bild der Schaltfläche, das in die Symbolleiste gezogen werden soll. Danach wird die linke Maustaste losgelassen;

Durch Klicken auf die Schaltfläche [Ausgewähltes Objekt ändern] können Sie das gewünschte Symbol für die Schaltfläche auswählen, indem Sie den Befehl ausführen ü Wählen Sie ein Symbol für eine Schaltfläche(Abb. 4). Sie können das Symbol auch mit dem Befehl bearbeiten Ändern Sie das Symbol für eine Schaltfläche(Fenster Schaltflächeneditor) (Abb. 5).

Feige. 3. Dialogfenster Einstellungen für die Zuordnung zu einem Makro
Symbolleistenschaltflächen in Microsoft Word.

Feige. 4. Dialogbox zur Auswahl eines Symbols für die Schaltfläche

Feige. 5. Schaltflächen des Dialogfeldeditors

In Excel ist es zusätzlich möglich, ein Makro über das ihm zugeordnete Symbol auszuführen.

Nach Auswahl einer Aufrufmethode erscheint eine kleine Symbolleiste Höre auf, aufzunehmen enthält eine Schaltfläche:

- [Aufnahme stoppen] - beendet die Aufnahme des Makros;

[Pause] - unterbricht die Makroaufzeichnung (Abb. 6).

Abb. 6. Makro-Rekorder-Bedienfeld in Microsoft Word

  1. Makros ändern

Makros werden als Programmtexte in der Vorlage gespeichert. Jede Vorlage kann eine beliebige Anzahl von Makros enthalten. Da Punktdateien (Punkt ist die Dateierweiterung der Vorlage) nicht als Dokumente gelesen werden können, bietet Word spezielle Tools, mit denen Sie ein Makro als Folge von VBA-Anweisungen anzeigen und bearbeiten können (Abbildung 7). Während der Bearbeitung wird jedes Makro als eine Folge von VBA-Anweisungen dargestellt. Das Wesentliche beim Bearbeiten eines Makros besteht darin, Operatoren zu löschen, hinzuzufügen und zu ersetzen, wie beim Programmieren in jeder anderen Sprache.

Abb. 7. VBA-Editor-Dialog

Die Makrobearbeitung erfolgt mit dem Befehl Makros... Im Dialogfeld Makro, auf dem Feld Name der Name des zu bearbeitenden Makros wird ausgewählt. Der Vorgang startet, wenn Sie auf die Schaltfläche [Debug] klicken. Sie können den Namen eines nicht vorhandenen Makros angeben. Wenn Sie dann auf die Schaltfläche [Erstellen] klicken, wird ein neues Makro erstellt und der Benutzer kann es in VBA aufzeichnen.

Über die Schaltfläche [Debug] wird das Makrobearbeitungsfenster geöffnet, das den Inhalt des Makros in VBA anzeigt. Das Makrobearbeitungsfenster ähnelt einem normalen Dokumentfenster, zeichnet sich jedoch durch das Fehlen eines Koordinatenlineals und das Vorhandensein einer speziellen Symbolleiste aus. Es können mehrere Makrobearbeitungsfenster geöffnet werden. Makrotext wird wie normaler VBA-Programmtext bearbeitet. In diesem Fall stehen die meisten Befehle zur Textbearbeitung zur Verfügung, zum Beispiel die Befehle Kopieren und Schnitt.

Durch Klicken auf die Schaltfläche [Löschen] wird das angegebene Makro gelöscht.

Um das Makro-Bearbeitungsfenster zu schließen, können Sie das Systemmenü des Bearbeitungsfensters oder den Befehl Schließen auf der Speisekarte Datei... Bestimmte Befehle zum Bearbeiten und Debuggen eines Makros werden durch Drücken von Schaltflächen in der Löschzeile ausgeführt.

Referenzliste:

1. Musin K.A. "Technische Ergänzung zu Microsoft Word"

2. Borodin KI "Makroprogrammierung"

MAKROS.

Die meisten Benutzer erstellen und verwenden Microsoft Office-Dokumente mit Standardanwendungsfunktionen. Office bietet jedoch reichlich Möglichkeiten, die Arbeit mit Dokumenten zu automatisieren – das ist die Programmierung in VBA und die Verwendung von Makros.

VBA, die Visial Basic for Applications-Programmiersprache, ist eine in Office-Anwendungen integrierte Programmiersprache, die zum Erstellen von Makros verwendet wird.

Makro- und Makrorekorder.

Anstatt monotone Befehle in MS Office zu wiederholen, können Sie ein Makro erstellen, das diese Befehlsfolge automatisch ausführt. Das Makro ermöglicht die Eingabe von Single ein Befehl, der dieselbe Aufgabe wie eine Gruppe von Befehlen ausführt.

Ein Makro ist ein in VBA geschriebenes Programm. VBA ist eine spezielle Version von Visial Basic (für Anwendungen).

Es gibt zwei Möglichkeiten, ein Makro in Office zu erstellen:

§ Makrorekorder, der Benutzeraktionen aufzeichnet

§ Öffnen eines VBA-Fensters und Eingeben von VBA-Anweisungen

Am häufigsten verwendet der Benutzer VBA, um das vom Rekorder aufgezeichnete Makro zu korrigieren.

Um mit Makros in MS Office 2007-13 zu arbeiten, zeigen Sie die Registerkarte ENTWICKLER im Menüband an (Schaltfläche BÜRO / Word-PARAMETER / BANDEINSTELLUNGEN).

Der Benutzer muss sich die Startbedingungen für das Makro überlegen, zum Beispiel wenn etwas mit dem ausgewählten Fragment gemacht werden muss, dann sollte das Fragment vor der Aufnahme oder dem Start ausgewählt werden.

Makroaufnahme.

§ Registerkarte ENTWICKLER / MAKRO AUFZEICHNEN, geben Sie dem Makro einen Namen. Der Name sollte keine Leerzeichen enthalten, mit einem Buchstaben beginnen und keine Sonderzeichen enthalten. die maximale Namenslänge beträgt 80 Zeichen. Wenn das erstellte Makro einen Namen erhält, der dem Namen eines integrierten Microsoft Word-Makros entspricht, wird das vorhandene Makro durch das neue ersetzt.

§ Befehle ausführen

§ Registerkarte ENTWICKLER / AUFNAHME-STOPP

Normalerweise ist das Makro für die Vorlage Normal.dot verfügbar, es wird automatisch mit gespeichert.

Ausführen eines Makros.

§ Registerkarte ENTWICKLER / MAKROS, wählen Sie das gewünschte und AUSFÜHREN.



Zuweisen eines Makros zu einer Schaltfläche auf der Symbolleiste für den Schnellzugriff und / oder einer Tastenkombination.

§ oder OFFICE-Taste / Wort PARAMETER / EINSTELLUNGEN

§ oder wählen Sie die entsprechenden Aktionen aus, wenn Sie dem Makro einen Namen geben.

Beachten Sie beim Zuweisen von Tastenkombinationen zu einem Makro, dass Worde viele Tastenkombinationen reserviert und es nicht einfach ist, eine "freie" Kombination zu finden.

Löschen eines Makros.

§ Registerkarte ENTWICKLER / MAKROS, wählen Sie das gewünschte aus und LÖSCHEN.

Ändern Sie den Text des Makros.

Beim Aufzeichnen eines Makros speichert der Rekorder eine Folge von Textanweisungen in VBA. Diese textliche Beschreibung wird Quellcode genannt. Es kann eingesehen und korrigiert werden:

§ Registerkarte ENTWICKLER / MAKROS, wählen Sie die gewünschte und ÄNDERN.

So führen Sie ein Makro über den VBA-Editor aus: Schaltfläche RUN ()

Erstellung von automatisch ausgeführten Makros.

Word hat 5 spezielle Namen für Makros

VBA - Programme bestehen aus einer einfachen Abfolge von Aktionen: Das Programm greift auf ein Objekt zu, gibt ihm Eigenschaften und führt Aktionen damit aus. Jedes Dokument, jeder Absatz, ... ist ein Objekt. Ein Selection-Objekt ist beispielsweise eine Auswahl. Word selbst ist ein Appication-Objekt (siehe Anhänge 2,3)



Jedes Objekt hat seine eigenen Eigenschaften - Eigenschaften.

Viele Objekte führen Aktionen aus, die als Methoden bezeichnet werden.

Beispielsweise,

ActiveDocument.Close (Objekt - aktives Dokument, Methode - schließen)

Laut VBA-Syntax ist das Trennzeichen ein Punkt.

Typischerweise: Objekt, Punkt, Methode und / oder Eigenschaften (durch Punkt getrennt)

Rechte Maustaste auf ein Objekt - Liste der Methoden, Eigenschaften (List Properties / Methods)

Die With… .. End With-Sequenz ermöglicht es Ihnen, mehrere Methoden / Eigenschaften für ein Objekt anzugeben, ohne seinen Namen viele Male zu wiederholen.

Praktische Aufgabe 1.

Schreiben wir ein Makro namens "my_first_macro", in das wir die folgenden Befehle schreiben:

§ Seitenausrichtung im Querformat

§ Maßstab anzeigen - 33%

Als Ergebnis erhalten wir den folgenden Code

Sub my_first_macro ()

"

"my_first_macro Makro

"Makro aufgenommen am 03.12.07

Mit ActiveDocument.PageSetup

LineNumbering.Active = False

Ausrichtung = wdOrientLandscape

TopMargin = CentimetersToPoints (1,5)

BottomMargin = CentimetersToPoints (3)

LeftMargin = CentimetersToPoints (2)

.RightMargin = CentimetersToPoints (2)

Bundsteg = ZentimeterToPunkte (0)

HeaderDistance = CentimetersToPoints (1.25)

FooterDistance = CentimetersToPoints (1.25)

Seitenbreite = CentimetersToPoints (29,7)

PageHeight = CentimetersToPoints (21)

FirstPageTray = wdPrinterDefaultBin

OtherPagesTray = wdPrinterDefaultBin

SectionStart = wdSectionNewPage

OddAndEvenPagesHeaderFooter = False

DifferentFirstPageHeaderFooter = False

VerticalAlignment = wdAlignVerticalTop

Endnoten unterdrücken = Falsch

MirrorMargins = False

TwoPagesOnOne = Falsch

GutterPos = wdGutterPosLeft

ActiveWindow.ActivePane.View.Zoom.Percentage = 33

End Sub

Sie können den Text dieses Makros korrigieren, z.

§ ändern Sie den Prozentsatz, zum Beispiel 33 bis 42

§ Felder ändern

§ in der Zeile False durch True ersetzen.LineNumbering.Active = False (die Zeilen werden automatisch nummeriert)

§ in Zeile ersetzen Ausrichtung = wdOrientLandschaft auf der wdOrientPortrait, Papierausrichtung wird Hochformat sein

Nach dem Speichern kann dieses Makro für jedes andere Dokument erneut ausgeführt werden.

Praktische Aufgabe 2.

Lassen Sie uns ein Makro erstellen, das beim Öffnen einer Datei ein Meldungsfeld erstellt.

MessageBox ist ein Meldungsfeld, das auf dem Bildschirm angezeigt wird.

Um beim Öffnen einer MS Word-Datei eine MessageBox anzuzeigen, müssen Sie ein Makro namens AutoOpen erstellen und die darin enthaltene msgbox-Funktion aufrufen. Es wird so aussehen:

Unter AutoOpen ()

"Diese Funktion wird beim Öffnen eines Dokuments aufgerufen

"Anzeigen der MessageBox

MsgBox "Hallo mein Freund!"

Reihenfolge der Aktionen (eine der Optionen):

§ Registerkarte ENTWICKLER / MAKROS, Namen vergeben und ERSTELLEN

§ Ändern Sie im VBA-Editorfenster den Namen und drucken Sie den Text des Programms in VBA

§ Speichern

§ Starten

Jetzt erhalten wir beim Öffnen jedes Dokuments eine Nachricht.

Der Befehl zum Anzeigen der Messagebox sieht so aus:

MsgBox (Eingabeaufforderung, Schaltfläche, Titel, Hilfedatei)

Promt ist ein erforderliches Argument, das den Text angibt, der im Meldungsfeld angezeigt wird

Schaltfläche - ein optionales Argument, das den Typ des Meldungsfelds, das Vorhandensein der Schaltflächen Ok, Abbrechen, Stopp, Überspringen usw. definiert.

Titel - ein optionales Argument, das den Titel des Fensters angibt

Helpfile - ein optionales Argument, das angibt, welche Hilfedatei geöffnet wird, wenn der Benutzer F1 drückt

Praktische Aufgabe 3.

Erstellen eines einfachen Dialogfelds.

Um ein Dialogfeld zu erstellen, müssen Sie ein visuelles Objekt namens Formular erstellen. Ein Formular ist ein Analogon zu einem Fenster, in dem Sie Steuerelemente (Schaltflächen, Optionsfelder, Kontrollkästchen usw.) platzieren können. Jedes Formular ist Teil der Benutzeroberfläche. Jedes Formular ist ein Objekt und enthält wiederum viele Objekte, von denen jedes separat gesteuert werden kann.

Formularerstellung:

§ VBA-Fenster (ALT + F11)

EINFÜGEN / Neues Formular oder UserForm (ein neues Formular einfügen)

§ Im Eigenschaftenfenster können Sie die Eigenschaften des Formulars konfigurieren, zum Beispiel die Eigenschaft Caption ermöglicht es Ihnen, dem Formular einen Namen zu geben

§ Legen Sie mithilfe des ToolBox-Bedienfelds die Steuerelemente im Formular fest:

· Etikett - Beschriftung

CommandButton - eine Befehlsschaltfläche zum Ausführen einer Aktion

TextBox -Textfeld

Bild - Zeichnung

ChtckBox - Kontrollkästchen

§ Wir passen die Arbeit jedes Elements an. Mit 2 Klicks auf die Befehlsschaltfläche können Sie beispielsweise die VBA-Anweisungen schreiben, die ausgeführt werden sollen, wenn diese Schaltfläche gedrückt wird.

Damit ein solches Dialogfeld beim Ausführen eines Makros angezeigt wird, müssen Sie dem Makro die folgenden Zeilen hinzufügen:

UserForm1 laden

UserForm1.Show

weil Das Beherrschen von VBA erfordert viel Zeit und Kenntnisse der Grundlagen von Algorithmen, Benutzer zeichnen normalerweise Word-Befehle mit einem Makrorekorder auf, korrigieren und / oder fügen ein Makro hinzu.


Fortsetzung des Themas:
Router

Standard-Gadgets sind bedingungslos aus modernen Versionen von Windows OC verschwunden. Aber die Benutzer sind es nicht gewohnt, etwas Gutes zu verlieren und verwenden daher aktiv Analoga. Lange bevor ...