# Wenn dann sonst in Access 2003



## BlackWolf (26. September 2010)

Passt zwar nicht ganz hier rein, hoffe das mir trotzdem einer Helfen kann.

Aus Langeweile habe ich in Access 2003 eine Datenbank für Einsatzfahrzeuge entworfen.

Da gibt es fünf Obergruppen Feuerwehr, Polizei, Rettungsdienst, SEG/KatS und Sonstige. Für jede Obergruppe gibt es noch eine Tabelle mit den passenden Organisationen. Zum Beispiel Freiwillige Feuerwehr, Malteser Hilfsdienst etc.

Wie kriege ich es jetzt hin, das in der Haupttabelle tblFahrzeuge bei Auswahl der Obergruppe (Gespeichert in tblObergruppen) die entsprechende Tabelle der Obergruppe geladen wird?


----------



## xDave78 (27. September 2010)

KA ob ich das recht verstehe. Zuerst stellt sich natürlich die Frage WO du das auswählen willst? In nem Formular? Dann wär es relativ einfach. Machst nen neues Forumular mit nem Listenfeld oder Kombifeld mit dem Inhalt deiner Obergruppentabelle. Forumular im Hintergrud OFFEN LASSEN!!! Dann machst Du ne neue Abfrage aus deiner Haupttabelle. Irgendwie musst Du ja in beiden Tabellen ne einheiltliche Schlüsselspalte verbaut haben. In der Entwurfsansicht der Abfrage gehst Du nun auf diese Spalte in das Feld Kriterien und klickst oben im Menü auf den Zauberstab. Dort navigierst Du zu ..ich glaube..Formulare->geöffnete Formulare->Listen-/ bzw. Kombifeld des Forumulars.

Wenn Du nun im Formulat über dein Listen bzw Kombifelf eine Obergruppe anwählst solltest Du in der Abfrage nur die entsprechenden Daten dieser Gruppe finden.


----------



## dot (27. September 2010)

Nach mehrmaligen Lesen ist der letzte Absatz immer noch relativ unverstaendlich. Was moechtest du?
Habe mal was in 5 Minuten hingebastelt. Einzelne Formulare um die Gruppen und Organisationen zu verwalten (Anlegen, Loeschen, etc.) ist natuerlich Pflicht. In den Beziehungen vielleicht noch vernuenftige x:x Beziehungen definieren, aber auf die Schnelle funktioneirte es auch so.  Vielleicht hiflt es ja auf die Spruenge


----------



## xDave78 (28. September 2010)

Na so wie ich es verstanden habe, hat er die DB ja schon gemacht. Er wollte jetzt wissen wie es funzt, dass wenn er a) eine der Obergruppen auswählen kann (=Listen-/Kombifeld) und wie er dann b) die Tabellendaten nach dieser Auswahl filtern kann - ich schätez mal so, dass wenn er zB Feuerwehr auswählt eine Liste mit allen Feuerwehrfahrzeugen ausgegeben wird. 

Ich bin davon ausgegangen, dass er das was Du aufgemalt hast, also die Datenbank schon soweit hat wie bei Dir dargestellt. 

Leider meldet er sich ja nicht mehr...


----------



## BlackWolf (30. September 2010)

Die Db ist dafür da um die von sich selber  Fotografierten Einsatzfahrzeuge der BOS zu erfassen. Das kann zwar auch  ein Programm zur Fotoverwaltung, aber die Eingabe der wesentlichen  Merkmale eines Fahrzeuges ist schwierig (z.B. Kennzeichen, Funkrufname,  Besatzung etc). 

