Access - gegliederte/abhängige Kombinationsfelder
Hallo!
Ich bitte um Hilfe, da ich mit Access wirklich nicht mehr weiterkomme.
Ich möchte Outlook für eine Aufgabenverwaltung nutzen.
Die Aufgaben sollen per VBA aus einer Access-Datenbank importiert werden.
Outlook soll nur zur Darstellung dieser importierten Aufgaben dienen, es soll also erst einmal keine Rückmeldung an die Datenbank bzw. keine Aufgabenbearbeitung im Outlook geben.
Den Aufgaben sollen Kategorien zugeordnet werden. Neben Hauptkategorien soll es Unterkategorien geben können, bis zu einer Tiefe von 3 (Gliederungs-Ebenen).
Beispiele:
Kundenbetreuung
Kundenbetreuung – Privatkunden
Kundenbetreuung – Geschäftskunden
Kundenbetreuung – Privatkunden – Norddeutschland
usw.
Diese (gegliederten) Kategorien sollen im Outlook in drei benutzerdefinierten Feldern angezeigt werden, deren Inhalt beim Import aus Access übertragen wird.
Das vorhandene Standardfeld „Kategorie“ im Outlook ist nicht zu gebrauchen, daher die benutzerdefinierten Felder.
Die Übertragung solcher Felder per VBA, und deren Anzeige im Outlook funktioniert schon reibungslos!
Problem
-----------
Ich bekomme es nicht hin, in einer Access Datenbank der Tabelle Aufgaben die in weiteren Tabellen definierten Kategorien und deren entsprechenden Unterkategorien zuzuweisen.
Zunächst habe ich drei Tabellen erstellt, um die Kategorien und deren Unterkategorien abzubilden:
Tabelle Ukat1
U1KatNr [AutoWert] (>Primärschlüssel)
U1KatName [Text]
Tabelle Ukat2
U1KatNr [Zahl]
(Kombinationsfeld > SELECT UKat1.*, UKat1.U1KatNr, UKat1.U1KatName FROM UKat1;)
U2KatNr [Autowert] (>Primärschlüssel)
U2KatName [Text]
Tabelle Ukat3
U2KatNr [Zahl]
(Kombinationsfeld > SELECT UKat2.*, UKat2.U2KatNr, UKat2.U2KatName FROM UKat1 INNER JOIN UKat2 ON UKat1.U1KatNr=UKat2.U1KatNr;)
U3KatNr [Autowert] (>Primärschlüssel)
U3KatName [Text]
Beziehungen
Ukat1.U1KatNr---1:n---Ukat2.U1KatNr
Ukat2.U2KatNr---1:n---Ukat3.U2KatNr
Nun habe ich der Tabelle Aufgaben (enthält zunächst die Standard Outlook-Felder) drei zusätzliche Felder für die Kategorie-Zuordnung vorrangstellt, und ein Feld zur späteren Aufgabenidentifizierung.
Tabelle Aufgaben
AufgNr [AutoWert] (>Primärschlüssel)
Kat1 [Zahl]
(Kombinationsfeld > SELECT UKat1.U1KatNr, UKat1.U1KatName FROM UKat1;)
Kat2 [Zahl]
(Kombinationsfeld > SELECT DISTINCT UKat2.U2KatNr, UKat2.U2KatName
FROM Aufgaben, UKat1 INNER JOIN UKat2 ON UKat1.U1KatNr = UKat2.U1KatNr
WHERE (((Aufgaben.Kat1)=[UKat2].[U1KatNr]));)
Kat3 [Zahl] (FEHLT NOCH)
Hier besteht mein Problem!
Es ist mir nicht möglich, im Kombinationsfeld der Kategorie 2 (der Unterkategorie: Aufgaben.Kat2[Zahl]) nur die Unterkategorien anzuzeigen, welche zur Kategorie 1 (Aufgaben.Kat1[Zahl]) DER JEWEILIGEN AUFGABE bzw. des Datensatzes gehören.
Es werden fälschlicherweise
- immer alle Unterkategorien (Kategorie 2) der in allen Aufgaben zugewiesenen Kategorie 1 angezeigt (und nicht nur der gerade zu bearbeitenden);
- nicht die jeweiligen Unterkategorien angezeigt, wenn die gerade zuvor zugewiesene Kategorie 1 noch nicht vorkam (keine Aktualisierung). Wird eine Kategorie 1 einer Aufgabe zugewiesen, die in anderen Aufgaben noch nicht vorkam, erscheinen dessen Unterkategorien nur nach zwischenzeitlichem Speichern und Schließen der Tabelle.
An das Feld für die Kategorie 3 in den Aufgaben hab ich mich aufgrund der beschriebenen Problematik noch nicht herangetraut.
Ich habe wenig Ahnung von Datenbanken, und noch weniger von Access. Ich habe leider erfolglos versucht, mir entsprechende Kenntnisse anzueignen, die mich auf eine Lösung der Problematik bringen. Meine Übungsversuche mit Access haben mich bis zu den hier beschriebenen Ansätzen gebracht, aber auch nicht weiter.
Für mich ist die ganze Thematik so abstakt, dass ich die letzten Tage schon Kopfschmerzen bekomme und mir regelmäßig schon Funktionierendes wieder zerlege.
Ich hege die Hoffnung, dass ich in meinen Überlegungen und den hier skizzierten Ansätzen nicht gänzlich falsch liege, und nur den Wald vor lauter Bäumen nicht sehe.
Ich bitte daher um Hilfe und möchte an dieser Stelle schon einmal fürs Lesen danken. Ich hoffe meine Problembeschreibung ist nicht zu missraten und halbwegs verständlich.
Antwort schreiben
Antwort 1 von Koebi vom 16.06.2019, 21:26 Options
Hallo
Schau einmal in der Access-FAQ von donkarl:
www.donkarl.com?FAQ4.36
Hier werden abhängige Kombifelder behandelt. Allerdings deren Anwendung in einem Formular. Aber vielleicht hilft es Dir weiter.
Sonst kannst Du mir auch Deine DB mal schicken, aber bitte gezippt und nur mit ein paar Testdaten.
Meine e-adresse: jahau@gmx.ch
Gruss
Köbi
Antwort 2 von Spunkmeyer vom 17.06.2019, 16:05 Options
Danke für die Antwort.
Emailadresse ist notiert, ich komm wahrscheinlich drauf zurück.
Hab gerade ein wenig Umzugsstress, deshalb kann das wiedderrum noch ein paar Tage dauern.
Das soll jetzt aber keinen von neuen/anderen Beiträgen abhalten...
Gruss
Spunkmeyer
Antwort 3 von lleopard vom 21.06.2019, 11:00 Options
Hallo Spunkmeyer
warum einfach wenn es auch kompliziert geht?
Versuch es mal so:
Erstelle eine Referenztabelle:
zB ref_Gliederungseben
Spalte1: Kategorie
Spalte2: Unterkategorie
Spalte3: Beschreibung
zB
1 | 0 | Kundenbetreuung
1 | 1 | Kundenbetreuung – Privatkunden
1 | 2 | Kundenbetreuung – Geschäftskunden
1 | 3 | Kundenbetreuung – Privatkunden – Norddeutschland
2 | 0 | .... ??? was auch immer
usw...
Man kann das Ganze auch noch weiter untergliedern... :-D
Das erübrigt schonmal das erstellen von x Tabellen, die eigentlich alle das gleiche beinhalten.
Jede Abfrage, die nun also in der Ersten Spalte auf die 1 filtert, gibt alle Datensätze der Kategorie Kundenbetreuung zurück, jede weitere Abfrage, die nun auf die 2. Spalte filtert, gibt also nur noch die der kategorie 1 zurück, wo auch Bedingung 2 erfüllt ist ...
Gruß Leo
PS: www.donkarl.com ist bei Access-Fragen immer zu empfehlen... aber auch hier nochmal ein Tip für alle Leser:
Sucht mal nach KnowHow.mdb ... Hat mich auch schon oft geholfen ;-)