Hallo,
in meiner DB gibt es eine Tabelle "tabSpeditionen" die neben eines Primärschlüssels u.a. die Mailadresse enthält. Diese Mailadresse soll verwendet werden, um per Outlook eine Mail zu erstellen.
Die tabSpeditionen wollte ich jetzt um einige Checkboxen erweitern um die Region der Speditionen einzugrenzen nach dem Motto: Nord, Süd, Ost, West,....und noch einige weitere.
In der tabSpeditionen werden dann bei der Anlage einer neuen Spedition einmalig die Haken gesetzt in welcher Region er tätig ist. Bei der Erstellung der Mail wird dann abgefragt, in welcher Checkbox ein Haken gesetzt ist und an diese Spedition eine Mailanfrage gestellt.
Ich habe jetzt gelesen, dass es dringend zu vermeiden ist, wg. Normalform und so, einfach die Checkboxen "hintendran" zu hängen sondern eine neue Tabelle zu erstellen mit den Regionen Nord, Ost, Süd....usw.
Soweit so gut.
Mein Problem ist jetzt, dass ich nicht weiß wie genau ich die neue Tabelle aufbauen muss und wie (Fremdschlüssel) ich diese dann mit der tabSpeditonen verknüpfen muss. Im Netz finde ich irgendwie nichts dazu. Ich brauche ja "nur" Ja/Nein Felder.....
Eine neue Tabelle mit diversen Checkboxen mit der tabSpeditonen zu verknüpfen bringt ja dann auch nix....
Es müsste demnach eine neue Tabelle (tabRegion) sein, die neben einem Autowert als Primärschlüssel nur Textfelder enthält mit Nord, Ost.... aber wie verknüpfe ich die dann?
Und wenn ja, wie mache ich dann die Abfrage ob bei einer Spedition Ja/Nein bei der entsprechenden Region eingetragen ist.... ::) Ich stehe da voll auf dem Schlauch,,,,help
Ich hoffe ich konnte mein Problem verständlich beschreiben :)
Hallo,
allein das
ZitatEs müsste demnach eine neue Tabelle (tabRegion) sein, die neben einem Autowert als Primärschlüssel nur Textfelder enthält mit Nord, Ost.... aber wie verknüpfe ich die dann?
ist der richtige Weg.
Zuordnung einer Region zu einer Spedition erfolgt im Formular frmSpedition mittels eines Kombifeldes , das seine Listendaten aus tblRegionen bezieht und an das Feld Sped_RegID_f gebunden ist.
tblSpeditionen
SpedID (Primärschlüssel, Autowert)
Sped_RegID_f (Fremdschlüssel, Long)
Sped_Name (Text)
... weitere Felder die Spedition betreffend
tblRegionen
RegID (Primärschlüssel, Autowert)
Reg_Bezeichnung (Text)
... weitere Felder die Region betreffend
Beziehung:
RegID ...... 1-n ...... Sped_RegID_f mit ref. Intergrität im Beziehungsfenster etablieren.
Im Abfrageentwurf beide Tabellen hinzufügen. (Eine Verknüpfung wird automatisch erstellt, falls die Beziehung definiert wurde.) Gewünschte (oder alle) Felder in die Abfragespalten ziehen.
Fertig.
Hallo Franz,
danke für Deine schnelle Antwort.
Was ich noch vergessen habe ist, dass eine Spedition auch in mehreren Regionen tätig sein kann. Also Nord und West z.B..... demnach dann also n:m.
Daher auch mein Verständnisproblem mit den Tabellen.
Es muss ja in einer zusätzlichen (neuen) Spalte der tblSpeditonen (existiert bereits, ca. 1000 Datensätze) gespeichert werden, in welchen Regionen der Spediteur tätig ist. Natürlich muss die Zuordnung einmalig manuell eingetragen werden.
Aber wie müsste dieses Feld aussehen? [0, 2, 7] oder so... Das wären dann die Autowerte der tblRegionen...oder?
Dieses wird dann verknüpft mit tblRegionen (neu zu erstellen).
Unterm Strich brauche ich ja eine Normalform für so was:
Spedition Mail Nord Süd West Ost
Müller Müller@net.de X X
Maier Maier@gmx.de X
usw.
Die Auswahl für die Mailanfrage mache ich dann mit einem Popup-Formular mit Checkboxen. Dort wird z.B. Nord und Ost angeklickt und in der tblSpeditonen werden die Mailadressen gesucht.
Screenshot 2022-09-02 090104.jpg
Dann wird die Mail (An:) generiert.
Diese Mail existiert schon. Als Empfänger trägt aber momentan jeder User der DB seine eigene Kontaktliste aus Outlook ein.
LG Mark
Hallo,
Du brauchst für eine n:m Beziehung 3 Tabellen.
- Speditionen (hast Du schon)
- Regionen (mit PS und einem Textfeld für die Region im Klartext.
- SpeditionZuRegion (Fremdschlüssel zu Spedition und Region)
Die 3 Tabelle ist die n:m Tabelle. Für jede Region und jede Spedition ein Datensatz.
Hakenfelder zu Auswahl verschiedene Merkmale sind für eine Datenbank ungeeignet.
SpedID RegionID
1 2
1 4
2 1
2 3
usw.Zusätzlich noch PS in die Tabelle.
Die Hakenfelder entfallen ersatzlos.
Wahrscheinlich gilt das sinngemäß auch für die anderen 3 Hakenfelder (Kuriere, KFZ, KranLKW).
Wer in dieser Form Hakenfelder verwendet (bzw. verwenden will) hat im Regelfall ein falsches Datenmodell.
Hallo,
Ich würde hier einen anderen Weg beschreiten. Alle Standorte einer
Spedition haben auch eine Adresse. Schon diese würde ich eine eigene
Tabelle schreiben (FK zur Spedition), und in dieser dann auch gleich
den FK zur Region. Die Adressen müsste man evtl. noch typisieren
(liefern/abholen/berechnen).
gruss ekkehard
Schon mal vielen Dank für eure Unterstützung.
@klaus Für jede Region und jede Spedition ein Datensatz. -> Das hat mir gedanklich gefehlt.
So sieht das jetzt aus:
Screenshot 2022-09-02 131253.jpg
@ekkehard
Alle Speditionen haben nur eine Hauptniederlassung. Somit entfallen weitere Unterscheidungen.
Eine Abfrage habe ich jetzt mit den 3 Tabellen erstellt.
Soweit alles gut.
Ist das jetzt hier vielleicht im falschen Forum?:
Nun benötige ich noch eine Benutzergerechte Userform, damit künftig jeder Benutzer die Regionen der einzelnen Speditionen pflegen kann. Jeder Benutzer kann auch neue Speditionen anlegen.
Das (Endlos)Formular (noch zu erstellen) müsste in lstSpeditionenRegion Einträge hinzufügen, ändern und auch löschen wenn keine Region ausgewählt/hinterlegt wurde und es ja je Spedition und Region einen Datensatz gibt.
Das Formular sollte dann schon Checkboxen haben für die einfache/schnelle Auswahl der Regionen.....
Wie verändere ich (evtl. auch per VBA) über das Formular die lstSpeditionenRegion (hinzufügen,löschen)
Hallo Mark,
Anbei ein abstraktes Beispiel, wie man solche Zuordnungen bequem
erfassen kann; - ersetze "N" durch "Speditionen" und "M" durch "Regionen".
In den beiden Hauptformularen wird die Zuordnung auf verschiedene Weise
möglich gemacht. Einmal per Kombi (eine nach der anderen) und dann per
Listfeld mit Mehrfachauswahl (mehrere auf einmal).
gruss ekkehard
Vielen Dank.
Ich werde das ausprobieren....
Schönes Wochenende allen.