PDA

Vollständige Version anzeigen : Access Suche in der Kombobox verhindert schnelles schreiben


Thim Skcalb
08.11.2015, 10:11
Problem: Access Suche in der Kombobox verhindert schnelles schreiben
weil eine große Datenmenge oder ein komplizierter Filter für die Dropdowndaten verantwortlich sind
das betreffende Feld heißt in unserem Fall "ArtikelBezeichnung" und ist natürlich eine Kombobox

Lösung: Als Lösung habe ich gewählt, das Access nur dann die Daten bereitstellt wenn ich eine halbe Sekunde keine Taste drücke.
1. Im betreffenden FORMULAR im TimerEvent folgnden Code einfügen:
Private Sub Form_Timer()
'wenn der Focus auf dem Bezeichnungsfeld liegt, dann die Rowsource anpassen
Dim ctlCurrentControl As Control
Set ctlCurrentControl = Screen.ActiveControl
If ctlCurrentControl.Name = "ArtikelBezeichnung" Then
'wenn Artikelbezeichnung aktiv ist dann
'Wenn mehr als drei Zeichen eingegeben wurden, dann Dropdown öffnen und filtern
If Len(ArtikelBezeichnung.text) > 3 Then
'Die Rowsource wird nun angepasst (Sie müssen natürlich die select-Anweisung passend adaptieren)
ArtikelBezeichnung.RowSource = "SELECT * FROM Abf_ProduktZeile_BezeichnungAuswahl WHERE ArtikelBezeichnung like '*" & ArtikelBezeichnung.text & "*' ORDER BY Eigenprodukt DESC, IstFavorit, ArtikelBezeichnung;"
ArtikelBezeichnung.SetFocus
ArtikelBezeichnung.DropDown
End If
End If
Me.TimerInterval = 0
End Sub


2. In der Kombobox bei Fokuserhalt den Teimer auf eine halbe sekunde setzen
Private Sub ArtikelBezeichnung_GotFocus()
'wenn Zeit ist, soll er nachschauenund einen Artikel vorschlagen.
Me.TimerInterval = 500

End Sub


3. In der Kombobox bei Taste-Auf den Timer auf eine halbe sekunde setzen
Private Sub ArtikelBezeichnung_KeyUp(KeyCode As Integer, Shift As Integer)
' immer wenn eine Taste betätigt wird, wird der Timer auf eine Halbe sekunde gesetzt
Me.TimerInterval = 500
End Sub

Viel Spass beim schnellen Schreiben, jetzt flackert es nicht mehr :)