collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 76
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 3
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13910
  • stats Beiträge insgesamt: 65777
  • stats Themen insgesamt: 8873
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: 1 : n Beziehung  (Gelesen 5386 mal)

Offline benjamin.grimm

  • Access-Profi
  • **
  • Beiträge: 115
1 : n Beziehung
« 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

 
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7202
Re: 1 : n Beziehung
« Antwort #1 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.
Gruß
Klaus
 

Offline benjamin.grimm

  • Access-Profi
  • **
  • Beiträge: 115
Re: 1 : n Beziehung
« Antwort #2 am: August 07, 2013, 07:55:31 »
okay und wie gebe ich das in das Formular ein?
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 7202
Re: 1 : n Beziehung
« Antwort #3 am: August 07, 2013, 07:59:01 »
Hallo,
Zitat
und 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
 

Offline benjamin.grimm

  • Access-Profi
  • **
  • Beiträge: 115
Re: 1 : n Beziehung
« Antwort #4 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?
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23265
Re: 1 : n Beziehung
« Antwort #5 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...

Offline benjamin.grimm

  • Access-Profi
  • **
  • Beiträge: 115
Re: 1 : n Beziehung
« Antwort #6 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
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23265
Re: 1 : n Beziehung
« Antwort #7 am: August 07, 2013, 08:30:57 »
Hi,

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

 ???

Offline benjamin.grimm

  • Access-Profi
  • **
  • Beiträge: 115
Re: 1 : n Beziehung
« Antwort #8 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?
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23265
Re: 1 : n Beziehung
« Antwort #9 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!

Offline benjamin.grimm

  • Access-Profi
  • **
  • Beiträge: 115
Re: 1 : n Beziehung
« Antwort #10 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?

 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23265
Re: 1 : n Beziehung
« Antwort #11 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.