Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: benjamin.grimm am August 06, 2013, 15:10:25

Titel: 1 : n Beziehung
Beitrag von: benjamin.grimm am August 06, 2013, 15:10:25
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

 
Titel: Re: 1 : n Beziehung
Beitrag von: MzKlMu am August 06, 2013, 15:30:49
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.
Titel: Re: 1 : n Beziehung
Beitrag von: benjamin.grimm am August 07, 2013, 07:55:31
okay und wie gebe ich das in das Formular ein?
Titel: Re: 1 : n Beziehung
Beitrag von: MzKlMu am August 07, 2013, 07:59:01
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.
Titel: Re: 1 : n Beziehung
Beitrag von: benjamin.grimm am August 07, 2013, 08:20:35
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?
Titel: Re: 1 : n Beziehung
Beitrag von: DF6GL am August 07, 2013, 08:25:05
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...
Titel: Re: 1 : n Beziehung
Beitrag von: benjamin.grimm am August 07, 2013, 08:26:54
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
Titel: Re: 1 : n Beziehung
Beitrag von: DF6GL am August 07, 2013, 08:30:57
Hi,

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

???
Titel: Re: 1 : n Beziehung
Beitrag von: benjamin.grimm am August 07, 2013, 08:37:30
Also das man vorher sagt bei diesem Vertrag sind es 6 Fahrzeuge.

Dann kann man im Unterformular nur noch 6 Fahrzeuge eingeben?
Titel: Re: 1 : n Beziehung
Beitrag von: DF6GL am August 07, 2013, 08:55:37
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!
Titel: Re: 1 : n Beziehung
Beitrag von: benjamin.grimm am August 07, 2013, 09:32:54
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?

Titel: Re: 1 : n Beziehung
Beitrag von: DF6GL am August 07, 2013, 09:38:05
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.