Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Mykis am Februar 17, 2013, 12:29:14

Titel: Text in Combobox markieren
Beitrag von: Mykis am Februar 17, 2013, 12:29:14
Bei meinem "Sonntagsglück" hätte ich gleich noch ein kleines Problemchen zu lösen:

Wie kann ich durch einen einfachen Mausklick auf eine Combobox den aktuellen Eintrag in dieser markieren, ohne erst alles mit der gedrückten Maustaste auszuwählen.

Frank
Titel: Re: Text in Combobox markieren
Beitrag von: MzKlMu am Februar 17, 2013, 13:04:37
Hallo,
wie definierst Du aktuell, bzw. was ist aktuell?
Ist das Kombi ungebunden?
Titel: Re: Text in Combobox markieren
Beitrag von: Mykis am Februar 17, 2013, 13:43:12
Hallo,

das Formular besteht aus dem Hauptformular mit Combobox zur Auswahl der Artenliste und einem Unterformular, was die dazugehörigen Datensätze anzeigt. Nachdem ich im Unterformular "gearbeitet" habe, gehe ich wieder zur Combobox und wähle die nächste Art (ca. 19000 Einträge) aus. Ich muß nun noch die letzte Art im Combofenster markieren, damit ich mit der Tastatur den nächsten Eintrag durch die Eingabe der ersten Buchstaben suchen kann. Oft passiert es, dass ich mit der Maus nicht den ganzen Begriff markiere und dann funktioniert diese Auswahlform (mit der Feldeigenschaft "automatisch ergänzen- ja") nicht mehr. Deshalb sollte das Combofeld mit einem Mausklick in dieses komplett markiert sein.

LG
Frank
Titel: Re: Text in Combobox markieren
Beitrag von: bahasu am Februar 17, 2013, 13:46:44
Hi,

vielleicht kommst Du mit der Steuerelement-Eigenschaft ".SelLength" zu Deinem Ziel.

Harald
Titel: Re: Text in Combobox markieren
Beitrag von: Mykis am Februar 17, 2013, 14:11:25
"Die SelLength-Eigenschaft gibt die Anzahl der markierten Zeichen in einem Textfeld oder im Textfeldteil eines Kombinationsfelds an oder ermittelt diese." ?

Ich möchte aber nur das Markieren mit der Maus (drüberziehen) durch einen Mausklick ersetzen.

Frank
Titel: Re: Text in Combobox markieren
Beitrag von: bahasu am Februar 17, 2013, 14:45:50
Hi,

vielleicht hilft das Beispiel im Anhang, in dem die sellength-Eigenschaft genutzt wird, um nach Klicken in ein Steuerelement dessen Inhalt zu markieren.

Klicke in das untere Feld per Maus!

Mit etwas weiteren VBA-Zeilen wären dann auch möglich, den Inhalt in den Zwischenspeicher zu übernehmen. Falls das das eigentlich Ziel ist, ist der Zwischenschritt mit Markieren überflüssig.

Harald

[Anhang gelöscht durch Administrator]
Titel: Re: Text in Combobox markieren
Beitrag von: Mykis am Februar 17, 2013, 15:38:43
Hi Harald,

dein Beispiel funktioniert in sich. Wenn ich den Code aber in mein Formular für die Combobox übernehme, passiert nichts. Wenn ich aus dem Unterformular zurück auf die Combobox im Hautformular klicke, bleibt der Eintrag unmarkiert.

Private Sub Nr_Art_Click()
Me.Nr_Art.SelStart = 0
Me.Nr_Art.SelLength = Len(Me.Nr_Art)
End Sub

Frank
Titel: Re: Text in Combobox markieren
Beitrag von: bahasu am Februar 18, 2013, 08:17:38
Hallo Frank,

Deine Beobachtung ist leider richtig.

Vor der Lösung noch mal meine Frage: Warum soll der Inhalt markiert werden?

Der Lösungsvorschlag baut auf der Beobachtung auf, dass der Inhalt vom Kombifeld markiert wird, wenn man aus einem anderen Feld per Tastenkommando in das Kombifeld gelangt. Deshalb gibt es im Beispiel ein Feld "A", auf das temporär der Fokus verlagert wird und von dort dann zum gewünschten Feld.

Die Programmierung erfordert den Einsatz von sendkeys und einer Sleep-Funktion.
Beides erachte ich für suboptimal.
Deshalb bitte mitteilen, was der Zweck der Markierung ist. Vielleicht gibt es Möglichkeiten, die einfacher an das eigentliche Ziel führen.

Harald

[Anhang gelöscht durch Administrator]
Titel: Re: Text in Combobox markieren
Beitrag von: Mykis am Februar 18, 2013, 09:21:57
Hallo Harald,

vielen Dank für deine Bemühungen.
Es ist eigentlich nur ein Problemchen und geht um eine gewohnheitsmäßige "Falschbedienung" der Combobox.
Wenn man bei der Auswahl einer neuen Art erst die Combobox mit Dropdown aufrollt, kann man sofort mit den Anfangsbuchstaben suchen. Die falsche Gewohnheit läßt manche aber erst auf die Combobox klicken, um die letzte Art mit der Maus zu markieren und dann die Anfangsbuchstaben einzugeben. Erklären kann ich diese Gewohnheit auch nicht (sie kommt vielleicht durch Schreibprogramme), aber es geht einigen so. Wenn du dabei nicht das ganze Feld korrekt markierst, bist du aus den alphabetischen Suchmodus raus.

Ich dachte an eine einfache Lösung, aber es lohnt sich wahrscheinlich nicht, viel Kraft in dieses Problemchen zu stecken.
Aber alte Gewohnheiten abzulegen ist auch schwer  :)

Beste Grüße
Frank
Titel: Re: Text in Combobox markieren
Beitrag von: 69bruno am Februar 18, 2013, 09:27:59
Du möchtest dann also, wenn ich dich richtig verstehe, alles per klick markieren, damit die Tastatureingabe, den (kompletten) Eintrag ersetzt ?

Dann lass doch lieber einen leeren Eintrag in der Combobox und wechsle auf diesen, sobald die Box ausgewählt wird....... 8)
Titel: Re: Text in Combobox markieren
Beitrag von: bahasu am Februar 18, 2013, 09:37:01
Hi,

und siehe da, es geht einfacher.

Im Ereignis "Beim Hineingehen" die Zeile Me.MeinKombifeld = ""

Harald
Titel: Re: Text in Combobox markieren
Beitrag von: 69bruno am Februar 18, 2013, 09:59:18
Uff, so einfach, das gehört ja glatt verboten.......  :o
Titel: Re: Text in Combobox markieren
Beitrag von: Mykis am Februar 18, 2013, 10:29:21
Vielen Dank Harald!

Allerdings muß ich Me!Nr_Art = 0 setzen (wegen Typenunverträglichkeit) und im Ereignis "MouseDown" einfügen.

Beste Grüße
Frank

@69bruno: auf die einfachsten Dinge zu kommen, ist manchmal am schwersten! ;)