Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Datensatz finden in UFO per Listenfeld im HF

Begonnen von Atuatuca, Februar 18, 2016, 21:29:43

⏪ vorheriges - nächstes ⏩

Atuatuca

Hallo Access-O-Maniacs,

ich versuche gerade per Listenfeld (lst_Mitarbeiter) im Hauptformular (frm_Firma) den entsprechenden Datensatz im Unterformular (ufrm_Mitarbeiter) zu suchen.

Hauptformular und Unterformular sind per ID_Firma mit einander verknüpft.

Wenn ich im Hauptformular (frm_Firma) eine Firma per Kombinationsfeld (suche_Firma) auswähle, dann zeigt die DB mir die Daten zur Firma an im Hauptformalar und im Listenfeld (last_Mitarbeiter) die Mitarbeiter welche der Firma angehören. Im Unterformular (ufrm_Mitarbeiter) zeigt er mir den Ersten Datensatz und über die Navigationsschaltflächen kann ich mir die anderen Mitarbeiter der ausgewählten Firma anzeigen lassen im Unterformular.

Gerne würde ich direkt zum jeweiligen Mitarbeiter (DAtensatz) springen welche ich im Listenfeld des Hauptformulars anklicke.

Leider weiss ich überhaupt nicht wie ich das anstellen soll.

Ich weiss nur wie man ein neues Formular öffnet und den entsprechenden Datensatz anzeigen lässt

Private Sub lst_OPL_DblClick(Cancel As Integer)
DoCmd.OpenForm "frm_Offene_Punkte", , , "ID_OPL=" & Me!lst_OPL
End Sub


Ich vermute es ginge mit GoToRecordSet

Private Sub lst_Mitarbeiter_Click()
GoToRecordSet.....????
End Sub


Für Hilfe dankbar.

Gruss
Atuatuca

el_gomero

Moin,

von der Logik her sollte die Auswahl im Ufo stattfinden. Dann ist es auch ganz leicht - mit dem Assi zB ein Kombi zur Auswahl zu erstellen. Davon abgesehen wäre vllt auch eine Filterung interessant - aus dem HF per

Sub ListFeld_MA_Click()
   
    Me!SteuerelementnameUfo.Form.Filter="ID_MA=" & Me!Listfeld_MA.Column(x)
    Me!SteuerelementnameUfo.Form.FilterOn = True

End Sub
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

MaggieMay

Hallo,

Zitatden entsprechenden Datensatz im Unterformular (ufrm_Mitarbeiter) zu suchen.
"Suchen" könnte auch bedeuten, dass du auf den ausgewählten Datensatz springen willst, das ginge dann so:

Me!ufrm_Mitarbeiter.Form.Recordset.FindFirst = "ID_MA=" & Me!lst_Mitarbeiter

vorausgesetzt dass "ufrm_Mitarbeiter" der Name des Ufo-Steuerelements im Hfo ist und die Mitarbeiter-ID die gebundene Spalte des Listenfeldes.
Freundliche Grüße
MaggieMay

Atuatuca

Hallo Maggie May,

der Ansatz erscheint mir vielversprechend 8)

Zitat"Suchen" könnte auch bedeuten, dass du auf den ausgewählten Datensatz springen willst, das ginge dann so:

Genau das möchte ich (klick im Listenfeld im HF, zeigt entsprechenden Datensatz im UFO). Zur Zeit zeigt das UFO (ufrm_Mitarbeiter) immer den ersten Datensatz aus dem Listenfeld (lst_Mitarbeiter) aus dem HF (frm_Firma). Was ja nicht schlimm ist, aber wenn eine Firma viele Mitarbeiter hat, dauert es ein bisschen bis mann/frau sich durch geklickt hat  :D.

Zitatvorausgesetzt dass "ufrm_Mitarbeiter" der Name des Ufo-Steuerelements im Hfo ist und die Mitarbeiter-ID die gebundene Spalte des Listenfeldes.

Wo finde ich bitte schön "Ufo-Steuerelements im Hfo" ?
Das Unterformular hat den Namen ufrm_Mitarbeiter

ID des Mitarbeiters ist die gebundene Spalte im Listenfeld im HFO

