Hallo zusammen!
Bisher konnte mir das Forum bei meinen "Problemchen" immer gut weiterhelfen (DANKE dafür!), allerdings grübel ich jetzt schon einige Tage an meiner Datenbank und komme nicht wirklich weiter.
Zu meinem "Problem":
- meine Datenbank besteht aktuell aus 3 Tabellen. Tabelle 1 definiert die Benutzergruppen ID 1-3. Also sehr simpel. Tabelle 2 dient der Mitgliederverwaltung. Hier wird gleichzeitig jedes Mitglied mittels Combo Box einer Gruppe aus Tabelle 1 zugeordnet. Tabelle 3 beinhaltet Dokumente, die von den Mitgliedern aus Tabelle 2 gelesen werden müssen (und bestätigt werden sollen, dazu aber gleich mehr) und auch den Gruppen aus Tabelle 1 zugeordnet werden. Dokument 1 ist also z.B. nur für Gruppe 1, Dokument für Gruppe 2+3, Dokument 3 für Gruppe 2 usw. Alle 3 Tabellen stehen also in Beziehung zueinander
- soweit so gut - jetzt habe ich mir ein Formular gebaut, bei dem ich per Combobox ein Mitglied auswählen kann. Zusätzlich gibt es eine Subform, in der die Dokumente aus Tabelle 3 angezeigt werden sollen, die für das jeweilige Mitglied zugehörig sind. Wenn ich jetzt die Dokumente in der Subform nach Nummerierung (Primärschlüssel) sortieren möchte, dann kommt direkt der Fehler "Syntax error (missing operator) in query expression '...'." Da das meine erste Access Datenbank ist, habe ich natürlich keinerlei Ahnung, was ich da falsche gemacht habe.
- zusätzlich würde ich jetzt gerne in der Subform per Check Box die jeweiligen Dokumente für jedes Mitglied bestätigen lassen. Aber mit einer Check Box an sich ist es nicht getan, denn dann werden einfach alle Dokumente für alle Mitglieder "gecheckt". Meine Überlegung war jetzt, dass ich eigentlich eine Tabelle benötige, bei der die Mitglieder in der x-Achse aufgelistet werden und die Dokumente in der y-Achse gelistet werden. Dann könnte man für jede Paarung eine einzelne Check Box haben. Ich befürchte aber, dass mein Gedankengang komplett falsch ist.
Also noch mal kurz: wodurch habe ich den Syntax Error produziert und wie kann ich eine "Abhakliste" bauen, damit jeder das Lesen der Dokumente bestätigen kann?
Ich habe schon eine abgespeckte Version meiner Datenbank erstellt (fiktive Personen und Dokumente), die ich gerne hochladen kann.
Beste Grüße, AJ :)
Hallo,
Punkt 2) Ohne Kenntnis der Abfrage (SQL-String) und des genauen Tabellenaufbaus (Beziehungsfenster) ist da wenig dazu zu sagen.
Punkt3) bezgl. x-Achse und y-Achse geht der Gedankengang vermutlich in die falsche Richtung.
Zitatwie kann ich eine "Abhakliste" bauen, damit jeder das Lesen der Dokumente bestätigen kann?
Es muss ein "Abhak"-Haken (Kontrollkästchen) in der Tabelle mitgeführt werden, in der die Zuordnung der Dokumente zu den Mitgliedern stattfindet. Besser als ein KK wäre ein Datumsfeld ("gelesenAm"), das das Lese-Datum aufnimmt.
Zitatdie ich gerne hochladen kann.
tu das, es wäre sinnvoll... ;)
Vielen Dank für die schnelle Antwort. Ich habe schon befürchtet, dass ich mit meiner Idee auf dem Holzweg bin. Leider konnte ich bisher keine Alternative finden, was aber wohl daran liegt, dass ich nicht weiß wonach ich suchen muss.
Ein Datumsfenster wäre natürlich noch besser, ich ging nur davon aus, dass ein einfaches KK ,,einfacher" wäre. Offensichtlich immer noch zu kompliziert für meinen Wissensstand. ::)
Beste Grüße!Flugverein 03-27-01.zip
@mr.airworthy In der Hoffnung, dass ich hier nicht doppelte Anmerkungen schreibe weil Franz
das auch gerade tut, und so auf die Schnelle.
1. lösche erstmal alle Beziehungen (werden später neu angelegt)
2. spendiere allen Tabelle, die noch keinen haben einen AutoWert als Primär-
schlüssel; - Textfelder sind dafür schlecht geeignet, und nenne ihn nicht
einfach "ID", sondern gebe einen zur Tabelle passenden Namen
3. für das Feld "Applicability" (aus der vorhandenen Tabelle muss das raus)
musst du eine n:m-Tabelle zwischen "Members" und "CIF" anlegen
tblApplicabilities
- ApplicabilityID -> PK (Autowert)
- MemberID_F -> FK (Zahl, LongInteger)
- CIF_ID -> FK (Zahl, LongInteger)
- gelesen_am -> Datum
4. ändere das Feld "Link" zu einem Textfeld, das Öffnen des Dokuments erfolgt
dann später auch per Klick im Formular mit der Methode "FollowHyperlink"
5. ändere das Feld "Published" zu einem Datumsfeld, das Jahr lässt sich daraus
jederzeit ermitteln
6. das Gleiche gilt für das Feld "Birthday" -> Datumsfeld, eine deinen Wünschen/
Vorgaben entsprechende Formatierung ist auch an allen Stellen, wo es gebraucht
wird möglich, nur rechnen kann man damit so nicht
7. lege Beziehungen immer mit "referentieller Integrität" an
gruss ekkehard
Vielen Dank Ekkehard!
Leider liess meine Antwort ein wenig auf sich warten, da ich Deine Tipps nicht nur umsetzen, sondern auch - zumindest ein wenig - verstehen wollte. Wer weiß, wann ich die nächste (zweite) Datenbank schreibe. :)
Zitat von: Beaker s.a. am März 28, 2022, 19:07:371. lösche erstmal alle Beziehungen (werden später neu angelegt)
Erledigt. Ich hatte mich schon gefragt, warum andere Beziehungen meist mit Symbolen an den Verknüpfungen beschriftet waren. Jetzt weiss ich es.
Zitat von: Beaker s.a. am März 28, 2022, 19:07:372. spendiere allen Tabelle, die noch keinen haben einen AutoWert als Primär-
schlüssel; - Textfelder sind dafür schlecht geeignet, und nenne ihn nicht
einfach "ID", sondern gebe einen zur Tabelle passenden Namen
Habe ich ebenfalls nachgeholt. Auch wenn mich jetzt die Nummerierung ein wenig irritiert, aber die kann man ja auch ausblenden lassen.
Zusätzliche habe ich versucht die Formulare etwas aufzuräumen (Bezeichnung der Steuerelemente standardisiert).
Zitat von: Beaker s.a. am März 28, 2022, 19:07:373. für das Feld "Applicability" (aus der vorhandenen Tabelle muss das raus)
musst du eine n:m-Tabelle zwischen "Members" und "CIF" anlegen
tblApplicabilities
- ApplicabilityID -> PK (Autowert)
- MemberID_F -> FK (Zahl, LongInteger)
- CIF_ID -> FK (Zahl, LongInteger)
- gelesen_am → Datum
Habe ich angelegt! Allerdings ist mir jetzt nicht klar, ob ich die Tabelle selbst füllen muss oder ob das später im Formular/Unterformular realisiert wird. Wenn ich diese tbl jetzt händisch füllen muss: gibt es da einen Trick, dass einfach zu realisieren? In meiner eigentlichen Datenbank habe ich knapp 150 Mitglieder und 50 Dokumente - die Anzahl der "gelesen_am" beträgt also mehr als 5000.
Zitat von: Beaker s.a. am März 28, 2022, 19:07:374. ändere das Feld "Link" zu einem Textfeld, das Öffnen des Dokuments erfolgt
dann später auch per Klick im Formular mit der Methode "FollowHyperlink"
Ebenfalls erledigt. Ist so viel schöner gelöst, da in der tbl nicht jedes mal der Hyperlink ausgeführt wird, wenn man auf die entsprechende Zeile drückt. Vielen Dank!
Zitat von: Beaker s.a. am März 28, 2022, 19:07:375. ändere das Feld "Published" zu einem Datumsfeld, das Jahr lässt sich daraus
jederzeit ermitteln
Erledigt.
Zitat von: Beaker s.a. am März 28, 2022, 19:07:376. das Gleiche gilt für das Feld "Birthday" -> Datumsfeld, eine deinen Wünschen/
Vorgaben entsprechende Formatierung ist auch an allen Stellen, wo es gebraucht
wird möglich, nur rechnen kann man damit so nicht
Grundsätzlich wollte ich das Feld später nur als Passwort nutzen, damit im Formular, in dem jedes Mitglied die ihm zugehörigen Dokumente abzeichnen muss, vorher sein persönliches PW (Geburtstag) eingeben muss. So wollte ich verhindern, dass jemand aus Versehen für eine andere Person Dokumente bestätigt. Wenn es trotzdem mehr Sinn ergibt, das ganze als Datum darzustellen, dann hole ich das nach. :)
Zitat von: Beaker s.a. am März 28, 2022, 19:07:377. lege Beziehungen immer mit "referentieller Integrität" an
Auch hier: sorry, da habe ich vorher einfach nicht richtig nachgelesen. Die Erklärungen dazu machen deutlich, warum das Sinn ergibt.
Anbei wieder meine aktualisierte und ausgedünnte Datei. Vielen lieben Dank für die tolle Hilfe! Nur jetzt zu meiner eigentlichen Frage: wie bekomme ich Anfänger eine Abfrage im Formular frmCIFCrewmember realisiert? :P
Beste Grüße, AJ
Hallo,
nachdem Du ja die Vorschläge von Ekkehard fast allesamt umgesetzt hast, noch ein paar Erweiterungen:
Vermeide reservierte Wörter, auch solche, die "offiziell" nicht als solche definiert sind: "Function" , "Active" , etc.
ZitatGrundsätzlich wollte ich das Feld später nur als Passwort nutzen, damit im Formular, in dem jedes Mitglied die ihm zugehörigen Dokumente abzeichnen muss, vorher sein persönliches PW (Geburtstag) eingeben muss.
Dann nenne das Feld auch "PW" oder ähnlich. Sonst sucht man (später auch Du ;) ) in diesem Feld ein tatsächliches Geburtsdatum.
ZitatNur jetzt zu meiner eigentlichen Frage: wie bekomme ich Anfänger eine Abfrage im Formular frmCIFCrewmember realisiert?
Stelle die Frage nochmal genau. Was soll die Abfrage bewirken?
"frmCIFCrewmember" gibt es nicht...
"frmCrewmemberCIF" ist noch irreführend benannt. Das Form bezieht sich nur auf Tabelle tblCrewmember und sollte auch dann entspr. so heißen: "frmCrewmember"
Ich denke, es braucht noch ein Form "frmApplicabilities", das als UFO in frmCrewmember oder in frmCIF eingebunden wird (mit "Verknüpfen von/nach" über die entspr. Schlüsselfelder)
Moin!
Zitat von: DF6GL am März 30, 2022, 09:21:47nachdem Du ja die Vorschläge von Ekkehard fast allesamt umgesetzt hast, noch ein paar Erweiterungen:
Vermeide reservierte Wörter, auch solche, die "offiziell" nicht als solche definiert sind: "Function" , "Active" , etc.
Danke! Ich habe mal versucht die betroffenen Elemente umzubenennen. Behalte ich mir fuer die Zukunft im Hinterkopf.
Zitat von: DF6GL am März 30, 2022, 09:21:47Dann nenne das Feld auch "PW" oder ähnlich. Sonst sucht man (später auch Du ;) ) in diesem Feld ein tatsächliches Geburtsdatum.
:) Hab's geaendert.
Zitat von: DF6GL am März 30, 2022, 09:21:47Stelle die Frage nochmal genau. Was soll die Abfrage bewirken?
Ich habe mich tatsaechlich etwas kryptisch ausgedrueckt. Da ich in der letzten Version einige Aenderungen vorgenommen habe, hier noch mal eine Zusammenfassung.
tblCIFHier warden alle Dokumente erfasst, die von den CM (Crewmembern) gelesen und bestaetigt werden muessen.
Den alten Wert 'Applicability' habe ich geloescht und gegen einen Wert aus der
tblCIFapplicability (neu angelegt) ersetzt. War das korrekt so? Ich habe den Eindruck, dass meine Beziehung zur
tblCIFapplicability wieder nicht korrekt ist. Ist die mehrfache Auswahl nicht moeglich? Eigentlich muessten doch in der
tblCIFapplicability die '+' neben dem Primaerschluessel auftauchen?
tblCIFapplicabilityDa faellt mir gerade auf, dass die Tabelle quasi identisch zur
tblCMFunction ist, allerdings anders verwendet wird. Bzgl. meines Problems, siehe
tblCIF.
tblCMHier werden alle Mitglieder (Crewmember) erfasst. Die Tabelle passt meiner Meinung nach so.
tblCMFunctionBeziehungstabelle fuer
tblCM.
tblSignatureOverviewDiese Tabelle ersetzt die vorherige
tblApplicability (die meiner Meinung nach nicht korrekt benannt war). Aktuell gibt es hier allerdings keine Eintraege, da ich nun gehofft habe, dass diese Tabelle als 'automatisches Datengrab' genutzt wird? Diesbezueglich unter
frmSignatureList mehr.
frmCIFfrmCIF dient aktuell eigentlich nur dazu, um spaeter den Nutzern die existierenden Dokumente aus
tblCIF aufzulisten. Weiterhin kann der "Admin" nach dem entsperren Eintraege aendern oder weitere CIFs/Dokumente hinzufuegen.
Mit dieser Form bin ich soweit eigentlich ziemlich zufrieden. Aktuell kaempfe ich nur noch mit dem Textfeld 'txtCIFapplicability', da ich hier gerne die Namen aus
tblCIFapplicability statt des Primaerschluessels angezeigt bekommen moechte. Oder ist das ein Problem meiner 1:n-Beziehung 'INT_CIFapplicability_ID - CIF_applicability.Value'?
frmSignatureListDiese Form soll die eigentliche Aufgabe der Datenbank uebernehmen. Ich lass hier einige Daten aus
tblCM anzeigen. Diese muessen und sollen nicht geaendert werden (im Gegensatz zu
frmCIF). Mit Hilfe der Combobox kann sich jedes Mitglied 'auswaehlen'. Wenn das passiert ist, soll im unteren Teil (ich ging jetzt von einer Subform aus) eine personalisierte Liste aller zutreffenden CIFs zur Verfuegung stehen, die dann hier bestaetigt werden koennen. Diese 'Werte' (das Datum, an dem welche CIF von welchem Mitglied) muessten dann wohl in
tblSignatureOverview automatisch hinzugefuegt werden? Ist das irgendwie verstaendlich, worauf ich hinaus moechte? Ich werde mal eine dilettantische Zeichnung von mir anhaengen. J
Vielen lieben Dank fuer eure Hilfe!
Hallo,
statt vieler Worte habe ich die DB etwas modifiziert.
Erstelle zusätzlich für jede Tabelle ein Formular...
frmCm (gibt es schon, mit modifiziertem Code)) und frmCif : Einzelnes Formular
alle anderen Forms: Endlosformular
frmCmCif wird als UFO-Steuerelement in frmCm und/oder frmCif eingebunden. (Verknüpfen von/nach über die entspr. Schlüsselfelder)
Guten Morgen und vielen Dank fuer die Arbeit!
Leider stehe ich irgendwie auf dem Schlauch. Wieso fehlt die frmSignatureList (und warum heisst das Formular in den Registerkarten noch formCrewmemberCIF)? Da wuerde ich ja eigentlich gerne das entsprechende Unterformular einfuegen. Oder soll die frmSignatureList quasi wieder zur frmCrewmember werden und die frm SignatureList besitzt dann die UFOs frmCrewmember und frmCrewmemberCIF?
Ich werde mich jetzt noch mal an Access setzen und die Datenbank von Grund auf neu bauen/gestalten. Problem ist nur, dass ich gedanklich festgefahren bin und keine Alternative zur Realisierung meines Problems sehe. Sobald diese dann steht melde ich mich wieder, in der Hoffnung, dass meine DB zumindest mal "sauber" ist. Weiterhin werde ich den "Schnickschnack" erst mal weglassen (PW-Eingabe, Steuerelemente im Forumlar, etc.) und mich auf die Basics konzentrieren.
Beste Gruesse aus Koeln!
Hallo,
ZitatWieso fehlt die frmSignatureList
ich habe doch fast alles umbenannt, so auch diese Tabelle in tblCmCif (---> m-n-Tabelle zu tblCm und tblCif )
Zitatwarum heisst das Formular in den Registerkarten noch formCrewmemberCIF)
Ein bisschen Arbeit muss Dir ja bleiben ... 8) Passe die Formulare (in denen auch Code geändert und Makros entfernt wurden) an die neue Tabellenstruktur an. Lies meinen letzten Beitrag nochmal.
Zitatkeine Alternative zur Realisierung meines Problems sehe
Hä ?? Du musst doch nur die Formulare ein bisschen anpassen, und fertig ist die Sache.. Wo hast Du denn ein Problem?
Hi,
also der Fehler liegt nicht bei Dir, sondern definitiv bei mir. :)
Zitat von: DF6GL am März 30, 2022, 19:33:05Erstelle zusätzlich für jede Tabelle ein Formular...
Ok, das sollte ich hinkriegen.
Zitat von: DF6GL am März 30, 2022, 19:33:05frmCm (gibt es schon, mit modifiziertem Code)) und frmCif : Einzelnes Formular
Wenn ich die von Dir hochgeladene Datei oeffne, dann habe ich zwar die frmCIF (mit, wie im letzten Post erwaehnt, geaendertem Code), aber die frmCM sehe ich eben nicht. Mir wird nur ein Formular angezeigt.
Zitat von: DF6GL am März 30, 2022, 19:33:05alle anderen Forms: Endlosformular
Diesbezueglich werde ich mich gleich noch mal einlesen. Wenn ich es aber richig verstehe, dann dient das Endlosformular dazu, Eingaben wie in einer tbl vorzunehmen, ohne in der tbl direkt arbeiten zu muessen?
Zitat von: DF6GL am März 30, 2022, 19:33:05frmCmCif wird als UFO-Steuerelement in frmCm und/oder frmCif eingebunden. (Verknüpfen von/nach über die entspr. Schlüsselfelder)
Ich habe jetzt nebenbei in Deiner zur Verfuegung gestellten Datei ein wenig herumgefuscht (anders will ich es nicht bezeichnen) und wuerde fast behaupten, dass ich es doch gewissermassen umsetzen konnte. Im Formular frmCM ist das Unterformular frmCmCif eingebunden und sobald das CM oben ueber meine cbo geaendert wird, aendert sich auch die CmCif_CMID (was also genau dem entspricht, was ich gerne haette). Nur wie werden jetzt eben in dieser Unterform nur die CIFs angezeigt, die fuer das CM applicable sind (definiert in tblCIF / CIF_Applicability)?
Wahrscheinlich raufst Du Dir bei jeder neuen Frage meinerseits die Haare, sorry dafuer!
Beste Gruesse!
Hallo,
ZitatNur wie werden jetzt eben in dieser Unterform nur die CIFs angezeigt, die fuer das CM applicable sind (definiert in tblCIF / CIF_Applicability)?
es werden die CIFs angezeigt, die zu einer Person (CM) von Dir zugeordnet wurden.
Die Zuordnung der "Applicability" ist nur für die "CIF"s gegeben und hat mit den Personen nichts zu tun.
Ich hatte vorher ja schon angedeutet, dass "Applicability" in dieser Tabellenkonstruktion nur informativen Charakter hat und nicht weiter verwendet wird (z. B. zum Filtern). Wenn eine Verbindung von "Applicability" zwischen CIF und CM erforderlich ist, sind weitere n:m-Tabellen erforderlich., mindestens aber ein Feld in tblCM, das die (gültige ) "AppID" für diese Person aufnimmt
Hi,
muesste es nicht sogar ausreichend sein, wenn ich tblCMFunction fuer tblCIF und tblCM gleichermassen nutze? Somit besteht ja eine n:m Beziehung zwischen tblCIF und tblCM. tblApplicability koennte dann eigentlich in die Tonne.
Bzgl. tblCMxCIF als UFO in frmCM: so wie es jetzt ist, muss ich manuell die CIFID eingeben. Ich haette aber gerne, dass schon alle bestehenden (und zutreffenden/applicable) CIFs bereits aufgelistet werden. Es sollen also nur noch readdate und readnote ausgefuellt werden.
Vielen Dank fuer Deine Hilfe, auch wenn ich immer etwas brauche, bis ich den Inhalt Deiner Posts verstehe. :D
Hallo,
ich verstehe die Bedeutung, bzw. Unterschied von tblApplicability und tblCMFunktion nicht richtig.
Ich sehe das so:
Unter tblCMFunktion kann ich mir zwar die "Tätigkeit" oder "Tätigkeitsbereich" einer Person (CM) vorstellen und muss demzufolge an tblCM angebunden werden (btw: warum änderst Du dauernd (und dazu noch unlogisch) die Bezeichnungen/Namen der Felder und Tabellen? Korrigiere dies zunächst alles.).
Weiterhin: Wirf dieses Anlagenfeld ("Cifapplicability") aus tblCif heraus und erstelle eine Tabelle ("tblCifApp") , die an tblCif in n-Beziehung angehängt wird.
"Applicability" hat dann die Bedeutung eines "Gültigkeitsbereiches" für ein Dokument ("CIF"). Dabei kann ein Dokument mehrere Gültigkeitsbereiche haben.
Wenn Tätigkeitsbereich und Gültigkeitsbereich den gleichen Wertebereich umfassen, also datenmäßig identisch sind, dann ist nur eine Tabelle erforderlich.
Solange diese grundlegenden Tabellen und deren Beziehungen nicht klar sind, ist das Arbeiten an Formularen völlig umsonst.
Hallo,
@AJ
Bitte entschuldige, dass ich mich nicht mehr beteiligt habe, war aber
gestern und heute den ganzen Tag ausser Haus.
@franz Vielen Dank für dein Einspringen.
gruss ekkehard
Moin!
Sorry, dass ich mich erst jetzt wieder melde, wurde gestern wieder etwas laenger im Buero.
Zitat von: DF6GL am März 31, 2022, 16:19:00ich verstehe die Bedeutung, bzw. Unterschied von tblApplicability und tblCMFunktion nicht richtig.
Ich sehe das so:
Unter tblCMFunktion kann ich mir zwar die "Tätigkeit" oder "Tätigkeitsbereich" einer Person (CM) vorstellen und muss demzufolge an tblCM angebunden werden (btw: warum änderst Du dauernd (und dazu noch unlogisch) die Bezeichnungen/Namen der Felder und Tabellen? Korrigiere dies zunächst alles.).
Vollkommen richtig. Jede Person (CM=Crewmember) hat einen Taetigkeitsbereich (CMFunction). Diese Personen (CM) muessen Dokumente (CIF) lesen und bestaetigen (Lesebestaetigung). Die Dokumente betreffen aber nicht immer alle Personen, sondern koennen manchmal nur fuer CMFunction1 zustaendig sein, oder CMFunction1+2 und so weiter. Deswegen haette ich es gerne so realisiert, dass je Person nur die Dokumente angezeigt werden, die die jeweilige Person auch lesen und bestaetigen muss. Grundsaetzlich sind also CMFunction und CIFApplicability vom Inhalt identisch. Nur, dass jeder Person nur EINE CMFunction zugewiesen wird und jede CIF MEHRERE haben kann.
Zitat von: DF6GL am März 31, 2022, 16:19:00Weiterhin: Wirf dieses Anlagenfeld ("Cifapplicability") aus tblCif heraus und erstelle eine Tabelle ("tblCifApp") , die an tblCif in n-Beziehung angehängt wird.
Erledigt. Hoffentlich korrekt? Ich habe es nur nicht auf die Reihe bekommen, eine Mehrfachauswahl der Gueltigkeitsbereiche pro CIF zu realisieren. Waere das dann in einem Formular umsetzbar?
Zitat von: DF6GL am März 31, 2022, 16:19:00"Applicability" hat dann die Bedeutung eines "Gültigkeitsbereiches" für ein Dokument ("CIF"). Dabei kann ein Dokument mehrere Gültigkeitsbereiche haben.
100% korrekt. Die Gueltigkeitsbereiche entsprechen weiterhin den Taetigkeitsbereichen (1-3).
Zitat von: DF6GL am März 31, 2022, 16:19:00Wenn Tätigkeitsbereich und Gültigkeitsbereich den gleichen Wertebereich umfassen, also datenmäßig identisch sind, dann ist nur eine Tabelle erforderlich.
Ok, das waere dann tblCMFunction.
Bzgl. der geaenderten Bezeichnungen: sorry dafuer, ist mir durchaus bewusst, dass das ziemlich verwirrend ist. Genau das ist aber auch der Grund, warum ich die Bezeichnungen in - meiner Meinung nach - sinnvollere geaendert habe.
Zitat von: Beaker s.a. am März 31, 2022, 21:58:02Bitte entschuldige, dass ich mich nicht mehr beteiligt habe, war aber
gestern und heute den ganzen Tag ausser Haus.
Ach, gar kein Problem. Ich bin fuer jede Hilfe dankbar, egal wann. :) Ohne euch waere ich nicht halb so weit und wuerde noch weniger verstehen.
So, ich lese jetzt mal wieder Access-Tutorial. :)
*Ich glaube, dass ich nun das Unterformular ein wenig verstanden habe. Aktuell hat mein Formular frmCM das Unterformular frmCMxCIF. Die darin enthalten CIFs müssten jetzt erst noch mit dem CM verknüpft werden, damit sie dort angezeigt werden. Da ich die CIFs aber gerne mit den CMFunctions verknüpft hätte, muss ich noch (wie auch immer, dass weiß ich nämlich noch nicht) einen Schritt ,,tiefer" verknüpfen?
Flugverein new 04-01-3.zip
Beste Gruesse!
Hallo,
habe die Db überarbeitet und die Beziehungen so gesetzt, wie ich es interpretiere.
Zusätzlich die Benamsungen der Tabellen und Felder durchgängig gemacht.
Bleibe bitte bei dieser Namensgebung und ändere die nicht wieder. Die Makros habe ich durch VBA-Code ersetzt.
Die "CifApplicability" (tblCifFunction) hat mit dem Lesen der CIF durch den CM nichts zu tun.
Hallo!
Vielen Dank fürs Berichtigen der Datenbank. Ich werde die Bezeichnungen so beibehalten. ;)
Leider bin ich erst jetzt wieder dazu gekommen, die Datenbank anzuschauen. Wie hast Du es denn jetzt realisieren können, dass die CIFs, die von den CM ,,gelesen" wurden (über die frmCM), in eine Tabelle (tblCmCif) geschrieben werden? Die Tabelle tblCmCif dient also als Datengrab?
Die Tabelle tblCifFunction sollte eigentlich analog zur tblFunction den CIFs dienen, da diese eben zugeordnet werden sollen. Also CIFID 1 ist nur für FuncID 1 + 2 (= CifFuncID 1 + 2) zuständig, CIFID 2 nur für FuncID 3 (= CifFuncID 3), etc. zutreffend. Gleichzeitig sollen dann die bereits zugeordneten CIFs für die CM in der frmCM bereits automatisch angezeigt werden. Aktuell ist es ja so, dass jedes CM sich die CIFs aussuchen und bestätigen kann.
Beste Grüße und noch ein schönes Wochenende!
Hallo,
ZitatWie hast Du es denn jetzt realisieren können, dass die CIFs, die von den CM ,,gelesen" wurden (über die frmCM), in eine Tabelle (tblCmCif) geschrieben werden? Die Tabelle tblCmCif dient also als Datengrab?
ich glaube, Du siehst das Ganze falsch...
Erstmal ist tblCmCif kein "Datengrab", sondern zeigt die einem CM zugeordenten CIFs an, die dort auch als "gelesen" oder auch als "nicht gelesen" gekennzeichnet werden.
Wer verantwortlich für die initiale Zuordnung der CIfs zu einem CM ist, ist nicht definiert/bekannt.
Der Verantwortliche muss eben (bei dieser Tabellenkonstellation) wissen, welche CIF-Art(en), bzw. Bereiche für welche "Function" gültig sind. Wenn man das grundsätzlich definieren muss oder will, ist/sind eine weitere , bzw. mehrere Tabelle(n) nötig, die eben diese Zuordnung übernehmen.
Zitat von: undefinedGleichzeitig sollen dann die bereits zugeordneten CIFs für die CM in der frmCM bereits automatisch angezeigt werden
"...in der frmCM..." Nein, das wäre falsch. Die Zuordnung übernimmt tblCmCif. Dort wird der PK von tblCm und er PK von tblCif als Fremdschlüssel übernommen (---> ", dass die CIFs, die von den CM ,,gelesen" wurde" )
Zitat von: undefinedGleichzeitig sollen dann die bereits zugeordneten CIFs für die CM in der frmCM bereits automatisch angezeigt werden.
tut es doch ??
Zitat von: undefinedAktuell ist es ja so, dass jedes CM sich die CIFs aussuchen und bestätigen kann.
Was heißt das? bezieht sich dies auf die Realität oder auf die DB ?
Hallo mal wieder. Vielen Dank für die tolle Hilfe!
Zitat von: DF6GL am April 09, 2022, 20:10:18ich glaube, Du siehst das Ganze falsch...
Das ist nicht unwahrscheinlich. ;D
Zitat von: DF6GL am April 09, 2022, 20:10:18Wer verantwortlich für die initiale Zuordnung der CIfs zu einem CM ist, ist nicht definiert/bekannt.
Der Verantwortliche muss eben (bei dieser Tabellenkonstellation) wissen, welche CIF-Art(en), bzw. Bereiche für welche "Function" gültig sind. Wenn man das grundsätzlich definieren muss oder will, ist/sind eine weitere , bzw. mehrere Tabelle(n) nötig, die eben diese Zuordnung übernehmen.
Grundsätzlich würde ich ja gerne die tblFunction (tblCifFunction kann ich eigentlich löschen, da sie am Ende der tblFunction entspricht) mit in die tblCif einfließen lassen. Ursprünglich hatte ich es ja über ein Auswahlfeld realisiert (Cif konnte per Checkbox Pilot, Dispatch, CA zugewiesen werden. Mehrfachwahl war möglich und notwendig). Da sagtest Du aber, dass das nicht gut gelöst ist. Soll ich in der tblCif 3 Felder erstellen, wobei jedes Feld EINER Function (Pilot, Dispatch, CA) entspricht? Nur wie muss ich da die Beziehung zu tblFunction ziehen? Denn ich möchte ja pro Feld nur eine FuncID zulassen. Hoffe, dass ich das verständlich rübergebracht habe.
Zitat von: DF6GL am April 09, 2022, 20:10:18"...in der frmCM..." Nein, das wäre falsch. Die Zuordnung übernimmt tblCmCif. Dort wird der PK von tblCm und er PK von tblCif als Fremdschlüssel übernommen (---> ", dass die CIFs, die von den CM ,,gelesen" wurde" )
Ok, ergibt Sinn.
Zitat von: DF6GL am April 09, 2022, 20:10:18Zitat von: mr.airworthyGleichzeitig sollen dann die bereits zugeordneten CIFs für die CM in der frmCM bereits automatisch angezeigt werden.
tut es doch ??
Zitat von: mr.airworthyAktuell ist es ja so, dass jedes CM sich die CIFs aussuchen und bestätigen kann.
Was heißt das? bezieht sich dies auf die Realität oder auf die DB ?
Das bezieht sich auf den aktuellen Stand der DB. In der frmCM kann zuerst der CM gewählt werden. In der Unterform wird dann tblCmCif dargestellt. Hier kann noch mal die CMID gewählt werden (würde ich wahrscheinlich einfach weglassen, denn jedes CM soll nur für sich selbst CIFs bestätigen können) und die gewünschte CIFID. Ich würde aber gerne schon in Tabellenform (in Verbindung mit zugewiesenen Functions zu den CIFs in der tblCif) die CIFs anzeigen, die das CM bestätigen muss.
Als Beispiel: CM1 (AAA) ist Pilot. Als Pilot sind nur die CIFs 1,3 und 5 zu lesen und zu bestätigen (2,4,6 und 7 sind nicht relevant). Nun würde ich gerne in der frmCif es so darstellen, dass wenn CM1 (AAA) ausgewählt wird, in der Unterform die CIFs 1,3 und 5 schon aufgelistet werden und nur noch mit dem entsprechenden Lesedatum bestätigt werden müssen. 2,4, etc. werden ihm gar nicht angezeigt oder zur Auswahl gegeben, da sie ja nicht für ihn bestimmt sind (wurde vorher in tblCif definiert?).
Beste Grüße und schon mal frohe Ostern!
Hallo,
es ist eine Frage des Konzeptes und dessen Deckung mit den Gegebenheiten.
Wenn ein bestimmter CM , der "Pilot" ist, nur die und davon alle Cifs bestätigen muss, die einer Funktion (vorher) zugeordnet wurden, dann muss der Tabellenaufbau geändert werden.
Die Cifs müssen in einer Tabelle ("tblFuncCifs) einer bestimmten Function zugeordnet werden (Verantworlicher).
Daraus wird die enspr. "FunctionsCif" einem CM (in tblCm) zugewiesen, sofern für einen CM nur eine einzige "FunctionsCif" relevant ist.
Mit einem HFO auf "tblCM" und einem darin eingebetteten UFO auf "tblFuncCif" werden denn die passenden Cifs zur Bestätigung angeboten.