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
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.
okay und wie gebe ich das in das Formular ein?
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.
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?
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...
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
Hi,
ZitatGibt es auch eine Möglichkeit das der User, vorher bestimmt um wie viel Fahrzeuge es sich handelt?
???
Also das man vorher sagt bei diesem Vertrag sind es 6 Fahrzeuge.
Dann kann man im Unterformular nur noch 6 Fahrzeuge eingeben?
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!
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?
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.