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
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
Danke! Da habe ich zu kompliziert gedacht.
...und eine kleine Korrektur, die ich mithilfe des Internets hinbekommen habe:
If Me.Recordset.RecordCount = 1 Then
Ja, stimmt, passiert mir öfter mal ohne Intellisense.
Hättest du auch verwenden können, dann braucht es dazu kein Internet ;-)