Oktober 20, 2020, 10:43:21

Neuigkeiten:

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


Mit Filter neues Formular öffnen

Begonnen von mad, Oktober 01, 2020, 14:49:53

⏪ vorheriges - nächstes ⏩

mad

Hallo Zusammen,
ich habe ein HF ,,frmSchulThema_Startseite" mit UF ,,UF_Schul_ThemaUnterlagen_letzteVersion" in dem verschiedene Unterlagen einem Thema zugeordnet sein können, siehe Bild-1.

Nun möchte ich mit dem Botton ,,Neue Version (Unterlagen)" ein neues Formular öffnen und je nach dem in welchem Textfeld im UF ,,UF_Schul_ThemaUnterlagen_letzteVersion" der Mauszeiger steht, soll dieser Wert/Text als Filter für das zu öffnende Formular ,,frmSchulungsunterlagenVersionierung_updaten" verwendet werden.

Mein aktueller Code des Bottons sieht wie folgt aus:
Private Sub btnfrmVersion_Click()
On Error GoTo Err_btnfrmVersion_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    DoCmd.OpenForm "frmSchulungsunterlagenVersionierung_updaten", , , "Schulunterl_Bez = " & Me!SchulThema_Bez

    DoCmd.Close acForm, "frmSchulThema_Startseite"
Exit_btnfrmVersion_Click:
    Exit Sub

Err_btnfrmVersion_Click:
    MsgBox Err.Description
    Resume Exit_btnfrmVersion_Click
   
End Sub
Nun wird aber ein Parameterfester, siehe Bild-2 geöffnet, warum auch immer.
Wenn ich dort nichts eingebe, wird zwar das Formular "frmSchulungsunterlagenVersionierung_updaten" geöffnet, aber es wird kein Filter angewandt. Formular ist leer.
Wenn ich zum testen z.B. den Text ,,Wasserförderung" kopiere und in das Parameterfenster reinkopieren dann wir das neue Formular mit diesem Filter geöffnet.
Warum in dem Parameterfenster ,,löschen" steht, weis ich leider nicht.
Hätte jemand Hilfestellung, so daß es ohne dem Parameterfenster auf direktem Weg funktioniert.


Danke
mad

HB9876

Hallo,
ich wuerde die fuer das Formular zugrunde liegende Abfrage in Betracht ziehen.
Es sieht mir aus als wenn hier der Parameter nicht korrekt uebergeben wird (aus dem HF zu dem UF).
Mit jeder Antwort komme ich weiter und lerne.

Danke!!!

ShenTo19

Hallo,
der Button, den Du benutzt, befindet sich auf dem Hauptformular, richtig? Dann musst Du das Feld im Unterformular anders ansprechen:
& Me!UF_Schul_ThemaUnterlagen_letzteVersion.Form!SchulThema_BezWenn das Steuerelement, das das UFO enthält, einen anderen Namen hat, diesen statt UF_Schul_ThemaUnterlagen_letzteVersion verwenden.
Gruß Thomas

mad

Hallo,

habe den Namen des UF mal etwas gekürz in "UF_letzteVersion", so ist es etwas besser lesbar.

Mein Code sind jetzt wie folgt aus:

...
 DoCmd.OpenForm "frmSchulungsunterlagenVersionierung_updaten", , , "Schulunterl_Bez = " & Me!UF_letzteVersion.Form!Schulunterl_Bez
...

Allerdings hat es nicht den gewünschten Erfolg gebracht, siehe "Bild-3".
Ich habe mir mal erlaubt eine abgespeckte DB mit hochzuladen.
Was mache ich falsch?


Gruss
mad

Beaker s.a.

Hallo,
ZitatWenn das Steuerelement, das das UFO enthält, einen anderen Namen hat
Das sollte m.E. immer so sein.
Zitatden Namen des UF
Der Name des Formulars spielt hier keine Rolle, der ist so zu sagen in der
Eigenschaft .Form des Unterformularsteuerelements enthalten. Kannst du
testen mit
Debug.Print Me.UFoSteuerelement.Form.NameDu musst also in deinem Code den Namen des UFo-Steuerelementes verwenden, -
schaust du auch hier.

gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

ShenTo19

Hallo,
ich habe Deinen Code so geändert, dann läuft es bei mir:
Dim stLinkCriteria As String
    Dim stFilter As String
    stFilter = Forms!frmSchulThema_Startseite!UF_letzteVersion!Schulunterl_Bez
    DoCmd.OpenForm "frmSchulungsunterlagenVersionierung_updaten", , , ""
    Forms!frmSchulungsunterlagenVersionierung_updaten.Filter = "Schulunterl_Bez = '" & stFilter & "'"
    Forms!frmSchulungsunterlagenVersionierung_updaten.FilterOn = True

    DoCmd.Close acForm, "frmSchulThema_Startseite"
Gruß Thomas

mad

Allen herzlichen Dank.

Lösung von ShenTo19 funktioniert.

Die zweite Lösung von Beaker werde ich aber auch testen, zum lernen.



Gruss
mad