Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

zum nächsten Textfeld springen per vba





Frage

hallo zusammen, habe ein endlosformular bei dem 31 textfelder aneinander gereit sind. such eine vba-funktion die ab der zelle die den fokus besitzt die nächste zelle des selben datensatzes (in der aktivierungsreihenfolge der textfelder) anspringt um dort einen wert einzugeben, dann abermals die nächste zelle anspringt, usw. bis eine vorgegebene anzahl (z.B. 4x) abgearbeitet ist. oder kurz gesagt eine TAB-funktion über vba (gehe zum nächsten textfeld) danke im voraus roland

Antwort 1 von oliverV

Hallo Roland,

wann soll diese Aktion ausgeführt werden, also bei welchem Ereignis ?
Sind es immer die gleichen 4 Felder von denen du den Focus in ein anderes Feld setzen willst ?
Sind es immer die gleichen 4 Felder die den Focus erhalten sollen ?

Und die größte Frage, was soll das – also was ist der Hintergrund ?

Gruß

Oliver


Antwort 2 von rolandaa

hallo oliver,

handelt sich um eine anwesenheitsliste, bei der ein feld zwischen dem 1. und 31. tag den fokus erhält bzw markiert wird, anschließend erscheind ein kleines formular in dem ein wert z.b. "T" für urlaub und die anzahl der tage z.b. "5" eingegeben wird.
auf knopfdruck OK wird einschließlich dem markierten tag und den darauf folgenden 4 tagen der wert "T" in die textfelder eingetragen.

wo nun mein problem liegt, ihm zu sagen er soll in das nächste feld (aktivierungsreihenfolge) gehen.

gruß
roland

Antwort 3 von oliverV

Hallo Roland,

ich habe mir die Geschichte heute morgen noch mal angeschaut, habe aber leider keine wirkliche Lösung.

Mit

DoCmd.GoToControl "Steuerelementname"

wechselst du zu einem Steuerelement, das du aber namentlich benennen musst (also nicht zum nächsten).

Mit
[Code]
Me.Ctl12.SetFocus
bzw.
Forms!Formularname.Ctl12.SetFocus

gibst du einem Feld den Focus.

Mit

Screen.ActiveForm.ActiveControl.Name

kannst du den z.Zt. focusierten Steuerelementnamen abfragen.

Schau dir mal in der VB-Onlinehilfe die Do…Loop-Anweisung an, evtl. kannst du die Anweisung (das Setzten des „T’s“) in eine Schleife packen; führe diese Anweisung aus, solange Me.Urlaubstage < Zähler.
Den benötigten Feldnamen für deine Anweisung kannst du dir sicher zusammenbauen, denn ich gehe mal davon aus, das die Namen so was wie „Tag19“ sind; dann verwende für das Startfeld z.B. „Tag“ & Zählvariable.


Grundsätzlich ist es wohl auch eine Überlegung wert, ob du das Ganze nicht mit einer Aktualisierungsabfrage und einem Formular.Requery einfacher lösen kannst, als mit einer „gesteuerten“ Formulareingabe.

Wie gesagt, leider nicht „die“ Lösung, aber vielleicht der eine oder andere Denkanstoß.

Gruß + schönes WE

Oliver


PS Kann dir z.Zt. nicht mehr weiterhelfen, da ich kurz vorm Urlaub stehe; also bitte jemand anderes „übernehmen“.


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: