| |
Fragen & Antworten rund um sev-KomponentensevEingabe - unschöner Cursor-Sprung | | | Autor: W. Wolf | Datum: 27.11.18 09:14 |
| Hallo,
um zunächst mal auszuschließen, dass ich falsch an die Sache herangehe, hier meine Frage:
Ich verwende im KeyUp-Ereignis folgenden Code:
Dim rs As ADODB.Recordset
Dim dummy As String
Dim l As Long
With txtArtikelnummer
Debug.Print "S" & .selStart
Dummy = Trim$(.Text)
l = Len(dummy)
If l >= 5 Then
Set rs = Db.Recordset("SELECT top 99 artnr,benennung FROM ....usw.")
If Not rs.EOF Then
Set .Recordset = rs
.DroppedDown = True
Else
Set .Recordset = Nothing
.DroppedDown = False
End If
Else
Set .Recordset = Nothing
.DroppedDown = False
End If
Debug.Print "E" & .selStart
End With Kurzfassung: ab der 6-ten Eingabestelle wird das Recordset der Textbox befüllt und die Listbox angezeigt. Das funktioniert alles wie gewünscht. Problematisch wird es, wenn ich in der Eingabe eine Änderung vornehme. Angenommen im Text steht ABCDEFG. Nun bewege ich den Cursor auf das C mit der Absicht BC durch XY zu ersetzen. In dem Moment wo ich C lösche, greift die Prozedur oben und ersetzt das Recordset, was ja auch korrekt ist. Unschön ist allerdings, dass der Eingabecursor danach an das Ende, also hinter G springt. Das passiert außerhalb meiner Proc, weil dieses Debug.Print noch die richtige Position ausgibt. Für meine Anwender sind diese unkontrollierten Sprünge sehr, sehr ärgerlich. Ist das nun ein Fehler im Control oder gehe ich die Sache grundsätzlich falsch an?
Schönen Gruß
W. Wolf | |
Re: sevEingabe - unschöner Cursor-Sprung | | | Autor: W. Wolf | Datum: 27.11.18 10:09 |
| Hallo Dieter,
warum das denn? Das funktioniert perfekt wenn die DB ausreichend schnell ist. Dafür muss man halt sorgen. Ein gut geplanter Index und ein top xx im Select und die Sache läuft wie geschmiert (ohne die kleinste Verzögerung). Habe hier in der DB über 50.000 Artikel.
Es ist ja nur der unnötige Cursorsprung bei .DroppedDown = True der stört. Kann man das nicht unterbinden. Warum muss der Cursor seine Position ändern, wenn die DropDown geöffnet wird?
Was wäre denn die Alternative? Habe mit Autocompete gespielt, das ist aber bei weitem nicht so komfortabel wie mein Code. Da siehst du mal, was dein Control alles kann... (ich bin begeistert).
Schönen Gruß
W. Wolf | |
Re: sevEingabe - unschöner Cursor-Sprung | | | Autor: W. Wolf | Datum: 28.11.18 08:26 |
| Dieter schrieb:
Zitat: | | Ganz ehrlich; für diesen Zweck ist die Recordset-Anbindung
nicht geeignet! | |
Ok, vergessen wir das, es geht ja auch nicht ums Recordset. Es geht nur um die DroppedDown-Property.
With sevText1
.Style = rsComboBox
.AutoSelect = False
.AddItem "Test 1"
.Text = "Irgendwas"
.DroppedDown = True
.SelStart = 3
End With Der Cursor steht nicht wie erwartet hinter dem g, sondern am Textende. Das sollte so nicht sein. Hier macht der Code nicht das was er vorgibt zu machen.
With sevText1
.Style = rsComboBox
.AutoSelect = False
.AddItem "Test 1"
.Text = "Irgendwas"
'.DroppedDown = True
.SelStart = 3
End With So passt alles. Wenn man nun aber auf den DropDown-Pfeil der Combo klickt, springt der Cursor auch wieder ans Ende.
Nehme an, dass das Aufklappen der Box entkoppelt ist (über einen Timer oder so) und beim Aufklappen der Cursor neu gesetzt wird, warum auch immer. Letztes ist ärgerlich und mich und meine Anwender würde es freuen, wenn das anders wäre. Ich habe momentan keine Idee, wie ich das selbst von außen reparieren könnte.
Schönen Gruß
W. Wolf | |
Re: sevEingabe - unschöner Cursor-Sprung | | | Autor: W. Wolf | Datum: 28.11.18 11:46 |
| Hallo Dieter,
sofern es keine all zu großen oder gar unüberwindbaren Abwärtskompatibilitäten gibt, sind wir dabei. Ich verwende hier die v2.10.114. Bitte um ein Update-Angebot. Unsere Daten sollten ja bekannt sein.
Schönen Gruß
W. Wolf | |
Re: sevEingabe - unschöner Cursor-Sprung | | | Autor: W. Wolf | Datum: 10.12.18 07:54 |
| Dieter schrieb:
Zitat: | | So... E-Mail mit Rechnung etc. ist raus. | |
Vielen Dank! Ist alles installiert und funktioniert wie erwartet. Gut gemacht!
Eine Sache fällt mir auf und die möchte ich hier mal ansprechen, weil sie von allgemeinem Interesse sein könnte. Mir ist aufgefallen, dass die Datei weiter die 20 im Dateiname hat. Mir kommt das entgegen, weil ich die Komponente ohne Aufwand an meine Anwendungs-Clients verteilen kann. Es braucht noch nicht mal eine neue Exe, weil wie es scheint auch die Schnittstellen kompatibel sind. Da ich alle meine Komponenten regles verwende, reicht ein Copy&Paste Distribution. Freut mich sehr.
Dennoch bleiben offene Fragen. Wir haben nun eine Version 3 und nicht wie erwartet die 30 im Dateinamen. Interpretiere ich da was falsch? Hat die 20 eine ganz andere Bedeutung? Ich denke, eine kurzes Statement würde hier allen dienen. Danke!
Schönen Gruß
W. Wolf | |
| 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 |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|