Eine Datenbank mit Access 2013 richtig entwickeln

Globale Variablen vorbereiten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Damit später der Zugriff auf die Filter bedeutend leichter ist, werden diese Informationen in globalen Variablen und Funktionen gekapselt.

Transkript

Dieses Formular, dieses zentrale Steuerungsformular, ist rundum fertig funktionsfähig. Aber Sie können dessen Aufruf verbessern. Sie müssen also nicht, wenn Sie später irgendwo im Code oder übrigens auch in einer Abfrage darauf zugreifen wollen, welcher Filter denn nun eigentlich aktiv ist, immer schreiben: Von allen forms, Klammer auf, dasjenige, was "frmSTEUERUNG" heißt, Klammer zu, Punkt und da drin eine Kombobox "Unternehmen" und Punkt deren Value, sondern es ist viel eleganter, sich eine globale Variable bereitzulegen, die dann diesen Wert enthält. Nur deswegen, für den späteren bequemeren Zugriff, werde ich jetzt ein bisschen vorbereitend mit Alt + F11 erstmal in einem allgemeinen Modul diesen globalen Variablen vorbereiten. Es wird ein neues Modul. Einfach nur der Übersicht halber. Und das heißt bei mir klassischerweise "modVarKonstDLL". Dort stehen globale Public-Variablen, - ich kann das mit Doppelklick schon mal aktivieren - dort stehen globale Variablen, globale Konstanten, die wir im Moment noch gar nicht haben, und eventuelle DLL-Deklarationen, die wir gar nicht brauchen. Aber zum Beispiel steht hier drin: "public p_" ' damit kennzeichne ich die immer, dann sind die leichter zu erreichen - es wird eine long-Variable und zwar für die "UntID" "As Long", das heißt, auf die kann ich zugreifen, Das Formular, das Steuerungsformular nämlich, wird dafür sorgen, dass die immer richtig gefüllt ist. Und etsprechend gibt es eine "p" , Unterstrich natürlich, also "Public" "P_long", eine "Ndl-ID", "As Long" Und, klar der Dritte genauso, "P_LongMitID As Long". Da drin stehen die IDs und ich werde noch erweitern, damit ich die nicht immer nachträglich suchen muss, auch die werden Sie öfter mal brauchen, die Bezeichnungen dazu. Ich schreibe die mal davor. Ich sortiere die so ein bisschen nach Größe, ansonsten hat das keinen Sinn. Es zu der Long-Variablen "UnternehmensID" noch eine String-Variable "Unternehmensname". "As String". Und das können wir jetzt einfach zweimal kopieren. Es gibt eine Niederlassung und dann einen Mitarbeiter. Diese Variablen werden gefüllt und sind später auslesbar. Und das kann ich sogar schon vorbereiten. Auslesbar in den allgemeinen Funktionen. Ich mache hier mit ein bisschen Abstand mal einen Block. Es gibt eine function, die heißt dann "Unternehmensname" "As String". Und die macht nichts anderes als "UnternehmensName" aus "p_strUnternehmensName" auszulesen, aus dieser public-Variablen. Jetzt mögen Sie sich an dieser Stelle fragen: Was soll das? Ich kann doch direkt auf die public-Variable zugreifen. Ja, in VBA schon. Aber Sie können eine function auch in Abfragen benutzen. Das trifft Filter zum Beispiel und zwar vielleicht weniger die "UnternehmensName"-Funktion als die andere wichtige Funktion, die dann heißt "UnternehmensID". "As Long". Die lässt sich wunderbar als Filter einsetzen und das geht nur, wenn es eine function ist. Und deswegen wird diese public-Variable sozusagen über eine function nach außen hin transportiert. Sozusagen moderner wäre eine "GetProperty" zu machen. Funktioniert leider nicht in Abfragen. Deswegen ist es eine echte function und dieses Päärchen werden wir jetzt noch zweimal brauchen. Also einfach kopieren, und wenn ich Glück habe, kann ich einfach das Wort "Unternehmen" austauschen. Also Strg + "H". "Unternehmen" gegen "Niederlassung". Im markierten Text alles ersetzen. Das ist noch nicht perfekt. Allerdings war es vor allen Dingen das Falsche, aber das lässt sich rückgängig machen. Ich hätte natürlich diese beiden markieren müssen. Strg + "H" und jetzt gehe ich mit dem Cursor einfach einen runter. Da steht noch "Unternehmen" drin. Das ist also schnell korrigiert. Alle ersetzen. Schnell beschädigt, aber auch schnell korrigiert. Und hier entsprechend Strg + "H". Einen runter, und ich will dort "Mitarbeiter" ersetzen. Und dann muss ich natürlich noch die Kurzfassung ändern, also die Niederlassungs-ID "NdlID", und die Mitarbeiter-ID ist "MitID". Und das liest sich jetzt unschön "Mitarbeiters". Da hat man mal mehr, mal weniger Glück. Jetzt sollte es aber wenigstens komplett kompilierbar sein. Und vor allem gespeichert. Die Namen der Module muss man bei ersten Mal immer bestätigen. Hier drin kann ich jetzt also in VBA-Code, da kann ich auch direkt auf die Konstanten zugreifen notfalls, aber vor allem auch in Abfragen direkt zum Filtern darauf zugreifen. Wenn Sie das einmal kurz sehen wollen. Ich mache jetzt eine neue Abfrage, das können wir minimieren. Ich erstelle eine Abfrage, die basiert auf den Unternehmen. Alle anzeigen. aber die Unternehmens-ID soll sein gleich Und wenn ich jetzt hier anfange zu schreiben, dann sehen Sie wunderbar, wie die Hilfefunktion sozusagen, die IntelliSense-Funktion müsste man hier eher sagen, mir alle anbietet, die mit "Unternehmen" beginnen und jetzt könnte ich danach filtern. Soweit so gut. Aber ich muss es natürlich auch vorher gesetzt haben. Damit sind wir wieder im Code von Formular "STEUERUNG". Ich muss jedes Mal, wenn ich irgendwo geklickt habe dafür sorgen, dass das entsprechend nach außen gereicht wird. Also "p_longUnternehmensID" ist jetzt "Me.cmbUnternehmen.Value". Das war der einfache Teil. Und "p_stringUnternehmensName" ist auch "Me.cmbUnternehmen", aber ".Column". Index ist die wievieltste Spalte - column ist Spalte - ich sehen will. Die sind null-basiert. Wenn ich die erste sehen will "0", dann hätte ich nur den Value. Ich will die zweite sehen, "1". Komma, und jetzt muss ich sagen von welcher Zeile. Die können Sie direkt abfragen, "Me.cmbUnternehmen" ".ListIndex". Diese Quick-Info behauptet übrigens mit den eckigen Klammern, das sei optional. Das ist falsch, Sie müssen es trotzdem angeben. Und das gilt jetzt auch für die Niederlassung. Also, deswegen kann ich das da einfach reinkopieren, aber natürlich entsprechend die Niederlassungs-ID. NiederlassungsName, und auch hier muss ich dann auf "Niederlassung" zugreifen. Und hier ein drittes Mal. Da könnte man schon fast ein "With" draus machen. Und jetzt nicht vergessen: Unternehmen, Niederlassung, ab jetzt müssen auch die Mitarbeiter etwas aulösen. Also ein "cmbMitarbeiter" "Click". Da oben ist eine Leiche, die wir wegschmeißen können. Ich lege das mal in dieser gefühlten Reihenfolge mit in die unterste Ebene. Und kann jetzt entsprechend das da reinkopieren. Wenn ich einen Mitarbeiter auswähle, soll dessen Nummer, dessen ID entsprechend in die Variable hineingespeichert werden. Also "Mitarbeiter", auch da "Mitarbeiter", und dann muss ich es wenigstens einmal ausführen. Die Abfrage können wir ungespeichert lassen. Vor allem muss ich dafür sorgen, so wie ich hier die "ComboNiederlassung Click"-Prozedur ausführe, muss ich das an derselben Stelle jetzt von den Niederlassungen aus für die Mitarbeiter "Click" machen, damit also beim Klick auf die Niederlassung auch der Mitarbeiter wieder korrigiert wird. So, gespeichert ist alles. Mit Alt + F11 muss ich das Formular einmal wieder zurückholen. Und sagen wir "Willi Wichtig". Jetzt sind alle Werte gesetzt worden. wenn das korrekt ist. Und ich sehe, also wenn ich diese Abfrage mit der Unternehmens-ID starte nur noch Willi Wichtig. Wenn ich auf "alle" gehe, dann wird es nicht funktionieren im Moment, das muss ich extra abfangen. Das werden Sie sehen, wenn ich auf Alle aktualisieren gehe, denn jetzt suche ich die Unternehmens-ID "-1". Da muss ich also immer ein bisschen daran denken. Da gibt es auch verschiedene Lösungen, In diesem Fall ist die einfachste, dass ich ungefiltert - das wird vor allem Formularaufrufe treffen - einfach keinen Filter mitgebe. und dann nicht auf "-1" prüfe. Das sollte an der Stelle hier nur vor allem zeigen, wie es funktioniert und dass es funktioniert. Und Sie haben jetzt eine Funktion zur Verfügung, diese globale Variable nach außen zu transportieren.

Eine Datenbank mit Access 2013 richtig entwickeln

Sehen Sie einem erfahrenen Datenbankentwickler über die Schulter und lernen Sie dabei, wie Sie in Access 2013 optimale und perfekt skalierbare Datenbank anlegen und pflegen.

5 Std. 18 min (53 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!