Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: datekk am Januar 30, 2015, 00:34:19

Titel: Formular in Unterformular via VBA ändern
Beitrag von: datekk am Januar 30, 2015, 00:34:19
Hi.

Ich habe ein Formular mit einem Textfeld und einem Unterformular (UFO). Das UFO zeigt ein Endlosformular (frmFirmenliste) mit Firmenliste aus einer Abfrage an. Öffne ich das Hauptformular, so sind im UFO alle Einträge zu sehen.

Das Textfeld im Hauptformular soll zur Suche genutzt werden. Wenn ich nun also im Suchfeld z.B. "Testfirma" eingebe, so soll nach der Aktualisierung das Formular im UFO nur die Einträge anzeigen, auf die die Suche nach "Testfirma" zutrifft.

Ich kann das Formular zwar mit

Dim v_Suchstring As String

v_Suchstring = "*" & Me.txtSearch & "*"

DoCmd.OpenForm "frm_Firmenliste", acNormal, , "Firmenname like '" & v_Suchstring & "'"



öffnen, aber es öffnet sich hat nicht im UFO... Eine Option wie SourceObject gibt es bei dem DoCmd.OpenForm - Befehl leider nicht..

Kann jemand helfen?
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: MzKlMu am Januar 30, 2015, 08:16:51
Hallo,
sind Hafo und Ufo über die Schlüsselfelder verknüpft ?
Wenn das korrekt eingestellt ist, geht Dein Vorhaben automatisch. Das ist eine Standardfunktion von Hafo/Ufo.
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: datekk am Januar 30, 2015, 09:34:37
Nein sie sind nicht verbunden. Das Hafo ist ungebunden und beinhaltet nur das Suchfeld. Hier liegt keine Tabelle oder Abfrage dahinter. Das entsprechende Formular soll entweder neu ins UFO geladen werden oder es soll sich im UFO entsprechend aktualisieren.

Wenn ich im Hafo in den Eigenschaften des Textfeldes die Option "Nach Aktualisierung" mit dem "beliebten" Makrogenerator nutze, so kann ich dort folgendes nutzen:

Wechseln zu
Objekttyp: Formular
Objektname: frm_Firmenliste
Pfad zu Unterformular-Steuerelement: frm_Kundenauswahl_HAFO.UFO_Auswahlliste
Bedingung: [Firmenname] Wie "*" & [txtSearch] & "*"
Datenmodus: nur lesen.


Nur wollte ich das ganze gern via VBA lösen...

Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: DF6GL am Januar 30, 2015, 09:48:54
Hallo,

VBA ist überflüssig...
Schreib in die UFO-Steuerelementeigenschaften "Verknüpfen von"     Firmenname
und in "Verknüpfen nach"   txtSearch  hinein.
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: datekk am Januar 30, 2015, 10:04:18
Hallo DF6GL,

das HAFO ist doch ungebunden! Das Suchfeld [txtSearch] ist ebenfalls ungebunden... Da kann ich gar keine Felder verknüpfen.

Wenn ich das HAFO ebenfalls an die Abfrage binde und dann versuche die Felder wie Du schreibst zu verbinden, dann  erhalte ich die Fehlermeldung: Sie versuchen Felder zu verknüpfen, die inkompatible Datentypen haben.
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: MzKlMu am Januar 30, 2015, 10:13:06
Hallo,
ZitatDa kann ich gar keine Felder verknüpfen.
doch, das geht auch, auch mit dem ungebundenen Feld bzw. Formular. Versuche es doch einfach mal, das ist ganz einfach.

Weiterhin möchte ich bezweifeln, dass hier überhaupt ein Ufo notwendig ist. Binde das Hafo an die Firmentabelle und erstelle mit dem Assi ein Kombifeld zum Suchen. Da wird das Suchen als 3.Option direkt angeboten.
Hier wird allerdings etwas VBA Code (oder ein Makro je nach Version) erzeugt.
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: datekk am Januar 30, 2015, 11:33:49
Das mit dem Kombifeld ist keine Option. Ich brauche eine Freitextsuche.

Die Verbindung von Suchfeld und Firmenname klappt nun, allerdings zeigt dann das Unterformular gar nix mehr an. Wenn ich oben im Suchfeld dann etwas eingebe ändert sich daran nix - auch nicht nach F5...

Weiterhin soll der eingegebene Suchwert ja auch in Wildcards gesetzt werden. Also bei Eingabe von 'Test' soll nach '*Test*' gesucht werden.
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: DF6GL am Januar 30, 2015, 11:48:18
Hallo,

Sub txtSearch_Change()
Me!Ufo_Steuerelementname.Form.Filter="Firmenname like '*" & Me!txtSearch.Text & "*'"
Me[color=green]!Ufo_Steuerelementname[/color].FilterOn=true
End Sub


Sucht (filtert) bei jedem eingegebenen Zeichen.


Sub txtSearch_Afterupdate()
Me!Ufo_Steuerelementname.Form.Filter="Firmenname like '*" & Me!txtSearch & "*'"
Me[color=green]!Ufo_Steuerelementname[/color].FilterOn=true
End Sub



sucht beim Verlassen des Feldes nach dem Text der eingegeben wurde.
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: datekk am Januar 30, 2015, 12:17:49
Hallo DF6GL... in beiden Varianten verändert sich in der Liste gar nix. Hab ich noch was vergessen?
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: DF6GL am Januar 30, 2015, 12:56:49
Hi,

nee, aber ich..

siehe mein korrigiertes Posting
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: datekk am Januar 30, 2015, 13:51:52
JAAAAAAAAAAAAAA ES GEHT :)

Wollt schon immer so ne Suche wie bei Google wo von Buchstabe zu Buchstabe sich das Suchergebnis ändert..

Allerdings ist bei Dir noch ein kleiner Fehler drin...

Bei mir muss die Codezeile wie folgt lauten:

Me!Ufo_Steuerelementname.FilterOnEmptyMaster = True

Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: DF6GL am Januar 30, 2015, 14:00:13
Hi,

mhmm, ich denke, der Fehler liegt darin, dass noch Feldnamen in den Verknüpfungs-Eigenschaften stehen.....

Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: datekk am Januar 30, 2015, 14:14:46
Alles gut.. es Läuft :) Besten Dank Euch :)
Titel: Re: Formular in Unterformular via VBA ändern
Beitrag von: datekk am Februar 05, 2015, 21:53:07
Es muss wohl lauten

Me!Ufo_Steuerelementname.Form.FilterOn=true