Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: accessy am November 17, 2012, 23:09:18

Titel: Frage zum Setfocus
Beitrag von: accessy am November 17, 2012, 23:09:18
Ich habe eine Textbox als Hilfselement.
Diese Textbox hat lediglich ein Sonderzeichen als Inhalt, dass ich häufig benutze.
Um es in meinen Texten immer schnellstmöglich einzusetzen, mache ich einen
Doppelklick auf diese Textbox und füge es somit ein.
Das sieht so aus:

   Me!Resultat = Me!Resultat & Me!Text51

Um aber sogleich nach dem Doppelklick weiterschreiben zu können, muss ich nach dem Doppelklick erst wieder mit der Maus in das Datenfeld RESULTAT klicken.
So dachte ich, dass mit der zusätzlichen Zeile im Code

   Me!Resultat = Me!Resultat & Me!Text51
   Me!Resultat.SetFocus

dieses kleine Übel wegzubekommen. Durch das SetFocus wird zwar das Feld RESULTAT wieder aktiv, aber der Inhalt komplett markiert, so dass ich nicht gleich weiterschreiben kann, sondern doch erst wieder einmal im Feld klicken muss.

Gibt es da einen komfortablen Weg ein Sonderzeichen einzufügen und gleich weiterschreiben zu können?
Titel: Re: Frage zum Setfocus
Beitrag von: DF6GL am November 18, 2012, 10:36:32
Hallo,

andere Möglichkeit:


Erstell ein Autokeys-Makro, das bei einer bestimmten Tastenkombination (<Strg><i>) eine Public-Funktion ( insertchar()  ) aufruft:

(in einem Standard-Modul):
Public Function insertchar()
Screen.ActiveControl.Text = Screen.ActiveControl.Text & Chr(88) 'passende Ascii-Nr einsetzen oder Textfeld verwenden
'Screen.ActiveControl.SelLength = 0
End Function


Der Aufruf der Funktion könnte auch mittels benutzerdefiniertem Kontextmenü erfolgen.

[Anhang gelöscht durch Administrator]
Titel: Re: Frage zum Setfocus
Beitrag von: accessy am November 18, 2012, 11:13:04
Hallo Franz,

ich kann der Sache nicht ganz folgen.
Also,
ich habe in einem Standardmodul die Function eingetragen.

Public Function insertchar()
  Screen.ActiveControl.Text = Screen.ActiveControl.Text & Chr(216)
End Function


Und wie rufe ich nun die Function auf?
Titel: Re: Frage zum Setfocus
Beitrag von: DF6GL am November 18, 2012, 11:27:00
Hallo,


habe doch sogar ein Bild des Makros mitgeschickt, mit dem die Funktion aufgerufen wird.....
Titel: Re: Frage zum Setfocus
Beitrag von: accessy am November 18, 2012, 11:49:45
Hoppla, hatte ich übersehen... Sorry.

Okay, ich habe jetzt das Makro mit NAMEN Test eingegeben.

In meinem Datenfeld RESULTAT mache ich einen Doppelklick und füge das Sonderzeichen damit ein.
Das funktioniert ebenso gut wie meine bisherige Textfeld-Doppelklick-Lösung.

Aber wenn ich nach meinem zuletzt geschriebenen Wort nicht einen Space gebe,
wird das Sonderzeichen eingefügt und samt dem letzten Wort markiert.
Gebe ich das Space ein, wird über Doppelklick zwar das Sonderzeichen eingefügt, aber auich markiert.
Eine echte Verbesserung ist es also (noch) nicht.

Vielleicht noch eine kurze Erwähnung warum ich das suche.
Auf meinem kleinen ASUS Netbook gibt es scheinbar keine Tastenkombi, die ein Sonderzeichen erstellt.

Auf meinem Desktop-Rechner schreibe ich den Text, klicke auf ALT + der Zehnertastatur (0216) um das hier zu erhalten Ø.
und kann ohne weitere Klicks gleich weiterschreiben.
Titel: Re: Frage zum Setfocus
Beitrag von: Beaker s.a. am November 18, 2012, 16:44:26
Hallo Achim,
Ich habe es mal nachgestellt und kann das Verhalten
auch beobachten. Nach einigem Rumprobieren kann
ich Folgendes berichten.
Die Selection konnte ich nicht verhindern  >:(
Wenn Du aber das Leerzeichen vor dem Sonder-
zeichen auch im Code setzt wird nur das Sonder-
zeichen selektiert.
Screen.ActiveControl.Text = Screen.ActiveControl.Text & " " & Chr(216)
Ein dritter Click stellt den Cursor dann ans Ende.
hth
gruss ekkehard
Titel: Re: Frage zum Setfocus
Beitrag von: accessy am November 18, 2012, 17:05:50
Ja, dieses Leerzeichen hatte ich bereits eingefügt im Code.
Es ist zwar immer noch nicht wie im normalen Verhalten mit
ALT+0216,
aber immer noch besser als meine Textbox-Variante.

Ich danke euch allen für die Hinweise dazu.
Titel: Re: Frage zum Setfocus
Beitrag von: DF6GL am November 18, 2012, 22:48:06
Hallo,

Du sollst das Makro auch nicht mit "Test" benamsen und bei Klick auf irgendwas aufrufen, das Makro MUSS "Autokeys" heißen und den im Bild gezeigten Eintrag enthalten. Wenn dann die Schreibmarke im Textfeld steht, wird das (oder die)  Zeichen an den vorhandenen Text angefügt, wenn man die Tastenkombination <Strg><i> drückt...


Da das Zeichen offensichtlich eine gestrichene Null  ist, wäre es auch angebracht, im Autokeys-"MakroNamen"  statt der i-Taste die 0-Taste anzugeben...

Der Trick dabei ist, dass der Cursor (Fokus) auf/in dem Textfeld verbleibt und die Option "Tastatur/Cursorverhalten bei Eintritt in Feld" nicht zum Tragen kommt.


Weiterhin wäre noch ein Errorhandler (im einfachsten Fall On Error Resume Next) zu empfehlen, wenn das Risko besteht, dass  das Zeichen an einer Stelle eingefügt werden kann, an der das nicht erlaubt ist..

Bei mir wird da nichts weiter im Textfeld markiert..
Titel: Re: Frage zum Setfocus
Beitrag von: accessy am November 19, 2012, 07:07:09
Ich habe es geändert nach deinen Vorgaben.....
Der Wahnsinn !!!
Das funktioniert ja super....

Ich danke dir vielmals für diesen gigantischen Tipp....