Hallo zusammen,
seit Stunden sitze ich an einem sicherlich einfachen Problem. Jetzt muss ich fragen. Die Tabellen oder auch Datenbanken Plz, Ort, Gemeinde und Landkreis will ich so in Beziehung setzen, dass sich in den jeweils anderen Feldern,z.Bsp. bei Eingabe der Plz, im Formular beim eingeben eines neuen Datensatzes, in den anderen Feldern automatisch der dazugehörige Ort und die Gemeinde erscheint. Bei einer Suchabfrage z.Bsp. der Gemeinde, sollten dann alle dazugerhörigen Datensätze erscheinen, was ich dann in einer sichtbaren Tabelle im unteren Bereich des Formulares sehen kann. Wie das geht weiß ich schon. Seit 4 Tagen beschäftige ich mich mit diesem Thema, hatte auch schon eine Datenbank mit Formular erstellt, nur ist es ohne Beziehungen sehr umständlich zu händeln. Kunde und Straße mache ich dann in einer weiteren Tabelle. Die Beziehungen machen mir noch zu schaffen. Danke im Voraus
Hallo,
Du brauchst dazu nur eine(!) Datenbank(Datei) mit den folgenden zwei(!) Tabellen (und den darin enthaltenen Feldern):
tblPLZ
PLZID (Autowert,Primärschlüssel)
evtl. : PLZ_LandID (Zahl,Long, Fremdschlüssel zu weiterer Tabelle tblLänder, wenn das Land überhaupt eine Rolle spielt in der Datenbank)
PLZ_PLZ (Text)
PLZ_Ort (Text)
PLZ_Gemeinde (Text)
PLZ_Strasse (Text)
tblKunden
KDID (Autowert, Primärschlüssel)
KD_PLZID (Zahl, Long, Fremdschlüssel zu PLZID in tblPLZ)
KD_FirmaName
KD_FirmanameZusatz
.
.
Beide Tabellen sind über PLZID und KD_PLZID in Beziehung zu setzen
Die Strasse muss in tblPLZ vorgesehen werden, weil es in derselben Strasse mehrere PLZ geben kann.
In einem an tblKunden gebundenen Formular ( kann ein geteiltes Formular sein) wird das Feld für KD_PLZID als Kombifeld ausgeführt mit diesen Eigenschaften-Einstellungen:
Datenherkunft: Select PLZID, PLZ_PLZ, PLZ_Ort, PLZ_Gemeinde, PLZ_Strasse from tblPLZ order by PLZ_PLZ
Gebundene Spalte: 1
Spaltenanzahl: 5
Spaltenbreiten: 0cm;1,5cm;4cm;4cm;4cm
Steuerelementinhalt: KD_PLZID
Hallo und herzlichen Dank für die schnelle und ausführliche Antwort. Obwohl ich nach heutigem lesen meiner Frage erstaunt bin, überhaupt eine Antwort zu erhalten. Danke
Hallo,
ich hab ein ähnliches Problem.
Ich habe zwei Tabellen, tblMADaten und tblMAKleidung.
Wunsch:
Ich kann in der tblMAKleidung durch ein Dropdown (das hab ich geschafft) Mitarbeiternummer,Vor- und Nachname aus tblMADaten (hier ist noch Postanschrift usw... hinterlegt) auswählen. Jeder MA ist nur einmal möglich. Leider sehe ich dann in meinem Steuerelement nicht den kompletten Datensatz MANr, Vor- und Nachname. Im DropDown kann ich die drei Infos sehen, wähle ich einen MA aus, sehe ich nur die MANr.
Ich schon etwas rumprobiert und hab nun (Ansicht Beziehungen) bei Mitarbeiter ein+, öffne ich dieses erscheint ein Mitarbeiter.Value. Bekomm ich das wieder weg?
Geht das was ich will?
Danke
Hallo,
grundsätzlich gilt, dass man nicht direkt in Tabellen arbeitet sondern hierzu Formulare einsetzt. Im Formular kannst du dann den Mitarbeiter per Kombinatuionsfeld auswählen und die einzelnen Spalten des Kombifeldes ungebundenen Textfeldern zuweisen und den Inhalt somit zur Anzeige bringen. Oder du verwendest ein ungebundenes Kombifeld zur Datensatzsuche und zeigst den kompletten MA-Datensatz im Hauptformular und die davon abhängigen Datensätze in einem Unterformular an.
In Tabellen solltest du auf Kombifelder (-> Nachschlagefelder) besser verzichten.
OK
deine Variante eins gefällt mir am besten. Kannst Du mir dabei helfen?
Ich weiß nicht wie ich da so wirklich anfangen soll :(
Danke
Ich hätte Variante-2 bevorzugt, aber das ist wohl Geschmacksache. ;)
Du gibst dem Kombifeld eine Abfrage als Datensatzherkunft, bspw. so:Select Mitarbeiternummer, Vorname, Nachname From tblMADaten
dann kannst du im Ereignis "Nach Aktualisierung" des Kombifeldes die zusätzlichen Spalten folgendermaßen den dafür vorgesehenen Textfeldern zuweisen:Me!txtVorname = Me!cboMA.Column(1)
Me!txtNachname = Me!cboMA.Column(2)
Column(0) ist die erste Spalte mit der MA_ID.
ich glaub ich hab da einen Fehler mit in der Tabelle MAKleidung.
sieht wie folgt aus: Feldname: ID; Mitarbeiter; Polo; T-Shirt usw......
Darf ich in der Tabelle bereits ein DropDown erstellen? Oder erst im Formular?
tblMADaten Feldname: Lfd Nr; MitarbeiterID; Nachname; Vorname usw........
Wie muss ich das Feld Mitarbeiter in meiner tblMAKleidung einstellen?
Zitat von: aga am Oktober 17, 2014, 11:06:20
Darf ich in der Tabelle bereits ein DropDown erstellen? Oder erst im Formular?
Wie gesagt:
ZitatIn Tabellen solltest du auf Kombifelder (-> Nachschlagefelder) besser verzichten.
Das Feld Mitarbeiter in tblMAKleidung sollte die Mitarbeiter-ID enthalten, da die Beziehung über die ID hergestellt wird.
Verstanden,
nur die Syntax im Kombinationsfeld passt noch nicht ganz. Worauf muss ich da achten?
Er bringt die Fehlermeldung, dass er das Objekt nicht findet.
Ich kann leider nicht hellsehen, also musst du den Code schon zeigen, der den Fehler verursacht und einen Hinweis auf die konkrete Stelle geben.
Eigenschaften von Kombinationsfeld Mitarbeiter
Ereignis-> Nach Aktualisierung: ME!txtVorname = ME!cboMitarbeiter.Column(1)
ME!txtNachname = ME!cboMitarbeiter.Column(2)
Textfelder -> Eigenschaften ->Name: txtVorname sowie txtNachname
So sollte das aussehen:
Ereignis-> Nach Aktualisierung -> Ereignisprozedur: VBA-Befehle...
Super,
jetzt funktionierts. Vielen Dank.
Gruß
aga