Listenfeld auslesen, Namen anstatt Zahlen anzeigen

Hallo,

ich habe mehrere Fragen.
Ich habe drei Tabellen angelegt. In einem Formular kann eine neuer Datensatz angelegt werden, dieser wird in Tabelle1 gespeichert. In dem Formular stehen neben Textfelder zum eintragen noch Listenfelder zur VErfügung, wo Daten ausgewählt werden können. Diese Daten sind aus den anderen beiden Tabellen. Es klappt auch alles soweit.

  1. In einer Suchoberfläche habe ich im Formularkop ein Listenfeld, dort können Namen ausgesucht werden (Quelle: Tabelle). Alle Datensätze zu dem Namen werden in einer zweiten Listbox im Formularfuss angezeigt. Dort soll man sich jetzt einen Datensatz aussuchen um im Formulardetailbereich mehr über diesen Datensatz zu erfahren. Die Textfelder im Detailbereich beziehen sich auf die obige Tabelle 1.

Ich habe es soweit hinbekommen, dass mir die einzelnen Datensätze zu dem BEarbeiter in der unteren Listbox angezeigt werden, nur wenn ich jetzt dort einen anklicke, tut sich im Detailbereich nichts.

  1. Da ich noch andere Formulare habe, die auch auf Tabelle 1 aufbauen, werden mir dann nicht die Namen der Bearbeiter angezeigt, sondern es stehen dort nur die Nummern, die die Bearbeiter in der Tabelle haben, z.B.
    Herr Müller hat die 1, dann steht in einem Textfeld nur die 1, und nicht Herr Müller, habe es schon über Beziehungen unter den Tabellen versucht, aber ich bekomme es nicht hin.

Es wäre nett, wenn mir jemand helfen könnte.

LG

Moin,

Listenfelder zur VErfügung, wo Daten ausgewählt
werden können.

das macht man nicht mit Listen-, sondern mit Kombinationsfeldern. Für die kann man angeben, welche und wie viele Felder angezeigt werden sollen; meist wählt man Nummer und Name und versteckt die Nummer, indem man deren Breite auf 0 stellt.

Den Rest Deiner Ausführungen habe ich leider nicht verstanden. Ich kenne nur Hauptformular und Unterformulare, da regelt sich das meiste von selbst.

Gruß Ralf

Hallo,

danke für die Antwort.
ich habe ein Listenfeld im Formularkopf, da stehen alle Namen meiner Mitarbeiter drin. Die Datenherkunft habe ich auf die Tabelle Mitarbeiter gesetzt. In der Tabelle stehen ca. 20 Mitarbeiter mit dem Nachnamen.
Ich wähle also Hr. Müller aus, dann erscheint in einem anderen Listeneld im Formularfuss alle Projekte von Hr. Müller. Es stehen aber nur z.B. der Titel des Projektes in dem Listenfeld.
Wenn ich dort Projekt Nr. 3 anklicke, will ich im Formulardetailbereich alle Infos zu dem Projekt sehen, wie Bearbeitungsstand, welcher Kunde usw.
Diese Felder im Formulardetailbereich habe ich auf die Tabelle verknüpft, in denen alle meine Projekte gespeichert werden.
In diesen Textfelder wird mir aber nicht der Name von dem Bearbeiter den ich oben ausgewählt habe angezeigt, sondern die Nummer, die er in der Tabelle Mitarbeiter hat, also Hr. Müller die 4 z.B.

Ich hoffe ich habe mich verständlich ausgedrückt.

Sorry

LG

Hallo,

ich habe mehrere Fragen.
Ich habe drei Tabellen angelegt. In einem Formular kann eine
neuer Datensatz angelegt werden, dieser wird in Tabelle1
gespeichert. In dem Formular stehen neben Textfelder zum
eintragen noch Listenfelder zur VErfügung, wo Daten ausgewählt
werden können. Diese Daten sind aus den anderen beiden
Tabellen. Es klappt auch alles soweit.

  1. In einer Suchoberfläche habe ich im Formularkop ein
    Listenfeld, dort können Namen ausgesucht werden (Quelle:
    Tabelle). Alle Datensätze zu dem Namen werden in einer zweiten
    Listbox im Formularfuss angezeigt. Dort soll man sich jetzt
    einen Datensatz aussuchen um im Formulardetailbereich mehr
    über diesen Datensatz zu erfahren. Die Textfelder im
    Detailbereich beziehen sich auf die obige Tabelle 1.

Ich habe es soweit hinbekommen, dass mir die einzelnen
Datensätze zu dem BEarbeiter in der unteren Listbox angezeigt
werden, nur wenn ich jetzt dort einen anklicke, tut sich im
Detailbereich nichts.

Und welche Vorkehrungen (Code) hast Du getroffen, damit das Form beim Klick auf einen Listenfeldeintrag auch gefiltert wird?

  1. Da ich noch andere Formulare habe, die auch auf Tabelle 1
    aufbauen, werden mir dann nicht die Namen der Bearbeiter
    angezeigt, sondern es stehen dort nur die Nummern, die die
    Bearbeiter in der Tabelle haben, z.B.
    Herr Müller hat die 1, dann steht in einem Textfeld nur die 1,
    und nicht Herr Müller, habe es schon über Beziehungen unter
    den Tabellen versucht, aber ich bekomme es nicht hin.

?? Binde halt die Form-Textfelder (–> Steuerelementinhalt)
an die entspr. , bzw. richtigen Tabellenfelder …

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo

