Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Tabelle mit div. Checkboxen

Begonnen von Mark77, September 02, 2022, 08:06:12

⏪ vorheriges - nächstes ⏩

Mark77

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 :)

DF6GL

#1
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.


Mark77

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.

Sie dürfen in diesem Board keine Dateianhänge sehen.

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

MzKlMu

#3
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.
Gruß Klaus

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Mark77

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:
Sie dürfen in diesem Board keine Dateianhänge sehen.

@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)

Beaker s.a.

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
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Mark77

Vielen Dank.
Ich werde das ausprobieren....
Schönes Wochenende allen.