ufrm_Mitarbeiter
Herkunftsobjekt: ufrm_Mitarbeiter
Verknüpft nach: ID_Firma (aus tbl_Firma)
Verknüpft von: Firma (aus tbl_Mitarbeiter)

Gruss
Atuatuca

Atuatuca

Private Sub lst_Mitarbeiter_Click()
Me!ufrm_Mitarbeiter.Form.Recordset.FindFirst = "ID=" & Me!lst_Mitarbeiter
End Sub


Gibt ein Laufzeitenfehler 3251 auf o.g. Zeile.

:o  :'(

Gruss
Atuatuca

Beaker s.a.

Hallo Atuatuca,
Ein UFo besteht aus zwei Komponenten, 1. dem UFo-Steuelement, das ist so zu sagen der Kontainer für 2. das eigentliche Formular (Herkunft).
In deinem Fall:
Zitatufrm_Mitarbeiter
Das ist das Steuerelement. Dieses solltest Du umbenennen (z.B. Ufo_Mitarbeiter), da es schlecht ist, wenn es den gleichen Namen wie
ZitatHerkunftsobjekt: ufrm_Mitarbeiter
das Formular hat, das darin eingebettet ist.
Dann lautet die Codezeile:
Me!Ufo_Mitarbeiter.Form.Recordset.FindFirst = "ID=" & Me!lst_Mitarbeiter
und sollte funzen.
hth
ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

MaggieMay

#6
Das erste "=" muss entfernt werden.

Bei Unklarheiten hilft ein Blick in die Access-Hilfe.

PS:
ZitatEin UFo besteht aus zwei Komponenten, 1. dem UFo-Steuelement, das ist so zu sagen der Kontainer für 2. das eigentliche Formular (Herkunft).
Man muss schlicht und einfach unterscheiden zwischen dem Unterformular-Steuerelement und dem darin enthaltenen Formular. Die Namen können - müssen aber nicht - übereinstimmen, da muss einem nur klar sein was wann bzw. wozu gebraucht wird.

Zitatda es schlecht ist, wenn es den gleichen Namen wie [...] das Formular hat, das darin eingebettet ist.
Wie kommst du da drauf?
Freundliche Grüße
MaggieMay

Atuatuca

Hallo Ekkehard und MaggieMay,

leider verstehe ich nur Bahnhof (ohne Licht)   :'(

Habe Formular umbenannt in Ufo_Mitarbeiter und als code

Private Sub lst_Mitarbeiter_Click()
Me!Ufo_Mitarbeiter.Form.Recordset.FindFirst "ID=" & Me!lst_Mitarbeiter
End Sub


Jetzt bekommen ich Laufzeitenfehler 2465: kann das Angesprochene Feld 'Ufo_Mitarbeiter' nicht finden.

Ich bin Ratlos. Screenshots im Anhang.

Gruss
Atuatuca



MaggieMay

ZitatDas ist das Steuerelement. Dieses solltest Du umbenennen (z.B. Ufo_Mitarbeiter)

Zitat von: Atuatuca am Februar 19, 2016, 13:39:38
Habe Formular umbenannt in Ufo_Mitarbeiter

Siehst du nun vielleicht selbst deinen Fehler?

PS:
Das Umbenennen hättest du dir echt sparen können, weil es nur noch mehr Verwirrung stifftet.
Der einzige Fehler lag im falsch gesetzten Gleichheitszeichen.
Freundliche Grüße
MaggieMay

Atuatuca

#9
Hallo MaggieMay & Ekkehard,

vielen Dank für Eure Unterstützung.

Jetzt funktioniert es tadelos mit:

Me!ufrm_Mitarbeiter.Form.Recordset.FindFirst "ID_MA=" & Me!lst_Mitarbeiter

Unterformular heisst: ufrm_Mitarbeiter
Listenfeld: lst_Mitarbeiter
Hauptformular: frm_Firma
ID_MA = die ID (=primärschlüssel) die zum jeweiligen Mitarbeiter gehört.

Gruss
Atuatuca

Beaker s.a.

Moin,
Prima, dass es läuft.
Das erste "=" hatte ich übersehen.
Wegen Namensgleichheit habe ich mich nicht gut ausgedrückt. Ich habe es mir angewöhnt, und komme besser damit zurecht zu wissen welches Objekt ich anspreche.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)