Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Eine Datenbank mit Access 2013 richtig entwickeln

Filterfunktion einsetzen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Zu Testzwecken lässt sich vom Steuerungsformular aus der Unternehmensüberblick mit allen oder nur mit einem gefilterten Wert aufrufen.

Transkript

Jetzt haben wir die Steuerung eigentlich perfekt fertig. Und das Problem ist: Keiner merkt es. Ich hatte zwar testweise schon mal ein bisschen probiert, dass da die richtigen Daten ermittelt werden, aber das wäre natürlich schön auch zu sehen, wofür das Ganze gut ist. Dieses Zusammenspiel gibt es aber eigentlich ganz erst am Ende, wenn die Ribbons fertig sind, die selbst erstellten, benutzerdefinierten. Dann werden die Menüs entsprechend die richtigen IDs kennen, die richtigen Texte anzeigen. Aber um zu testen, worauf es hinausläuft, möchte ich hier schon mal eine kleine Beispielschaltfläche einbauen, die irgendwann wieder rausfliegt. Also im ENTWURF hier ein bisschen Platz schaffen und eine Schaltfläche anlegen, die einfach "btnTest" heißt und als Inhalt drei Punkte enthält. Und das Design nicht verwendet, dann ist es insgesamt farblich anpassender. Aber viel wichtiger ist vor allem, dass sie das Ereignis Beim Klicken nutzt und dann mit den drei Punkte im Code was Entsprechendes schreibt. Nämlich nach Einrücken durch die Tab-Taste möchte ich prüfen, wenn alle Unternehmen ausgewählt sind, dann rufe ich das Formular "frmUnternehmenUeberblick" - das kann man hier lesen - so auf, mit allen Unternehmen. Andernfalls rufe ich es direkt gefiltert auf. Also "if me.comboboxUnternehmen.Value" "=-1 Then", - und vorsichthalber schon mal "Else" und "End If" dazu - wenn das minus eins ist, - das hatten wir ja so extra hinterlegt - dann ist es der Inhalt "alle". Dann kommt da ein ganz banales "DoCommand.OpenForm" und dann muss ich den Namen da rechts schön abschreiben, "frmUnternehmenUeberblick", ohne weiteres. Andernfalls - das können wir trotzdem in die Zwischenablage kopieren - andernfalls rufe ich es so auf, dass dort ein Filter gesetzt wird. Das ist diese "Where"-Condition. Und dieser Filter ist ganz schlicht: Die Unternehmens-ID soll sein, wie das, was im aktuellen Kombinationsfeld ausgewählt ist. Also "me.cmbUnternehmen.Value". Das ist schon alles. Fast alles. Es wird noch ein bisschen besser, aber grundsätzlich soll es so funktionieren. Wenn Sie das jetzt speichern, müssen Sie gleich beim Starten aufpassen. Wenn wir erst alle testen und danach mit einem Filter, dann wird das Formular nicht notwendig neu geladen. Dann müssen wir also dafür sorgen, dass es dann geschlossen ist. Aber bis dahin sollte das so funktionieren. Also die Steuerung starten, die hat hier eine kleine Schaltfläche. Da das ganze Formular, dieses Steuerformular ja ein Pop-Up ist, also vorne bleibt, habe ich jetzt mit "alle" schön den Blick auf die eigentlichen Daten. Ein Klick hier und es bleibt trotzdem vorne. Sie sehen: Vier Datensätze. Ich kann weiterschalten zu den anderen. Soweit alles gut. Ich denke daran das zu schließen. Jetzt wähle ich ein konkretes Unternehmen, sagen wir "Testinghoff", und hätte jetzt gerne nur dieses. Hat genauso funktioniert. Es ist "Testinghoff" und er ist gefiltert. Aber ich möchte für den Fall diese Teile hier unten ausblenden, also dafür sorgen, hier unten nicht einfach den Filter wieder aufheben kann und sich weiter durchhangeln und Ähnliches. Nur für den Fall, dass gefiltert ist. Und ich will sogar die Beschriftung hier oben ändern. also wenn ich hier schließe... Das können wir erstmal klein machen, das funktioniert soweit. Das legt sich immer in die Ecke links unten, dafür gibt es keine Lösung. Das muss man zu Fuß rüberschieben, wenn es da stört. Mit Alt + F11 gehe ich jetzt in den Code von diesem Überblickformular. Wenn es nämlich geöffnet wird, kann ich prüfen, ob es einen Filter hat. Also, ich suche mir dazu die "Open"-Prozedur. Und kann jetzt abfragen, "If Me.FilterON", - gleich "true" müsste ich jetzt eigentlich schreiben; das ist eine Boolsche Variable, Ja/Nein - das ist aber unerheblich, davon wird es nicht besser. "Else End If". Das kann ich hier entsprechend rüberkopieren. Manchmal muss man darauf achten, was zu welchem Zeitpunkt stattfindet. Das "Load" ist etwas früher als das "Open". Also, wir müssen im Zweifelsfall die Sachen da runter reinkopieren. Das muss man manchmal schlicht ausprobieren. So, und das "Change" soll aber immer ablaufen. Und ich wollte zuerst einmal Wenn der Filter an ist, - das kann hier auch schlicht wieder raus - wenn der Filter an ist, will ich auch das Unternehmen dazu nennen. Also direkt ein Hochkomma. verkettet mit. Und jetzt kann ich den Unternehmensnamen abfragen. Und schon hat es sich gelohnt, dass wir den in eine function gekapselt haben. Also ich frage mal nach "UnternehmensName", verkettet mit. Und in einfachen Hochkommata nachher im Ergebnis eingefügt. Und hier schreiben wir dann einfach über alle Unternehmen, dann ist der Unterschied ein bisschen deutlicher. Das möchte ich als erstes testen, also speichern und dann gucken wir mal drüben, was in den Formularen passiert. Alles schließen, was gerade offen ist. Und jetzt werde ich das neu starten, also mit ausgewähltem "Testinghoff". Einmal hier klicken. Sie sehen "Überblick über das Unternehmen", das wird ausdrücklich genannt. Das ist noch nicht weg, habe ich noch nicht programmiert. Aber es hat soweit funktioniert. Und wenn ich hier wieder schließe, und auf "alle" wechsle, dann ich wieder über alle Unternehmen und hier über alle vier - das dauert manchmal ein bisschen - hin und her navigieren. Jetzt geht es wieder zurück, allerdings sollte ich das vorher schließen, mit Alt + F11. Jetzt möchte ich nämlich für den Fall, dass es ein konkretes Unternehmen ist, diese Navigationselemente wegnehmen. Also "Me", das Formular, in dem ich mich befinde, "NavigationButtons" gleich "False". Das ist jetzt nicht besonders glücklich formuliert. Man könnte jetzt auch "NavigationButtons.Visible" erwarten, aber es heißt einfach "NavigationButtons". Das Objekt selber steht schon auf "True" oder auf "False". und Sie können auch direkt noch ein bisschen mehr organisieren, wenn Sie da aufräumen wollen, zum Beispiel können Sie die Scrollbars, die Rollbalken wegschalten, oder nur vertikal machen. Oder den Datensatzmarkierer ausschalten, das wäre zum Beispiel "Me.", "RecordSelectors" auch gleich "False". Und die Scrollbars heißen wie man erwartet auch "ScrollBars". Die haben leider nur eine Zahl, wenn ich die also nur vertikal haben will, - das mache ich mal als Kommentar dahinter - dann muss es eine "2" sein. Das kann man in der Hilfe nachgucken. Da fehlen ein paar von den Innumerationen. Jetzt habe ich es entsprechend erweitert, also speichern, mit Alt + F11 schließen. Dabei wird immer der Entwurf geöffnet, wenn Sie im Code ändern. Und für "alle", habe ich hier noch alles sichtbar. Und es geht übrigens nur um die unteren Navigationsschaltflächen. Die oberen sind eigene. Jetzt hole ich mir einen Speziellen und wenn ich den starte, dann sehen Sie hier: Datensatzmarkierer ist weg. Die unteren Navigationsbuttons sind weg, und es ist bei Bedarf nur eine vertikale Schaltfläche zu sehen. Ich sehe hier gerade, das hätte naürlich auch verlängert werden müssen. Das können wir bei der Gelegenheit schnell korrigieren. In der Entwurfsansicht nämlich auch dieses Element, mit dem Anker nach unten und quer, den versehen. Und ein nächster Test zu "Testinghoff", der heißt dann auch so schön. Jetzt sehen Sie dann ist das auch optisch perfekt. Als, das ist die Grundidee dahinter gewesen. Ich möchte hier einen auswählen und später im Menü - jetzt allerdings vorübergehend noch mit einer Schaltfläche - möchte ich dieses Formular unterscheiden lassen, ob es für einen Speziellen aufgerufen wurde - dann könnte es sich ja irgendwie anders verhalten - oder für alle sozusagen freigegeben ist, dass man sich durchklicken kann.

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!