Situación, un subformulario donde se entran los artículos por referencias para hacer una Oferta. Existe una línea por artículo, tiene un total de 12 campos dispuestos en columnas, lo habitual es poner la referencia, para que salgan todos los datos, posteriormente el cursor se sitúa en el campo Cantidad para indicar las unidades de esa referencia, al pulsar intro, nos vamos a un nuevo registro al campo Referencia. Por comodidad, he puesto la propiedad Punto de Tabulación a No en todos los campos excepto el de Referencia y Cantidad, de este modo se introducen los datos muy rápido, se evita hacer pasar el cursor por campos que habitualmente no se modifican los datos. Hasta aquí todo correcto y sin problemas por mi parte y espero explicarme correctamente. Pero es posible que el usuario quiera modificar esos datos por los que no pasa y entonces utilizo la flecha de la izquierda para ir retrocediendo, campo a campo. En el eventoAl bajar una tecla... 'Comprobar si es la flecha izq., en este caso, situarse en el campo anterior. If KeyCode = 37 Then Me.txtDenominación.SetFocus End If Esto también funciona y es correcto, pero aburrido el tener que poner el nombre del campo anterior. ¿¿Cual es al idea y la pregunta?? ¿¿Como puedo mandar el cursor al campo que tenga el anterior índice de tabulación, desde el cuadro de texto que estoy situado?? Es decir, estoy en txtMárgen (índice tabulación 6) y quiero situarme en txtMárgenMínimo (índice 5) Con Me(Screen.ActiveControl.EventProcPrefix).TabIndex, consigo conocer el número de índice que estoy situado, perrrrrrrrrrrrro ya no sé continuar. Seria establecer el foco en lugar del con el nombre del control, con el número de índice. Private Sub txtCantidad_KeyDown(KeyCode As Integer, Shift As Integer) 'Al bajar una tecla 'Comprobar si es la flecha izq., en este caso, situarse en el campo anterior. If KeyCode = 37 Then 'Esto no funciona, pero es lo que me gustaría. Me.SetFocus (Me(Screen.ActiveControl.EventProcPrefix).TabIndex-1) End If RESPONDE HAPPY ============== Hola Mc, mira a ver si te sirve algo como esto. Lo primero, debería ser poner la "Tecla de vista previa" del formulario a Sí. Y después en el evento "al bajar una tecla" del formulario: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim i As Integer Dim ctl As Control i = Me.ActiveControl.TabIndex If KeyCode = 37 Then For Each ctl In Me.Controls Select Case ctl.ControlType 'compruebo que sea algún tipo de control 'que admita esta propiedad Case acTextBox, acComboBox, acListBox 'si tiene el punto de tabulación anterior... If ctl.TabIndex = i - 1 Then ctl.SetFocus Exit For End If End Select Next End If End Sub Esto lo he probado con access 2000, y parece funcionar en un caso estandard. Es posible que tu formulario (o subformulario) tenga alguna particularidad diferente que haga cambiar el código. En todo caso, es una manera o una idea de cómo hacerlo.