Macro para Botón de Registro

Tengo un formulario donde se cargan datos y seguidamente pasa a un subformulario donde se cargan fecha y costos... Al finalizar dicha carga, tengo que volver con el mouse o con el cursor del teclado al principio y comenzar la acción nuevamente. Mi pregunta especifica es si se puede hacer una macro o acción que al finalizar la carga en el ultimo registro del subformulario y presionando una combinación de telcas (como ALt+i por ej. ) el cursoR vuelta al principio del formulario, ¿Se puede?

Desde ya muy agradecido por la ayuda... Saludos Cordiales...

1 respuesta

Respuesta
2

Vamos a ver si consigo explicarme. Si tengo un formulario con un subformulario. En este el campo Subtotal es un campo calculado, que no tendría porque recibir el foco, donde en sus propiedades-Datos le tengo puesto que esté bloqueado. Cuando pongo una Cantidad, le digo que el cursor se vaya a Subtotal.

En el formulario DetalleCompra que hace de subformulario, en sus propiedades-eventos-Tecla de vista previa le tengo puesto que Sí.

(Le he puesto que cuando tenga el foco se ponga en verde, es sólo para que veas que el cursor está ahí). Voy a usar el código que una tecla, en este caso la X. En el evento Al bajar una tecla del cuadro de texto Subtotal le pongo

If KeyCode = 88 Then
Me.Parent!FechaCompra.SetFocus
End If

Es decir, que cuando el cursor esté ahí, si pulso la tecla X se vaya al cuadro de texto Fecha compra del formulario.

Puedes ver, que el cuadro de texto Subtotal ya no tiene el foco y se ha ido al control FechaCompra se ha puesto en amarillo)

¡Gracias! Voy a intentar hacerlo...\

Saludos...

No me sale....

Si tengo el formulario con subformulario, y en el subformulario el control Pais es un combinado donde voy a elegir Canadá

Una vez que lo selecciono, el cursor se irá al control Saludo del formulario. Se pondrá amarillo para que puedas comprobar como si va

El código del evento Después de actualizar es simplemente

Private Sub Pais_AfterUpdate()
Me.Parent!Saludo.SetFocus
End Sub

¡Gracias! 

Voy a intentar a ver si me sale esta vez....

Me da un error en la 1ra línea donde escribo el nombre de subformulario, puse con guion bajo y sin, y lo mismo... ¿qué estaré haciendo mal?

Lo que está en rojo sobra

¡Gracias! 

No me sale maquina!!

cuando escribo el nombre del campo (Codigo de producto) donde tendría que ir, me tira este error

Te va a servir de enseñanza. Yo siempre llamo a todo, sean campos, tablas, consultas, objetos, controles, etc con el nombre todo junto.

1º Quizá por error le has puesto Nombre Cliente y te puedes volver loco haciendo instrucciones que no caes en que entre Nombre y Cliente hay dos espacios. Si lo pones todo junto no te equivocas.

2º Si pones los nombres separados, en el código de VB tienes que encerrarlo entre corchetes, por ejemplo, [nombre cliente], o entre comillas.

¡Gracias! 

No me sale capo...ya no se como mas escribir...todo se prende es rojo....

De todas maneras gracias por la ayuda?

¿Has puesto

me.parent![codigo producto].setfocus

¡Gracias! 

No te la puedo creeeeeeeerrrr....ahora funciona al 100% que dolubo que soy.....jajajajajaj

Te agradezco muchísimo la ayuda, esto si que me ahorra muchísimo tiempo...

Y hablando del mismo desplegable donde se puso el código, hay alguna manera de que cambie de color la selección del desplegable, por ejemplo..si selecciono INQUIRY (que lo muestre de un color azul), CONFIRMADO (en color naranja), OUT OF STOCK (rojo), EXPENSE (rojo), ETC.?

Nuevamente, gracias por la ayuda...

En vista diseño del formulario selecciona el combinado y en el ribbon pulsa Formato-Formato condicional-Nueva regla-El valor del campo es igual

Pulsas Aceptar-Nueva regla y te quedará

De forma que cuando elijas Alemania

Si eliges España

Puedes poner 10 reglas.

¡Gracias! 

Genial!!!!!!!!!!!!!!, pero no me sale...jajajaj

No se que pasa, probe escribiendo tal cual esta escrito en la base de datos e incluso puse números...

que estoy haciendo mal?

Saludos...

¿Pero has elegido el color de fondo?. Se selecciona en el botón del cubo de pintura. Donde pone la A eliges el color de fuente.

Además lo que estás poniendo a la derecha no es un cuadro combinado es una tabla y éstas no tienen ni código ni formato condicional.

¡Gracias!

SI SI... puse el enfoque en el desplegable y la opción Formato-Formato Condicional creo haber hecho como me dijiste, pero probé en esos 3 que pinte de colores, y nada pasa en la vista de formulario... raro che...

Lo único que puedo hacer es que si quieres, repito, si quieres, mándame un mensaje(solo el mensaje) a [email protected] y te mando un ejemplo.

Si lo haces, en el asunto del mensaje pon tu alias Hugo Quiroga, ya que si no sé quien me escribe ni los abro.

¡Gracias! 

dALE....Ya envie el mail

Capos!!!

Siguiendo es este formulario,,,,como hago para que cuando el registro pase a un subformulario, se vaya a un registro especifico?

El comentario en Negro es donde arranca (1)

El comentario en Amarillo es previo a cuando va a pasar el subform  (2)

El comentario en Negro al final es donde quisiera que llegue (3)

El comentario en Naranja es nada, ya vuelve al princio solo (4)

Adjunto una imagen de ejemplo mas claro...

Saludos....

Supongo que el cuadro amarillo está en el formulario. Si lo que quieres es que una vez hayas escrito algo en ese cuadro se vaya a un registro nuevo del subformulario, en sus propiedades-eventos-Después de actualizar crea un procedimiento de evento y puedes poner:

Nombredelsubformulario. SetFocus
DoCmd. GoToRecord,, acNewRec

Y si lo que quieres es que después de escribir algo en el cuadro naranja se vaya al primer registro basta con poner, en sus propiedades-eventos-Después de actualizar crea un procedimiento de evento y pon

Docmd. Gotorecord,, acfirst

Si no vas a "rellenar" los campos, puedes ponerlo en el evento Al perder el enfoque.

¡Gracias!

Capo...

No necesariamente, tengo que escribir algo en el campo con circulo amarillo... la mayoría de las veces es solo enter...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas