Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: hajott am Juni 14, 2023, 09:53:22

Titel: Kombinationsfeld steuert Schaltflächen
Beitrag von: hajott am Juni 14, 2023, 09:53:22
Hallo Wissende,

dank Franz habe ich jetzt folgendes AfterUpdate für mein Kombinationsfeld:

Sub cmbReferenz_AfterUpdate()
  Me.Filter = "Referenz = '" & Me!cmbReferenz & "'"
  Me.FilterOn =true
  Me!cmbReferenz = Null
End sub

Es ist allerdings so, dass dieser Filter in seltenen Fällen mehr als einen Datensatz trifft (weil einige Referenzen mehrfach auftauchen), dies soll dem Anwender auch galant mitgeteilt werden. Das ginge über die Navigationszeile, aber weil das so unscheinbar ist, habe ich die schon deaktiviert. Meine Idee ist, dass ich Schaltflächen für die Datensatznavigation einbaue (das ist schon fertig), die dann aber je nach Anzahl der Ergebnisse steuere: Enabled, wenn mehr als ein Datensatz da ist und disabled bei genau einem Datensatz.

Ich scheitere aber an dem If-Clause, den ich im AfterUpdate unterbringen muss. In der SQL-Denke müsste ich ja ein Count der Ergebnisse machen und mit 1 vergleichen. Wie mache ich das am besten?

Vielen Dank im voraus!

Hans-Jürgen
Titel: Re: Kombinationsfeld steuert Schaltflächen
Beitrag von: Beaker s.a. am Juni 14, 2023, 10:30:01
Sub cmbReferenz_AfterUpdate()
  Me.Filter = "Referenz = '" & Me!cmbReferenz & "'"
  Me.FilterOn =true
  Me!cmbReferenz = Null
  If Me.Recordset.Count = 1 Then
     Mach Was
  Else
     Mach was Anderes
  End If
End sub
Titel: Re: Kombinationsfeld steuert Schaltflächen
Beitrag von: hajott am Juni 14, 2023, 11:16:26
Danke! Da habe ich zu kompliziert gedacht.
Titel: Re: Kombinationsfeld steuert Schaltflächen
Beitrag von: hajott am Juni 14, 2023, 11:25:02
...und eine kleine Korrektur, die ich mithilfe des Internets hinbekommen habe:

   If Me.Recordset.RecordCount = 1 Then

Titel: Re: Kombinationsfeld steuert Schaltflächen
Beitrag von: Beaker s.a. am Juni 14, 2023, 13:27:10
Ja, stimmt, passiert mir öfter mal ohne Intellisense.
Hättest du auch verwenden können, dann braucht es dazu kein Internet ;-)