danke für die Antwort.
ich habe ein Listenfeld im Formularkopf, da stehen alle Namen
meiner Mitarbeiter drin. Die Datenherkunft habe ich auf die
Tabelle Mitarbeiter gesetzt. In der Tabelle stehen ca. 20
Mitarbeiter mit dem Nachnamen.
Ich wähle also Hr. Müller aus, dann erscheint in einem anderen
Listeneld im Formularfuss alle Projekte von Hr. Müller. Es
stehen aber nur z.B. der Titel des Projektes in dem
Listenfeld.
Wenn ich dort Projekt Nr. 3 anklicke, will ich im
Formulardetailbereich alle Infos zu dem Projekt sehen, wie
Bearbeitungsstand, welcher Kunde usw.

Im Listenfeld („lstProjekte“)
muß in Spalte 0 ( in der ersten Spalte) die ProjektNr stehen (von der ich jetzt annehme, dass dieses Feld den Datentyp Zahl,Long, bzw. Autowert in der Tabelle hat)

Um das Form nach der angeklickten ProjektNr zu filtern, ist z. B. folgender Code nötig:

Sub lstProjekte_Afterupdate()
Me.Filter=„ProjektNr=“ & Me!lstProjekte.Column(0)
Me.FilterOn=true
End Sub

Diese Felder im Formulardetailbereich habe ich auf die Tabelle
verknüpft, in denen alle meine Projekte gespeichert werden.
In diesen Textfelder wird mir aber nicht der Name von dem
Bearbeiter den ich oben ausgewählt habe angezeigt, sondern die
Nummer, die er in der Tabelle Mitarbeiter hat, also Hr. Müller
die 4 z.B.

Die „4“ ist korrekt in der Tabelle „Projekte“ hinterlegt (Fremdschlüssel zu Tabelle „Bearbeiter“).

Um im Formular nicht diesen Fremdschlüssel(wert) in einem Textfeld anzuzeigen, sondern den dazugehörenden Namen, kannst Du z. B. das Textfeld in ein Kombifeld ändern und diesem u. a. eine Abfrage auf die Tabelle „Bearbeiter“ verpassen , z. B.:

Datensatzherkunft: Select BearbeiterID, Bearb_Nachname from Bearbeiter
Gebundene Spalte: 1
Spaltenanzahl: 2
Spaltenbreiten: 0cm;4cm

Andere Möglichkeit wären:

  1. Die Dlookup-Funktion im Steuerelementinhalt eines Textfeldes zu benutzen, um den Bearbeitername aus der Tabelle zu lesen

  2. Für das Formular eine über die beteiligten Tabellen verknüpfende Abfrage in dessen Datenherkunft zu verwenden.

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo,

danke, dass mit dem Listenfeld hat funktioniert, ich hatte so einen ähnlichen Code aber in das Ereignis beim klick eingefügt.
Das mit der Tabelle ist etwas komisch.
Ich habe drei Tabellen

  1. Tabelle: alle Namen der Bearbeiter
  2. Tabelle: alle Artikel
  3. TAbelle: alle eingegangenen Aufträge/Projekte
    Tabelle 3 wird über ein anderes Formular befüllt. In diesem Formular befinden sich zwei Listenfelder wo einmal der Bearbeiter und einmal der Artikel ausgewählt werden kann.
    Wenn ich jetzt in die Tabelle 3 gehe, dann sehe ich dort nicht die Namen, sondern da sehe ich die NUmmern, da hängt es ja schon bei mir.

LG

Hi,

Wenn ich jetzt in die Tabelle 3 gehe, dann sehe ich dort nicht
die Namen, sondern da sehe ich die NUmmern

das soll auch so sein und ist hoffentlich nie anders.

da hängt es ja schon bei mir.

Dann helf ich Dir mal auffet Feerd: Wenn die Tabelle so angelegt ist, dann entspricht das exakt dem relationalen Ansatz und hilft, Redundanzen zu vermeiden. Willst Du Klartext sehen, so schau nicht in die Tabelle, sondern leg eine Sicht (bei Access Abfrage genannt) an, die aus den 3 Tabellen gestrickt wird.

Wären Namen in der T3, dann tauchte dort binnen kürzester Zeit der Herr Meyer auch als Maier, Meier, Mayr und Meir auf - immer die gleiche Person.

Gruß Ralf

Hallo,

danke für deine Antwort.
Ich weiss nicht ob ich alles richtig verstanden habe. Also eine Abfrage mit allen drei Tabellen, das habe ich schon versucht, ich bekomme aber keine richtigen Beziehungen zwischen den Tabellen hin, oder brauche ich keine?Ich ziehe den Namen vom Bearbeiter(aus der Bearbeiter Tabelle) zu dem Bearbeiter Feld in der Tabelle wo alle Kunden usw. drin sind. Aber es tut sich nichts. Wenn ich in die normale Ansicht wechsele, dann sehe ich nichts, die Tabelle ist nicht gefüllt.

Sorry das ich mich so du** anstelle, stehe aber voll auf dem Schlauch.

LG

Das Wesen einer Beziehung
Hi,

eine Beziehung wird durch Fremdschlüsselattribute realisiert: Eine Tabelle enthält ein Feld, das auf das Schlüsselfeld einer anderen Tabelle zeigt.

 erteilt
Kunde \> Auftrag

in Tabellenform:

**Kunde** (<u>ID_Kunde</u>, Name, ... )
**Auftrag** (<u>ID_Auftrag</u>, FS\_Kunde, ... )

FS_Kunde fällt nicht vom Himmel, sondern wird von Dir angelegt. Mit der Funktion Beziehungen packst Du ID_Kunde und lässt ihn auf FS_Kunde fallen - voilà.

Gruß Ralf