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

Eine Datenbank mit Access 2013 richtig entwickeln

Korrekt filtern und zählen

Testen Sie unsere 2017 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Bei wechselnder Auswahl müssen die Filter in den Kombinationsfeldern immer wieder korrigiert werden. Bei dieser Gelegenheit lässt sich auch einfach eine Anzeige der enthaltenen Zeilenanzahl einbauen.

Transkript

Das sieht hier zwar schon sehr schön aus und funktioniert auch meistens, aber es gibt trotzdem noch einen Fehler und eine Verbesserungsmöglichkeit. Der Fehler besteht darin, dass, wenn ich von "alle" aus einen auswähle, sagen wir Willi Wichtig mit seiner Niederlassung in Paris und hier den Mitarbeiter Pierre Petit, und anschließend oben einen anderen, Testinghoff zum Beispiel, auswähle, dann steht hier immer noch "Paris" und "Pierre Petit". Erst wenn ich die Liste ausklappe, fällt auf, dass dort gar kein Eintrag "Paris" existiert, also wird sie leer. Dann stelle ich meinetwegen "Bielefeld" ein. Dann steht hier immer noch der falsche Mitarbeiter, der aber auch nicht in der Liste enthalten ist. Ich muss also dafür sorgen, dass, wenn ich oben was ändere, unten die entsprechenden Werte nachkorrigiert werden. Heißt im Wesentlichen, sobald ich hier einen ändere, muss da unten wenigstens auf "alle" gewechselt werden, und zwar sowohl für "Niederlassungen" als auch "Mitarbeiter". Das ist die Fehlerquelle. Die Verbesserungsmöglichkeit besteht darin, dass ich dann noch dazu schreiben kann, wieviele Unternehmen es gibt, wieviele Niederlassungen, wieviele Mitarbeiter. Das ist flexibel. Deswegen muss ich das per VBA abfragen. Zuerst der Fehler. Der soll so bereinigt werden, dass ich hier erstmal dafür sorge, dass dieser Teil herausgeschnitten wird und in einen "With" außerhalb, das ein bisschen übersichtlich macht. Da ein "End With", und dann können wir die Niederlassungen dort nämlich auch herausnehmen. Und ich kann also, wenn ich im Unternehmen geklickt habe, direkt dafür sorgen, dass der Value von "Niederlassung" auf "-1" gesetzt wird. Das ist das "alle". Einmal speichern, Syntax-Check dürfte keine Probleme machen. Und mit alt+F11 gucken wir direkt, Willi Wichtig. Dann wähle ich hier unten eine seiner Niederlassungen aus und wechsle hier oben auf einen anderen. Dann ist der sofort auf "alle" gestellt. Dasselbe muss natürlich von Niederlassung zu Mitarbeitern auch passieren. Also von hier, den Mitarbeitern, die werde ich wieder rausschneiden, mit einem "With". Das Ganze mit der Tab-Taste einrücken, und "End With". Hier entsprechend herausschneiden. sodass ich jetzt hier wiederum auf die Mitarbeiter und deren Value zurückgreifen kann, die ich auf "-1" stelle. Ist also das gleiche Konzept, ist eigentlich nur ein bisschen Schreibarbeit. Wenn ich das jetzt prüfe, kann ich einen anderen auswählen, Hinz und Kunz, der ist in Hinzenhausen, hat keinen Mitarbeiter, macht aber nichts. Und wenn ich jetzt auf Willi Wichtig wechsle, dann steht hier wieder "alle". Das können wir jetzt dreistufig machen. In Paris arbeitet Pascal Perrin, und sobald ich auf Hinz und Kunz stelle, sind die beiden unten auf "alle" zurückgestellt. Der hat noch nicht funktioniert. Da habe ich mich wahrscheinlich ganz schlicht vertippt. Die Mitarbeiter auf "-1", ach so, genau, das habe ich hier übersehen. Tatsächlich, wenn jemand auf "cmbUnternehmen_Click" klickt, wird dieser Teil ausgeführt. Da steht aber nicht drin, dass auch der Klick auf die Niederlassung ausgeführt werden soll. Nur die Tatsache, dass deren Wert sich ändert, bedeutet nicht, dass das Klickereignis ausgeführt wird. Das ist in den Office-Programmen leider unterschiedlich. Bei Access wird es nicht ausgeführt, bei den übrigen nämlich schon. Ich muss hier also einfach nur nachreichen, dass auch der Niederlassungen-Klick nach der Änderung des Wertes ausgeführt wird. Und dann erst kommt es in diese Prozedur. Also ein erneuter Test: Wenn ich jetzt auf "Beispiel GmbH" wechsle, jetzt wechselt unten auch der Mitarbeiter. Also, das Aufräumen, die Fehlerbeseitigung, ist passiert. Ich kann ein beliebiges Unternehmen auswählen, wenn es denn Niederlassungen hätte. Und sobald ich das Unternehmen wechsle, werden sowohl die Niederlassung als auch die Mitarbeiter wieder auf "alle" gestellt. Damit habe ich also die Fehlerquelle, richtiges Unternehmen, falsche Niederlassung, ausgemerzt. Jetzt kommt eine kleine Schönheitskorrektur. Ich hätte gern stehen, wieviele Unternehmen es jeweils sind. Also muss ich im "Form_Load" direkt einfach mal zählen. Das ist an der Stelle nötig, weil sich die Anzahl der Unternehmen nicht ändern wird. Ich kann also direkt schreiben "me.lblUnternehmen.Caption", ist gleich "me.cmbUnternehmen.ListCount". Das ist die Anzahl der Einträge. Dazu gehört allerdings auch der "alle"-Eintrag, also "-1", den zähle ich nicht als Eintrag, verkettet mit, und dann kann ich jetzt hier das Bisherige wieder ergänzen. "Unternehmen:". Das findet im "Form_Load" statt. Das heißt, ich muss jetzt mit alt+Tab tatsächlich hier das Ganze schließen und neu starten. Und Sie sehen jetzt: "4 Unternehmen". Können wir ja nachprüfen: vier echte, einer mit "alle". Und das entsprechend für die Niederlassungen und Mitarbeiter auch. Dort ist es ein bisschen anders. Die Anzahl der Niederlassungen wechselt. Ich darf das also nicht im "Form_Load" machen, sondern muss es sozusagen einen tiefer machen, nach der Auswahl im Unternehmen. Also, hier im "cmbUnternehmen_Click" muss ich hingehen und diesen Eintrag entsprechend auslesen. Aber im Grunde kann man das von da oben herunterkopieren. Und überall, ich mache das mit strg+H, "Bearbeiten" und "Ersetzen" wieder, überall, wo "Unternehmen" steht, steht jetzt "Niederlassungen". Und das wird in dem markierten Text gemacht, und "Alle ersetzen", drei Stück, sieht gut aus. Und das können wir für die Mitarbeiter auch schon machen, an der gleichen Stelle, einen tiefer. Dieses Mal ist es so, dass ich die "Unternehmen", da bin ich jetzt einfach mit den Pfeiltasten hinunter gegangen, der weiß noch seine letzten Eintragungen, in "Mitarbeiter" austausche, im markierten Text, Achtung, "Alle ersetzen", das sind wiederum drei Stück, und ein Kompiliert-Check. Und dann schauen wir mal, was passiert. Ich gehe auf Willi Wichtig. Der hat sieben Niederlassungen und 16 Mitarbeiter. In der "Innenstadt" sind allerdings nur zwei. Passt. Wohingegen in Paris drei Mitarbeiter sind. Passt auch. Und die Niederlassungen, sieben Stück. Eins, zwei, drei, vier, fünf, sechs, sieben. Passt ebenso. Das heißt, diese Zahl können Sie sofort zählen, diese erst jeweils nach dem Austausch des Inhalts, aber im Grunde ist es das gleiche Konzept. Jetzt gibt es also keine Fehler mehr, in dem Steuerungsformular. Sie müssen es nicht in tausend Filtern einzeln prüfen, sondern einmal zentral, und wissen jetzt jeweils, wenn hier etwas ausgewählt ist, ist es etwas Gültiges, und als Benutzer kann ich sogar zusätzlich noch sehen, wieviele da enthalten sind.

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!