Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: tismo am September 26, 2022, 20:16:29

Titel: Fehlermeldung im Unterformular
Beitrag von: tismo am September 26, 2022, 20:16:29
Hallo zusammen!

ich habe ein Formular (RegisterDaten) mit einem Unterformular (OrganisationMonitorSuche). Die Daten aus dem Unterformular werden aus einer Abfrage bezogen.
In dieser Abfrage ist folgendes Kriterium auf das ungebundene Textfeld cbxSuchFilter:

Wie "*" & [Formulare]![OrganisationMonitorSuche]![cbxSuchFilter] & "*"im Textfeld cbxSuchFilter gebe ich einen Begriff ein und die Daten werden nach Filter angezeigt. Dies funktioniert leider nur, wenn das Formular OrganisationMonitorSuche als einzelnes Formular gestartet wird. Sobald dieses Formular als Unterformular im Formular RegisterDaten geöffnet wird, geht eine Meldung auf und fragt nach dem Parameterwert vom Textfeld [Formulare]![OrganisationMonitorSuche]![cbxSuchFilter].
Was muss geändert werden, damit der Filter auch im Formular RegisterDaten mit Ufo funktioniert?

LG
Titel: Re: Fehlermeldung im Unterformular
Beitrag von: MzKlMu am September 26, 2022, 23:56:32
Hallo,
es ist ein vollständige Referenzierung erforderlich.
Ganz allgemein:
Forms!HafoName!UfoName.Form!FeldnameSiehe hierzu:
https://www.donkarl.com?FAQ4.2 (https://www.donkarl.com?FAQ4.2)
Titel: Re: Fehlermeldung im Unterformular
Beitrag von: Beaker s.a. am September 27, 2022, 17:21:44
Hallo,
ZitatSobald dieses Formular als Unterformular im Formular RegisterDaten geöffnet wird, geht eine Meldung auf und fragt nach dem Parameterwert vom Textfeld [Formulare]![OrganisationMonitorSuche]![cbxSuchFilter].
Da hilft Klaus' Hinweis nur bedingt. Das Suchfeld im UFo ist ungebunden,
d.h. beim Laden ist es leer, sprich NULL, was du in deinem Kriterium
nicht berücksichtigst, und somit nach dem Parameter gefragt wird.
Ich finde es eh etwas befremdlich ein UFo mit einem Parameter zu öffnen,
der nicht von aussen kommt. Wobei das Suchfeld ins HFo zu verschieben
auch keine Lösung ist, da ein UFo immer vor dem HFo geladen wird und
somit die gleiche Parameterfrage auslöst.
Ich kenne deine Zusammenhänge nicht, aber ein UFo zeigt normalerweise n
Datensätze zum DS im HFo an; - die sind also schon "vorgefiltert" über die
Verknüpfungs-Eigenschaften. Entferne also den Filter aus der Abfrage, lade
alle DS und filtere erst wenn im Feld was eingegeben wurde.
Private Sub cbxSuchFilter_AfterUpdate()
    With Me
        If Len(.cbxSuchFilter) = 0 Then
'den Filter zurücksetzen gleich mit eingebaut
           .Filter = ""
           .FilterOn = False
        Else
           .Filter = "Filterfeld LIKE '*" & .cbxSuchFilter & "*'"
           .FilterOn = True
        End If
    End With
End Sub
Dabei entfällt auch die vollständige Referenzierung auf das UFo, da der Filter
formintern gesetzt wird. Die verlinkte FAQ solltest du aber trotzdem verinner-
lichen, - das wird schon auch manchmal gebraucht.

gruss ekkehard