Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Eine Datenbank mit Access 2013 richtig entwickeln

Mehrfacher Formularkopf mit unterschiedlichen Inhalten

Testen Sie unsere 2013 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Mit wenigen Zeilen VBA lässt sich ein einziges Unterformular als Formularkopf mit unterschiedlichen Inhalten nutzen.

Transkript

Das Formular für den zukünftigen Kopf ist zwar schon vorbereitet, aber, jetzt muss ja noch ein wenig VBA, und zwar, eher sowas wie fünf-sechs Zeilen herhalten, um die Titel wechselnd zu machen. Dafür sollten wir noch mal kontrolieren, wie die Elemente heißen. Also, dieses ist ein Image, ein Bild, und ist deswegen schon bennant als Image Logo, und hier gibt es ein Bezeichnungsfeld, also ein Label im Englischen, deswegen heißt es Label Titel. Ich übernehme die englischen Präfixe, aber schreibe hier trotzdem das deutsche Wort Titel, dass ist so ein Kandidat, wo man sich immer mal vertut und dann plötzlich Label title sagt. Können Sie auch machen, Sie müssen es nur einheitlich machen. Also, es gibt zwei Elemente: Image Logo und Label Titel, und die sollen von außen programmierbar verändert werden können, das bedeutet, ich kann hier schon mal schießen, und muss dann, in der Programmierung was ändern. Wer Erfahrung hat mit VBA, und wenn Sie das nicht haben, sollten Sie sich vorher ein VBA Lernvideo ansehen, wer Erfahrung hat, weiß das man einfach zu dem VBA Editor mit Alt+ FF wechseln kann. Der Vollständigkeit halber, will ich da wenigstens erwähnen, dass ansonsten hier, im Ribbon, im Menüban steht. Also, mit Alt+FF geht es hinüber in den Editor und hier ist die Datenbank, wobei das der Dateiname ist, ich muss hier ein mal kurz wechseln, und hier, der linke Teil, ein frei änderbarer Text. Ich ändere den auch sofort immer, typischerweise auf die Datenbank, oder auf den Namen der Datenbank, damit es nicht zur Verwechslung führt, weil da sonst immer Datebase steht. Das ist aber eher unerhäblich, was wir brauchen, ist ein beliebiges Modul, also, wie hier, eins zum ausklappen. Sie können es auch da hollen, Einfügen- Modul. Mit dem eher zufälligen Namen Modul 1. Das kann man natürlich besser benennen, ich nenne das erst mal mod, für Modul, modAllgemeineProzeduren, da ist noch PLatz für ein -e, und mit Return bestätigen, dann sehen Sie, dass das da oben umbenannt wird. Hier sollte nicht nur Option Compare Datebase stehen, das ist spaziell für die Datenbank, sondern das könne Sie unter Extras Optionen nachbessern. Auch das die Variablendeklaration erforderlich ist, dass spart Ihnen viel Ärger. Das würde in neuen Modulen einen Option Explicit erzeugen, hier nicht, da muss ich es reinschreiben, dafür schalte ich mir die automatische Syntaxüberprüfung aus, weil die furchtbar ist, wenn ich einen Syntaxfehler mache, meckert die mit einem Dialofeld. Wenn ich die jetzt ausschalte, ist nicht etwas die Syntaxüberprüfung ausgeschaltet, wie behauptet, sondern nur das Dialogfeld. Es wird weiterhin rot in der Zeile, also da tut nichts weh, und Option Explicit kann ich hier reichschreiben, in den nächsten Modulen wird es automatisch sein. Und hier erfinde ich jetzt ein neue Prozedur, also SUB, sagen wir, SetzeFormularKopf, und die wird zwei Sachen wissen müssen: Erstens, wo ist mein Unterformular? Das erfinde ich, also sfmDieserKopf as, und jetzt brauche ich einen spaziellen Datentyp, natürlich könnte ich einfach sagen as Form, das ist aber eher wenig. Ich würde gern genau schreiben asDiesesspaezielleFormular, das würde heißen asForm Unterstrich und so weiter, wie Sie sehen, gibt es das noch nicht, das muss ich also gleich nachbessern, und das Zweite wird sein, ein string, also ein stringtTitel As String. Das ist der sogenannte Prozedur Rumpf, der eigentliche Inhalt volgt später, aber ich muss jetzt an dieser Stelle erst mal dafür sorgen, dass ich das konkrete Formular bennenen darf, dessen Objekt dann hier auftauchen wird, als Datentyp. Erst mal speichern, dann muss ich den Modulnamen nochmal einmal bestätigen, und mit Alt+ FF wieder rüber, und jetzt zwinge ich das Formular seinen Modul anzulegen, undzwar per Rechtsklick in die Entwurfsansicht, und entweder, Sie erzeugen hier ein Ereingnis, was Sie dann wieder löschen das ist die mühsame Version, oder Sie gucken in den Formulareigenschaften ganz weit unten, da steht ei Enthält Modul, und das ist so lange Nein, bis Sie das erste Ereignis daran Programmiert haben, das können Sie auch auf Ja stellen, und dann können Sie es schließen und müssen es deswegen speichern, das war eine Änderung, und finden jetzt mit Alt+ FF, dass es hier ein Formular gibt, welches Form_sfmKopf heißt. Alle Formulare, die Ereignisse, nähmlich Programmierung enthalten, tauchen hier auf, als sogenannte [Klassenobjekte], und wenn Sie die Ereignisse darin eigentlich gar nicht brauchen, können Sie das so erzwingen, in dem Sie sagen Enthält Modul- ja. Und jeztz kann ich hier auch da hinter klicken, Steuerung- Leertaste, noch mal ausklappen und vorschlagen, dass ich gerne einen Datentyp auswählen möchte, und jetzt ist er auch da. Der ist jetzt konkret für dieses, und nicht für alle möglichen anderen. Deswegen, kann ich mich jeztz darauf beziehen. Ich sage, was immer ich auch übergeben kriege hat diesen Datentyp, also, sfm habe ich geschrieben, Steuerung Leertaste zum Еrgänzen, Punkt, und jeztz werden Sie feststellen, ungarisch notiert, ich habe hier ein Label, wenn ich ein L eingebe, dann erscheint hier ein konkretes lblTitel. Ich muss nicht im Kopf haben und raten, wie das auf diesem Formular hieß, weil ich diesen spaziellen Datentyp benutzt habe, weiß der auch, dass dieses spazielle Formular diese Elemente enthält. Deswegen habe ich mir die Mühe gemacht. Und von dem lblTitel, soll die Caption den Inhalt haben, denn ich da übergebe, also strTitel. Und das Elternobjekt, also auch von sfmDieserKopf.parent, das ist das Formular, in das es eingebettet ist, das soll auch was können, nähmlich den gleichen Text. Parent ist sehr unspazifisch, dass könnte ja auch ein Berischt sein oder sowas, oder gar ein Unterformular, in das ein Unterformular eingebettet ist, also, deswegen klappt hier nichts mehr aus, ich muss wissen, dass Ding eine Caption hat. Da könnte ich zum Beispiel reinschreiben- -Es ist ein Formular und es soll diesen Titel tragen. Das können wir so weit erst mal testen gleich, das bedeutet nämlich, spaeichern kann nicht schaden, mit Steuerung s oder da oben klicken, das bedeutet nämlich, dass im Unterformular der Text zu sehen ist, wie ich ihn übergebe, und im Hauptformular seine zum Beispeil Registerlasche so beschriftet wird. Dafür müssen wir das jetzt aber irgentwo aufrufen, also, mit Alt+ FF erst mal wieder rüber, sagen wir, in dem Endlosformular. Muss ich in den Entwurf, und brauche jetzt von dem Formular ein Ereignis, undzwar das Beim Laden Ereignis. Hier ist wieder eine Liste dran, Sie kennen das sicherlich schon, per Doppelklick kommen Sie in den nächsten Eintrag, das ist der, den ich haben will, die Ereignisprozedur. Jetzt wir übrigens das Modul angelegt für dieses Formular, und mit den drei Pünktchen bin ich im Prozedur Rumpf, und hier sehen Sie, da ist das Modul angelegt worden. Und bein laden dieses Endlosformulars, ich rück das jetzt mit der Tab-Taste ein, rufe ich diese Prozedur von eben auf. Setze, Steuerung, Leertaste ist die einzige, die so heißt, SetzeFormularKopf und jetzt möchte er wissen: - Wie heißt dieses Element? Naja, da fragen wir jemanden, der sich damit auskennt. Ich frage mich selbst, Mich Formular, in dem ich da programmiere, Me., da gibt es hoffendlich eine Sub -Form, siehe da, es gibt eins, welches, übrigens, nicht ganz zufällig gleichnamig ist mit dem eigenlich gespeicherten Unterformular, also sowohl das Steuerelement zum einbetten, als auch das Formular heißen gleich, und das ist ein Steuerelement in dem Hauptformular, und dessen Form, dessen Formular, was da drin liegt, das will ich übergeben, das darf man immer nicht vergessen, dieses . Form ist einer der lieblingsfehler, die man so machen kann, jetzt kommt nach dem Kommer der Text, denn ich da lesen möchte, zum Beispiel: Endlose Niederlassungen. Bei dem Լaden des Niederlassungsformulars wird diese Prozedur aufgerufen, da könne wir hier mit Doppelklick mal eben hinwechseln, diese Prоzedur schreibt in das Unterformular bestimmte Daten rein. Alles speichern und mit Alt+ FF müssen Sie immer drauf achten, dass Sie auch alles vorher schließen, Access ist da sehr empflindlich. Wenn ein Unterformular geöffnet ist, dann kriegen Sie 500 Fehlermeldungen, dass ihm das nicht passt, also, alles geschlossen, und dann ruf ich das Endlosformular auf, und deswegen steht jetzt erstens hier die Caption, vom Unterformular Endlose Niederlassung, und zweitend dort, dass ist die Parent Caption.

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!