Die Datenbank besteht aus 16 Tabellen momentan. 
tblFahrzeuge - Hier werden die gesamten Fahrzeuge gespeichert 
tblKategorie - Enthält die Kategorien für die aufnahmen (Innen, Außen etc) 
tblTypen - Enthält die Typen des Einsatzfahrzeuges (fahrzeug, Helikopter, Boot etc) 
tblHersteller - Enthält Hersteller der Fahrgestelle 
tblAufAusbauhersteller - Enthält Firmen für den Aus/Aufbau 
tblObergruppen - Enthält die Einteilung der BOS (Feuerwehr, Rettungsdienst etc) 
tblOrganisationRettungsdienst - Enthält die einzelnen Organisation des RD (JUH, MHD, DRK, DLRG) 
tblOrganisationFeuerwehr - Enthält die einzelnen Organisation der Fw (FF, BF, WF) 
tblOrganisationPolizei - Enthält die einzelnen Organisation der Polizei (Landespolizei, Bundespolizei) 
tblOrganisationSEGKatS - Enthält die einzelnen Organisation der SEG/KatS (JUH, MHD, DRK, DLRG, THW, FF, BF) 
tblOrganisationSonstige - Enthält die einzelnen Organisation die nicht ein teilbar sind 
tblKlassifikationRettungsdienst - Enthält die Fahrzeugklassen des Rettungsdienstes 
tblKlassifikationFeuerwehr - Enthält die Fahrzeugklassen der Feuerwehr 
tblKlassifikationPolizei - Enthält die Fahrzeugklassen der Polizei 
tblKlassifikationSEGKatS - Enthält die Fahrzeugklassen des SEG/KatS 
tblKlassifikationSonstige - Enthält die Fahrzeugklassen der Sonstigen 

Jetzt soll bei Auswahl der Obergruppe (tblObergruppen) wie Feuerwehr,  die entsprechenden Organisationen (tblObergruppenXX) angezeigt werden,  wie Freiwillige Feuerwehr, Berufsfeuerwehr, etc. 
Entsprechend sollen auch nur die Fahrzeug Klassifikationen  (tblKlassifikationenXX) angezeigt werde, da es sonst auf Grund der Masse  von den verschiedenen Fahrzeugklassen unübersichtlich wird. 

Das einpflegen der Fahrzeuge läuft über das Formular frmFahrzeuge und die Informationen werden in tblFahrzeuge gespeichert.

In der Datenbank sind noch nicht alle einzelne Inhalte der Tabellen eingefügt


----------



## xDave78 (1. Oktober 2010)

Achso. Naja ich finds n bisschen umständlich wei Du das gelöst hast weil Du da ganz viel "tricksen" musst. 

Zuerst einmal würde ICH vorschlagen : Mach EINE Tabelle für ALLE Dienste! Glaube mir es ist besser, auch für das ganze Handling. Und dann mach die Struktur wie von *dot* beschrieben indem Du jeder Organiissation ne ID gibst als Identifikation. Dann kannst Du auch meine Eingangs erwähnte Methode nehmen die wesentlich eleganter ist als das was ich Dir jetzt sage.

Um das zu machen was Du da vor hast, müssen auf jeden Fall alle Tabellen die GLEICHE Struktur haben. Also gleiche Spaltenanzahl mit gleichen Datentypen. Erstelle zusätzlich eine leere Tabelle "tblActView" mit dieser Struktur. Für jede deiner Dienststellentabellen musst Du nun eine "Anfügeabfrage" an diese Tabelle erstellen (nicht ausführen). Erstelle ein Formular in der Entwurfsansicht! Zieh ein Listenfeld aus der Toolbox auf die Fläche  ; wähle Werte aus Tabelle tblObergruppe; auf das Bezeichnungsfeld  benenne das Listenfeld in "Kriterium1" um. Speichern als frmAuswahl!  Nun machst Du Dir ein Makro auf!Schalte im Menü die Bedingungen an!!!! 

Erste Zeile: Aktion: Warnmeldungen: aus
Zweite Zeile: Ausführen SQL: Delete * from tblActView;
Dritte Zeile: 
Bedingungen: klicke auf den Zauberstab; gehe zu Formular->geöffnete Formulare->frmAuswahl->Kriterium1 
Dann vervollständige den Ausdruck indem Du dahinter schreibst 

= "Feuerwehr"


In die Aktion kommt dann rein: Ausführen Abfrage: Name der Anfügeabfrage für tblOrganisationFeuerwehr. 
Zeile komplett markieren und erstmal in die Zwischenablage kopieren mit STRG+C. 

Nachste Zeile: Bedingungen: STRG+V zum einfügen des oben kopierten Ausdrucks. Ersetze Feuerwehr mit Rettungsdienst und auch beim Ausführen derr Abfrage.

Das musst Du für ALLE ORGANISATIONEN der Tabelle tblObergruppen machen. Daher sag ich auch, dass es nicht die elegante Lösung ist. 

Jedenfalls wenn Du das für alle gemacht hast gehst du in frmAuswahl auf Entwurfsansicht und in den eigenschaften deines Listenfeldes gehst Du auf Ereignis->Nach Aktualisieren und wählst dein Makro aus. Viel Spass damit!


----------

