Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: mad am Oktober 10, 2019, 14:53:15

Titel: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: mad am Oktober 10, 2019, 14:53:15
Hallo Zusammen,

für euch vermutlich ein leichtes.
Folgende Situation:
Habe ein Formular ,,Personalstammdaten" mit dem Textfeld ,,NameP".
In dem Formular gibt es den Botton ,,btnAufgaben" mit dem ich das Formular ,,frmAufgaben" öffne.
Code:
Private Sub btnAufgaben_Click()
     DoCmd.OpenForm "frmAufgaben"
End Sub


Im Formular ,,frmAufgaben" kann ich in einem ungebundenen Kombinationsfeld ,,cboPersonal" auswählen.
Code:
Private Sub cboPersonal_AfterUpdate()
    Me.Recordset.FindFirst "PID = " & Me.cboPersonal
End Sub


Nun hätte ich gerne beim öffnen von ,,frmAufgaben" gleich den Feldinhalt von ,,NameP" in das ungebundene Kombifeld ,,cboPersonal" übernommen und ausgeführt. Habe schon einiges durchgestöbert und mal so versucht, klappt aber nicht.
Code:
Private Sub btnAufgaben_Click()
     DoCmd.OpenForm "frmAufgaben"
     'Forms!frmAufgaben!cboPersonal = Forms!Personalstammdaten!NameP
End Sub

Im geöffneten "frmAufgaben" tut sich gar nichts.

Was mache ich wieder mal falsch?

