vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
eigene AutoComplete Funktion 
Autor: hegi
Datum: 01.04.05 09:18

Hallo, da die AutoComplete Funktion bei sevText nur bei links ausgerichtetem Text und auch nicht mit Zahlen arbeitet und ich ausserdem erweiterte Funktionalität brauche, habe ich eine eigene Funktion kreiert. Ich habe aber mit dieser das Problem, dass bei schneller Eingabe die Tastenereignisse schneller Buchstaben setzen, als die Funktion ausgeführt wird. Wenn ich zum Beispiel "Debitoren" schreiben will, kann es sein, dass da auf einmal Debitorenbitoren steht, da die Selection der zu überschreibenden Zeichen nicht schnell genug geht. Ich poste mal hier die Funktion:

Function fAutoComplete(KeyCode As Integer)
 
Dim t As Boolean
t = False
Select Case KeyCode
Case Is = 27, 32, 186, 220, 222
t = True
Case 48 To 57
t = True
Case 65 To 90
t = True
Case 96 To 105
t = True
End Select
 
If Not t Then Exit Function
 
Dim ctl As Control
Set ctl = Screen.ActiveControl
Dim i As Long
With ctl
    For i = 0 To .ListCount - 1
        Dim l As Integer
        If Left(.SubItem(i, 1), Len(ctl.Text)) = Left(ctl.Text, Len(ctl.Text)) _
          Then
            l = Len(ctl.Text)
            .DisplayColumn = 1
            .SetListIndex (i)
            'ctl.Text = .SubItem(i, 1)
            ctl.SelStart = l
            ctl.SelLength = Len(ctl.Text)
            GoTo Weiter
            Exit For
        End If
        If StrComp(Left(.SubItem(i, 2), Len(ctl.Text)), Left(ctl.Text, Len( _
          ctl.Text)), vbTextCompare) = 0 Then
            l = Len(ctl.Text)
            .DisplayColumn = 2
            .SetListIndex (i)
            'ctl.Text = .SubItem(i, 2)
            ctl.SelStart = l
            ctl.SelLength = Len(ctl.Text)
            GoTo Weiter
            Exit For
        End If
    Next i
 
Weiter:
 
    Select Case ctl.Name
    Case Is = "txtSollkonto"
        frmErfassung.txtSKontotext.Text = .SubItem(i, 2)
    Case Is = "txtHabenkonto"
        frmErfassung.txtHKontotext.Text = .SubItem(i, 2)
    End Select
 
End With
 
End Function
Die Funktion ist sowieso noch nicht perfekt, da bei der Durchsuchung der zweiten Spalte, der Text hier zuerst noch alphabetisch sortiert sein sollte.

Gruss, hegi
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
eigene AutoComplete Funktion660hegi01.04.05 09:18

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel