Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

1 : n Beziehung

Begonnen von benjamin.grimm, August 06, 2013, 15:10:25

⏪ vorheriges - nächstes ⏩

benjamin.grimm

Hallo zusammen,

ich habe ein Formular erstellt bei dem es beim Befüllen immer eine automatische ID vergeben wird. pro Vertrag eine ID. 


Nun soll es möglich sein das pro ID, mehrere Fahrzeuge eingegeben werden können.

Also sprich manchmal pro ID nur ein Fahrzeug, aber manchmal auch 30. Es ist immer unterschiedlich.

Wie kann ich das Problem am besten lösen?

Ich glaube mit der 1 zu n Beziehung, bin aber nicht so der Access Guro, darum brauche ich eure Hilfe.

Vielen Dank

 

MzKlMu

Hallo,
Du brauchst noch eine Tabelle für die Fahrzeuge und eine Tabelle für die Zuordnung der Fahrzeuge zum Vertrag. In der 3. Tabelle ist dann je ein Fremdschlüssel zum Fahrzeug und Vertrag. Das ist eine klassische n:m Beziehung mit zwei 1:n Beziehungen.
Gruß Klaus

benjamin.grimm

okay und wie gebe ich das in das Formular ein?

MzKlMu

Hallo,
Zitatund wie gebe ich das in das Formular ein?
Mit einem Hautformular für die Anzeige der Verträge und darin einem über die Schlüsselfelder verknüpften Unterformular zur Eingabe/Auswahl der Fahrzeuge.
Gruß Klaus

benjamin.grimm

Kannst du das detailieter Beschreiben also ich hab jetzt folgendes.


tbl Kunden Stammdaten
tbl Verträge
tbl Fahrzeuge

ich hab sie folgender maßen verknüpft

tbl Kunden Stammdaten 1:n tbl Verträge (ein Kunde kann n Verträge haben)
tbl Verträge 1:n tbl Fahrzeuge (ein Vertrag kann n Fahrzeuge haben)

Wie verknüpf ich das Unterformular?

DF6GL

Hallo,



Zitat:
"Mit einem Hautformular für die Anzeige der Verträge und darin  einem über die Schlüsselfelder verknüpften Unterformular zur Eingabe/Auswahl der Fahrzeuge."



Das UFO-Steuerelement hat genau diese Eigenschaften...
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

benjamin.grimm

okay super, ich hab es jetzt auch gemacht,

jetzt  habe ich ein unterformular welches immer die ID vom Vetrag hat. Vielen Dank.

Gibt es auch eine Möglichkeit das der User, vorher bestimmt um wie viel Fahrzeuge es sich handelt?

Grüße aus Wien

DF6GL

Hi,

ZitatGibt es auch eine Möglichkeit das der User, vorher bestimmt um wie viel Fahrzeuge es sich handelt?

???
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

benjamin.grimm

Also das man vorher sagt bei diesem Vertrag sind es 6 Fahrzeuge.

Dann kann man im Unterformular nur noch 6 Fahrzeuge eingeben?

DF6GL

#9
Hallo,


das ist  schon möglich, aber wozu?

Eine Eingabefehler-Vermeidung (falsche Fahrzeuganzahl-Erfassung) ist dadurch wohl nicht sicher erreichbar.


Wenn, dann so:


In der Vertrags-Tabelle ein Feld ("VT_MaxFzAnzahl", Zahl, Long) einbauen.

Im Unterform beim Form_Ereignis "Vor Aktualisierung" prüfen (mit DCount() z. B.) , ob die Max. FZ-Anzahl überschritten werden wird.  In diesem Fall mit Cancel=true das Ereignis und damit die Speicherung des (weiteren) Fahrzeuges unterbinden.


Sub Form_BeforeUpdate(Cancel As Integer)
If Dcount("*","tbl Fahrzeuge","FZ_VTID_F = " & Me.Parent!VTID) >=  nz(Me.Parent!VT_MaxFzAnzahl,0)  Then
Msgbox "Kein weiteres FZ erlaubt"
Cancel=true
Me.Undo
End If

End Sub




Dringend angeraten:  Kein Sonder- und/oder Leerzeichen in Namen verwenden!  Keine reservierten Wörter für eigenerstellte Objekte benutzen!
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

benjamin.grimm

Ok danke,

und dann noch eine letzte Frage (Vielen Dank nochmals für deine Super Hilfe)

Wie kann ich das Unterformular in einen Bericht einfügen?


DF6GL

HAllo,


indem Du das Form einfach im Berichtsentwurf in den Detailbereich ziehst.  Besser wäre aber, dafür auch einen (Unter-) Bericht zu benutzen, und m. E. noch besser ist, eine über alle nötigen Tabellen verknüpfende Abfrage für den Bericht zu nutzen und im Bericht nach den passenden Schlüsselfelder zu gruppieren.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access