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

Eine Datenbank mit Access 2013 richtig entwickeln

Niederlassungen einschränken

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Das Kombinationsfeld für die Niederlassungen ist inhaltlich abhängig davon, welches Unternehmen ausgewählt wurde. Mit VBA wird dessen Inhalt sinnvoll angepasst.

Transkript

Die erste Combobox, das erste Kombinationsfeld, funktioniert schon. Beim Starten wird die erweiterte Liste, die nämlich diesen Punkt "alle" hat, automatisch installiert, und auch der "alle"-Wert schon markiert. Das wird für das zweite, nämlich die Combobox der Niederlassung, erstmal recht ähnlich sein. Also, in der Entwurfsansicht, wir können einfach ganz skrupellos hier mit strg+C und strg+V eine Kopie anlegen. Ich schaffe schonmal ein bisschen Platz. Und dann steht dieses Mal eben nicht "Unternehmen", sondern "Niederlassungen" drin. Und deswegen heißt das dann auch "lblNiederlassungen". Passen Sie auf, dass Sie immer einheitlich, nur Plural, nur Singular, machen. Ich mache jetzt hier einen Plural, weil da mehrere drin sein könnten. Und das ist die "cmbNiederlassungen". Und im Grunde verhält die sich erstmal sehr ähnlich, das heißt eigentlich ändert sich hier erstmal nur die Datensatzherkunft. Trotzdem schneide ich die aus. strg+X, die wird erstmal rausfliegen. Und ich wechsle in die Programmierung, und zwar von diesem Kombinationsfeld. Dessen Ereignis beim Klicken, Doppelklick und drei Pünktchen, wird jetzt erweitert. Ich nehme das nur erstmal aus der Zwischenablage heraus und kommentiere das. Sonst wird das natürlich in VBA-Syntax fehlerhaft sein. Das werden wir gleich brauchen. Wenn ich auf das Kombinationsfeld "Unternehmen" einen Klick mache, habe ich möglicherweise einen ausgewählt. Und dann muss ich überlegen: Was passiert dann eigentlich für die Niederlassungen? Die Niederlassungen sollen nämlich entweder alle anzeigen, oder nur meine. Das wird mit diesem String, mit dieser Select-Anweisung, zusammenhängen. Also ich prüfe als erstes, wenn ich Unternehmen angeklickt habe, ob jemand auf "alle" war. "if me.cmbUnternehmen.Value" ist gleich "-1", dann war er auf "alle", das schreibe ich mir als Kommentar mal dahin. Und "Else", "End If". Wenn es alle sind, muss ich eigentlich nicht großartig was an meinem Niederlassungen-Inhalt ändern. Dann kann ich schreiben "me.cmbNiederlassungen.RowSource". Das ist die Datenquelle. Und da steht dann, ich schreibe das erstmal leer rein, so etwas ähnliches wie da oben. Also, im Grunde steht erstmal das gleiche da. Ich werde das da oben mal ein bisschen bereinigen, also zum Beispiel in weniger Zeilen. Ein bisschen zusammenschieben. Da darf es auch einzeilig sein. Also, es ist, glaube ich, schon ein bisschen deutlicher. Jetzt müssen wir eine echte Zeichenkette daraus machen. Also Gänsefüßchen auf, Gänsefüßchen zu, das Semikolon da ist übrigens zuviel, verkettet mit dem nächsten, Gänsefüßchen auf, Gänsefüßchen zu. Passen Sie auf, dass Sie dahinter immer Leerzeichen lassen, denn das wird ja jetzt zusammengesetzt. Und hier geht es auch ohne. Der Haken ist, hier muss man auch aufpassen, Gänsefüßchen in Gänsefüßchen würden das unterbrechen, also sind da die einzelnen Hochkommata erlaubt. Das ist sozusagen die Minimalversion. Und das kann ich jetzt schön zusammensetzen, außer dass es noch um Unternehmen geht, aber grundsätzlich gehört das da hinein. Jetzt muss ich nur dafür sorgen, dass hier nicht "unt" steht, sondern "ndl". Das ist für diesen Teil übrigens wurscht, aber es ist dann einheitlicher. Sonst kommt man durcheinander. "FROM qryNiederlassungenSortiert" natürlich. "UNION ALL" ein bisschen einrücken. Und dann hier ist es wichtig, dass da der richtige Feldname steht. "ndlID", "ndlNameAnzeigen", da freut man sich wieder, wenn man einheitliche Feldnamen hat. "FROM", "NiederlassungenSortiert". Das sollte erstmal funktionieren. Das würde ich als erstes ausprobieren, denn Syntaxfehler in dem Select können Sie in VBA nicht prüfen, selbst wenn ich jetzt auf "Debuggen" - "Kompilieren" gehe. Das wird erst zur Ausführungszeit getestet. Also, mit alt+F11 das Ding einmal starten, und wenn ich irgendwas auswähle, passiert da unten nichts, der ist noch leer. Wenn ich "alle" wähle, steht da unten jetzt etwas drin. Und, wie Sie sehen, glaubhaft, also, das sind Niederlassungen, und die enthalten auch "alle". Im anderen Fall, das kommt nämlich gleich noch, will ich natürlich, dass nur deren Niederlassungen zu diesem Unternehmen zu sehen sind. Also muss ich ein bisschen nachbessern. Das trifft meinen Code. Mit alt+F11 wieder herüber. Wenn es alle sind, kann ich die ungesehen nutzen. Wenn nicht, trifft das vor allem diesen zweiten Teil. Da kommt dann ein "WHERE ndluntIDRef"-Feld, ist gleich, da kommt ein Inhalt, den schiebe ich schonmal ein bisschen auseinander. Und hier muss ich einfach fragen, von welchem Wert denn, nämlich von dem, was ich in der Combobox "Unternehmen" als "Value" ausgewählt hatte. Also, da ist ein zusätzlicher Filter. Ich kann den auch gerne mal in eine zweite Zeile verschieben. Das ist ja immer dieser Pseudo-Umbruch. Kaufmanns-Und, Leerzeichen, Unterstrich, und dann Return, das wird nachher als eine Zeile behandelt. Dann sieht man hier deutlicher, "WHERE" meine "ndluntIDRef" diejenige ist, die bei der Combobox "Unternehmen" ausgewählt wurde. Und das sollte jetzt auf Anhieb schon funktionieren. Ich wähle Willi Wichtig aus, und sehe jetzt dessen Niederlassungen, und die sollten sich deutlich unterscheiden vom Testinghoff. Der hat ein paar weniger. Oder es gibt auch welche, die haben gar keine, da steht nur "alle" drin. Das hat aber den Vorteil, diese Liste enthält immer den Wert "alle". Ich kann mich also darauf verlassen, dass da etwas drinsteht. Damit haben wir den zweiten Schritt geschafft. Von dem Unternehmen, wenn ich das auf "alle" stelle, stehen hier wieder alle Niederlassungen drin. Und wenn ich Willi Wichtig oder Testinghoff oder sonstwie einen speziellen aussuche, dann stehen nur deren Niederlassungen drin. Es ist also eine Abhängigkeit, die es dem Benutzer erleichtert, die passende Niederlassung zum Beispiel für dieses Unternehmen auszuwählen. Das ist ein einfaches Reagieren auf das Klickereignis. Je nachdem, ob ich alle oder einen speziellen ausgewählt habe, zeige ich alle oder eben nur den speziellen.

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!