Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Mit kombinationsfeld textfeld füllen





Frage

Hi leute, ich möchte in einem Textfeld Daten anzeigen, die ich über ein Kombinationsfeld auswähle. In meinem Addressbuch wähle cih eien Frima und dann soll durch diese Auswahl das Textfeld Straße gefüllt werden. Kann mir aber jemand verraten wie das funktioniert? Danke im vorraus tusca

Antwort 1 von Teddy7

Hi tusca !
Ich habe sowas mal mit einem Unterformular gelöst.
Als Datenbasis für das Kombinationsfeld habe ich eine Abfrage über die benötigten Felder (mit Gruppierung, damit jeder mögliche Wert nur 1x auftaucht). Auf die gleiche Abfrage habe ich das Unterformular bezogen. Verknüpfung zwischen Haupt- und Unterformular nicht vergessen !
Wenn ich dann im Kombinationsfeld einen Wert auswähle, dann erscheint automatisch im Unterformular der zugehörige Wert des 2. Datenfeldes.
(Also eines Datenfeldes, das ich nicht im Kombinationsfeld sehen will).
Ich hoffe, ich habe das nicht zu kompliziert erklärt - es ist eigentlich relativ einfach.
Gruß
Teddy

Antwort 2 von tusca

THX Teddy,

für den Tipp, hab das ganze inzwischen doch hinbekommen. Habe einen Filter angelegt, den die Datensätze der Tabelle durchläuft und somit wird nur der betroffene gefilterte Datensatz angezeigt. Sieht dann so aus:

Private Sub Firma_Change()
Me.Filter = "UnNe_ID = " & Me.Firma
Me.FilterOn = True
End Sub

Funktgioniert schnell und ist einfach.
Hab deinen Rat auch versucht, hat auch funktioniert. Bin aber hierbei geblieben, da die Tabelle nicht verändert werden kann da sonst fehlerhafte Beziehhungen entstehen.
Nochmals danke.

Grüße
Tusca

Antwort 3 von PotzBlitz

Hallo tusca,

wenn möglich, solltest du den Einsatz des Filters vermeiden, denn das ist einerseits mit Kanonen auf Spatzen geschossen, andererseits kann es unter Umständen zu Nebenwirkungen kommen, die nicht erwünscht sind.

Ich schlage dir folgende Alternative vor:

Erstelle eine Abfrage mit drei Feldern.
1. Primärschlüssel der Tabelle
2. Name der Firma
3. Strasse

Diese Abfrage hinterlegst du dem Kombinationsfeld und stellst folgende Eingenschaften des Kombinationsfeldes ein:
Datensatzherkunft = <Name der Abfrage>
Spaltenanzahl = 3
Spaltenbreiten = 0cm;3cm;0cm
Gebundene Spalte = 1

Diese Einstellungen sorgen dafür, dass dem Kombinationsfeld drei Spalten hinterlegt sind, wobei die erste und letzte Spalte wg. 0cm Breite unsichtbar sind (Primärschlüssel u. Strasse). Die gebundene Spalte 1 (Primärschlüssel) ist in den meisten Fällen ideal zur Weiterverarbeitung der ausgewählten Firma.

Jetzt ist nur noch eine Codezeile notwendig. Sie soll bei der Auswahl der Firma die Strasse aus der dritten Spalte des Kombinationsfelds auslesen und in das Textfeld schreiben. Dazu brauchen wir das Ereignis NachAktualisierung des Kombinationsfelds

-------------------------------
Private Sub Kombinationsfeld1_AfterUpdate()
   ′Die Spaltenzählung eines Kombinationsfeldes beginnt bei 0,
   ′die dritte Spalte wird somit über (2) aufgerufen
   Me.Text1 = Me.Kombinationsfeld1.Column(2)
End Sub
-------------------------------

Dieses Beispiel führt zum gleichen Resultat, ist einfach zu handhaben und wirkt sich nicht wie der Filter auf das gesamte Formular aus. Auch sind keine Unterformulare nötig.

Gruss
PotzBlitz

Antwort 4 von tusca

thx PotzBlitz

funktioniert einwandfrei, war zwar etwas aufwendig die einzelnen Textfelder alle anzusprechen, aber es läuft.

gruß
tusca