Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Beziehung Plz-Ort-Gemeinde-Landkreis

Begonnen von steven99, September 22, 2014, 21:00:10

⏪ vorheriges - nächstes ⏩

steven99

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

DF6GL

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


steven99

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

aga

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



MaggieMay

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.
Freundliche Grüße
MaggieMay

aga

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

MaggieMay

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.
Freundliche Grüße
MaggieMay

aga

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?





MaggieMay

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.
Freundliche Grüße
MaggieMay

aga

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.


MaggieMay

Ich kann leider nicht hellsehen, also musst du den Code schon zeigen, der den Fehler verursacht und einen Hinweis auf die konkrete Stelle geben.
Freundliche Grüße
MaggieMay

aga

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

MaggieMay

So sollte das aussehen:
Ereignis-> Nach Aktualisierung -> Ereignisprozedur: VBA-Befehle...
Freundliche Grüße
MaggieMay

aga

Super,

jetzt funktionierts. Vielen Dank.

Gruß

aga