Februar 27, 2021, 15:54:27

Neuigkeiten:

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


record source mit Listenfeld

Begonnen von Carl, Februar 09, 2021, 21:00:16

⏪ vorheriges - nächstes ⏩

Carl

Februar 09, 2021, 21:00:16 Letzte Bearbeitung: Februar 09, 2021, 21:08:14 von Carl
Ich versuche das Problem mal zu beschreiben.

Ein HF mit einem UFO(Endlosformular). Im HF befindet sich ein Listenfeld A, mit dem das UFO gefiltert wird.

Listenfeld A hat so ca. 50 Einträge und die sind zu unübersichtlich. Um dem Anwender das Filtern zu erleichtern, würde ich gern das Listenfeld A selbst filtern.

Ich habe von Klaus von 2010 einen ähnlichen Vorschlag gefunden, verstehe ihn aber nicht.

Private Sub ListenfeldA_AfterUpdate()
    Select Case Me!ListenfeldB
      Case "1"       
        Me!ListenfeldA.RowSource = "Tabelle1"
      Case "2"
        Me!ListenfeldA.RowSource = "Tabelle2"
    End Select
End Sub

Ich möchte in ListenfeldA die Datensatzherkunft ändern, aber die kommt doch nicht aus einer Tabelle?  Das ist vielmehr so ein String: ListenfeldA Datensatzherkunft: SELECT [abfBereiche3].[ID], [abfBereiche3].[Bereich], [abfBereiche3].[BereichErklaerungKurz] FROM abfBereiche3 ORDER BY [Bereich];


Hinweis: In der abfBereiche3 befindet sich ein Feld mit Werten (1-4), die ListenfeldB zum Filtern von ListenfeldA verwenden soll.

Frage: soll ich da 4 Abfragen machen und nur diese ändern?
Frage: empfehlen sich hier nicht 4 Buttons, die die Datensatzherkunft im Listenfeld ändern?

Carl

DF6GL

Hallo,



Zitataber die kommt doch nicht aus einer Tabelle?  Das ist vielmehr so ein String


Aber sicher doch. Es handelt sich hier um einen SQL-String, der gleichbedeutend mit einer Abfrage ist, die denselben SQL-String enthält.  (Abfrageentwurf/SQL-Ansicht).

Wenn Du das ListenfeldA vor-filtern willst, benötigst Du ein Textfeld, in das das Filterkriterium für die Filterung eingetragen wird, bzw. das Kriterium muss irgendwo anders herkommen. Im u. st. Beispiel wird nach "Bereich" (DatenTyp TEXT angenommen) gefiltert.


Private Sub txtMeinSuchTextFeld_AfterUpdate()
   
        Me!ListenfeldA.RowSource = "SELECT ID, Bereich, BereichErklaerungKurz FROM abfBereiche3  " & _
                                   " Where Bereich Like '" & Me!txtMeinSuchTextFeld & "*'  ORDER BY Bereich"

End Sub


Oder wenn sich das Listenfeld nach jeder Eingabe eines Zeichens im SuchTextFeld aktualisieren soll:


Private Sub txtMeinSuchTextFeld_Change()
   
        Me!ListenfeldA.RowSource = "SELECT ID, Bereich, BereichErklaerungKurz FROM abfBereiche3  " & _
                                   " Where Bereich Like '" & Me!txtMeinSuchTextFeld.Text & "*'  ORDER BY Bereich"

End Sub

Carl

Februar 10, 2021, 15:33:39 #2 Letzte Bearbeitung: Februar 10, 2021, 16:14:24 von Carl
Super, vielen Dank.

Die Schaltfläche habe ich hinbekommen. Ich versuche jetzt mal noch ein Suchfeld, wie Du es vorgeschlagen hast.

Carl

Carl

Ich versuche per Gültigkeitsregel in einem Textfeld nur folgende Zeichen zuzulassen:
  • !
  • 0-9
  • a-z
  • -
  • :
  • &


Fehlermeldungen erhalte ich bei
Nicht Wie "*[!0-9,a-z,-,:,&]*"
Nicht Wie "*[!0-9a-z -:&]*"

Wie muss die Gültigkeitsregel richtig heißen?

VG Carl