Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Listenfeld filter deaktivieren

Begonnen von silentwolf, September 08, 2015, 09:27:58

⏪ vorheriges - nächstes ⏩

silentwolf

Hi,
ich habe ein Formular mit einem Listenfeld, combobox und textfelder.
Die Auswahl der combobox aktiviert bzw. zeigt mir je nach Auswahl die dazugehörige textbox.
In dem textfeld gebe ich dann einen suchwert ein und das Listenfeld filtert mir die liste.
Soweit alles gut. Funktioniert alles einwandfrei.
Ich möchte aber wenn ich die combobox ändere das der textbox eintrag gelöscht wird ... das geht auch noch.. nur die Liste wird mir nicht aktualisiert. Also das alle Daten wieder angezeigt werden und kein Filter mehr besteht.
Habe schon einiges probiert wie lstBox. requery oder FilterOn=false und deverse andere möglichkeiten nur es funktioniert nicht.
Hab schon einiges gegoogelt aber irgendwie bekomme ich es nicht hin.
Kann mir jemand bitte einen Tip geben?

Mfg

Albert

Also ein ungebundene combobox filtert mir

MaggieMay

Hallo,

zeige bitte den Code dazu, damit man sieht wie du das was bereits funktioniert umgesetzt hast.
Freundliche Grüße
MaggieMay

silentwolf

Hallo Maggie,
danke für Deine Antwort.
Hier der Code der mir die txtboxen filtert. Einer davon die anderen sind genau gleich aufgebaut. Habe 5 davon.
Private Sub txtObjAdresse_AfterUpdate()
    Dim strSuchbegriff As String

    'Suchbegriff in Variable speichern
    strSuchbegriff = Me!txtObjAdresse.Text

    'Neue Datensatzherkunft zuweisen
    Me!lstObjektListe.RowSource = "SELECT * FROM qryObjektListe " _
        & "WHERE Obj_Adresse LIKE '" & strSuchbegriff & "*'"

    'Inhalt des Listenfeldes aktualisieren
    Me!lstObjektListe.Requery
End Sub

Hier der Code für die combobox
Private Sub cboObjAuswahl_AfterUpdate()
    Select Case Me!cboObjAuswahl.Value

        Case "Objektname"
        Me!txtObjName.Visible = True
        Me!lblObjName.Visible = True
       
        Me!lblObjOrt.Visible = False
        Me!txtObjOrt.Visible = False

        Me!lblObjPlz.Visible = False
        Me.txtObjPlz.Visible = False

        Me!lblObjAdresse.Visible = False
        Me.txtObjAdresse.Visible = False
       
        Me!lblObjLand.Visible = False
        Me.txtObjLand.Visible = False
       
        Case "Ort"
        Me!lblObjOrt.Visible = True
        Me!txtObjOrt.Visible = True

        Me!txtObjName.Visible = False
        Me!lblObjName.Visible = False
       
        Me!lblObjPlz.Visible = False
        Me.txtObjPlz.Visible = False
       
        Me!lblObjAdresse.Visible = False
        Me.txtObjAdresse.Visible = False
       
        Me!lblObjLand.Visible = False
        Me.txtObjLand.Visible = False
End Select
End Sub

Auch bei dem oberen Code ist er noch etwas länger...

Mfg
Albert

MaggieMay

ZitatIch möchte aber wenn ich die combobox ändere das der textbox eintrag gelöscht wird ... das geht auch noch
Davon ist in dem Code nichts zu sehen, doch genau an der Stelle kannst du dann auch die RowSource des Listenfeldes neu einstellen.

BTW:

  • An Textfelder gebundene Bezeichnungsfelder werden automatisch zusammen mit den Textfeldern ein-/ausgeblendet.
  • Bei Zuweisung der RowSource wird das Listen- oder Kombifeld automatisch aktualisiert, ein Requery wird da nicht gebraucht.
Freundliche Grüße
MaggieMay

silentwolf

Hi Maggie,

tut mir leid ja das hab ich nur so gelöst

Private Sub cboObjAuswahl_Change()
    Me!txtObjAdresse = ""
    Me!txtObjLand = ""
    Me!txtObjOrt = ""
    Me!txtObjLand = ""
End Sub


Danke für die Info!!

Lg

MaggieMay

Das könntest du aber auch ebensogut mit ins AfterUpdate-Ereignis packen.
Change tritt bei Eingabe jedes einzelnen Zeichens ein.
Freundliche Grüße
MaggieMay

silentwolf

Im der After Update Event hab ich das Select Case für die textboxen.
Und hab nun darunter den Code aus dem changer Event eingegeben...
Ändert aber nichts..
Irgendwie ist hier noch der Hund begraben :)

MaggieMay

Hast du denn auch die Neu-Zuweisung zur RowSource des Listenfeldes hinzugefügt?
Freundliche Grüße
MaggieMay

silentwolf

Nein da liegt ja das Problem da ich ja mehrere RowSource Zuweisungen habe ja na textfeld..??
Tut mir leid aber ich steh da wohl etwas auf dem Schlauch.. :-[

MaggieMay

Du willst doch bei Änderung des Kombifeldes das Textfeld/die Textfelder zum Suchen löschen, also musst du das Listenfeld wieder auf den Anfangszustand bringen, bspw. so:
Me!lstObjektListe.RowSource = "SELECT * FROM qryObjektListe "
Freundliche Grüße
MaggieMay

silentwolf

Hi Maggie!
Super danke jetzt klappt es so wie es sein soll :)
Pff bin ich froh das Du mir geholfen hast !!!
Vielen Dank!!

LG
Albert