Gruss
mad
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: MzKlMu am Oktober 10, 2019, 15:02:49
Hallo,
mir ist nicht ganz klar was Du da vorhast.
Warum ist das Kombi ungebunden ?
Und was hat es mit FindFirst auf sich ?
Normalerweise schreibt man mit der Auswahl eines Kombis den Frmdschlüssel in das Feld, dann muss das Kombi aber gebunden sein.
Und Klartext (NameP) in abhängige Tabellen zu schreiben ist ohnehin der falsche Weg.
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: Beaker s.a. am Oktober 10, 2019, 16:37:37
@mad
Du musst die PID übergeben.
DoCmd.OpenForm FormName:="frmAufgaben", WhereCondition:="PID_F = " & Me.PID
(Wegen Luftcode mit benannten Parametern)
"PID_F" ist der Fremdschlüssel in tblAufgaben, und sollte in frmAufgaben in
einem (zusätzl.) gebunden Kombi (siehe Klaus' Post) hinterlegt sein.
Das ungebundene Kombi brauchst du dann nur noch, wenn du das Form
ohne Filter öffnest bzw. den gesetzten löscht.
gruss ekkehard

edit:
Ganz vergessen; - diese Zeile muss natürlich auch mit dem FK ausgeführt
werden. Dieser muss in der ersten (unsichtbaren) Spalte des Kombis
enthalten sein.
Me.Recordset.FindFirst "PID_F = " & Me.cboPersonal
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: mad am Oktober 11, 2019, 10:03:24
Hallo,

habe hoffentlich all eure Anmerkungen richtig in mein Formular "frmAufgaben" eingebaut, siehe Bild1.
Bei mir ist PID_F - PID_A.

Aber mit meinem Code für den Botton "btnAufgaben" funktioniert es noch nicht.
Private Sub btnAufgaben_Click()
    DoCmd.OpenForm FormName:="frmAufgaben", WhereCondition:="PID_A = " & Me.PID
    Me.Recordset.FindFirst "PID_A = " & Me!cboPersonal
End Sub

Bei mir kommt ein Parameterfenster und möchte eine Eingabe, siehe Bild2.
Danach kommt eine Laufzeitfehlermeldung "2465" - das er das Feld cboPersonal nicht finden kann.

Gruss
mad
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: DF6GL am Oktober 11, 2019, 12:48:58
Hallo,

Du wirfst die Formulare durcheinander.


In "frmAufgaben" gibt es nur "PID",

im darin eingebauten (Unter-)Formular dagegen schon, welches Du aber nicht öffnest (was bei einem UFO an dieser Stelle auch sinnlos wäre).
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: Beaker s.a. am Oktober 11, 2019, 17:40:03
@mad
Bei einem UFo brauchst den Code überhaupt nicht. Das macht Access von ganz
alleine wenn du das UFo mit dem HFo über die PID/PID_A verknüpfst.
gruss ekkehard
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: mad am Oktober 16, 2019, 20:12:33
Danke erstmal.

Habe das HF und das Ufo über die PID/PID_A verknüpfst.
Und folgenden Code:
Private Sub btnAufgaben_Click()
    DoCmd.OpenForm FormName:="frmAufgaben", WhereCondition:="PID = " & Me.PID
End Sub

Paßt soweit.

Nun habe ich aber das Problem das jetzt mein Code zum suchen nicht mehr funktioniert:
Private Sub cboPersonal_AfterUpdate()
    Me.Recordset.FindFirst "PID = " & Me.cboPersonal
End Sub

Denn wenn ich nach einer weiteren Person suchen möchte, will ich nicht immer wieder in das Ursprungsformular zurück gehen müssen und wieder starten.

Wie könnte ich dieses Problem lösen?

mad
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: DF6GL am Oktober 17, 2019, 11:12:58
Hallo,

also ich versteh überhaupt nicht, was Du da machst und vorhast.... Lad mal die DB hier hoch, komprimiert/repariert, gezippt und evtl. datenreduziert.

Beschreib dann anhand der genauen Objektnamen was wann wo passieren soll.
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: mad am Oktober 17, 2019, 21:19:32
Hallo Zusammen,

lade jetzt mal zwei DBs hoch.
Die DB Muster1... ist mein aktueller Stand. Egal auf welchem Namen ich im Formular "Personalstammdaten" stehe und auf den Register "Aufgaben/FS" ich den Botton "Aufgabe/Funktionen neu/ändern" drücke, öffnen sich das Formular "frmAufgaben" immer mit dem ersten DS. Mit dem Kombifeld "cboPersonal" kann ich nach Namen suchen.

Die DB Muster2... soll die neue Variante werden. Jenachdem bei welchen Namen ich im Formular "Personalstammdaten" stehe, wird beim öffen des Formulars "frmAufgaben" im Register "Aufgaben/FS" der Name (DS) als Filter für das Formular "frmAufgaben" verwendet.
Wie gesagt funktioniert das soweit.
Aber das filtern über das Kombifeld "cboPersonal" sollte wie in Muster1... auch noch funktionieren.

Zu dieser Thematik bräuchte ich bitte Unterstützung.

Gruss
mad
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: DF6GL am Oktober 17, 2019, 22:14:20
Hallo,

1)  DB immer kompilieren. Fehler sind zu eliminieren.
2) Öffnen des Aufgabenform mit Übergabe der PID.
3) Suchen im gefilterten Aufgabenform ohne weitere Maßnahmen nicht möglich, da schon gefiltert.
4) Trick: Filterung aufheben bei "Eintritt" ins Kombifeld, dann ist ein anderer Name wählbar.
5) Andere Fehlerstellen habe ich nicht betrachtet.
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: mad am Oktober 18, 2019, 18:08:30
Vielen Dank,

das mit dem kompilieren werde ich im Nachgang noch bearbeiten.

Danke nochmals
mad
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: DF6GL am Oktober 19, 2019, 08:58:33
Hallo,

Zitatdas mit dem kompilieren werde ich im Nachgang noch bearbeiten.

Dieser Punkt steht bei mir nicht umsonst an erster Stelle...  8)
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: Beaker s.a. am Oktober 19, 2019, 17:22:33
Hallo,
Jau, bei mir liegen die Schaltflächen "Kompilieren von", "speichern" und
zurück zur Oberfläche direkt nebeneinander auf der Symbolleiste. Das sind
dann eingeschliffene Klicks nach jeder Codeänderung.
gruss ekkehard
Titel: Re: Textfeldinhalten beim öffnen an anderes Formular übergeben
Beitrag von: mad am Oktober 21, 2019, 21:52:54
Hallo Zusammen,

habe euren Rat zum Thema "kompilieren" befolgt und meine DB bereinigt.
Aktuell habe ich keine Fehlermeldungen mehr.
Werde das zukünftig immer durchführen.

Danke nochmals für die Unterstützung.


Gruss
mad