SendKeys causa conflicto con Win7 ?

La pregunta es, si la sentencia orden o como se diga "SendKeys" crea conflicto al correr bajo Windows 7 la pregunta se basa en lo siguiente:
Tengo un sistema de facturación y Stock diseñado en Access 2010 por razón de poder almacenar los registros de facturación introduje en una macro la sentencia "EnviarTecla" esta introducía el valor "0" en unos campos para poder almacenar la factura, resulta que esta acción desactivaba el teclado numérico y apaga CapsLock como así tenbien cambia la regionalidad del teclado numérico osea no me aparece la "," coma cualdo apretó la tecla "." punto del mismo; dado esto y que leí en la red que esto era común, cambie a la opción de crear un código para hacer lo mismo para que no me diera problema, utilizando la sentencia "SendKeys" (destaco que la modificación la ise en una maquina con Access 2007 y bajo Windows XP, vaya mi sorpresa cuando corro el programa bajo Access 2010 y Windows 7 que de esta nueva manera persiste el problema, con la diferencia que la primera ves que ocurre desactiva NumLock y CapsLock ademas que cambia la regionalidad y después solo desactiva CapsLock y no NumLock, pensando que el problema era causado por Access 2010 dado que esto no me ocurría en el Access 2007 bajo PX instale Access 2010 en la maquina que tiene XP solo para probar y me doy que aquí el programa corre sin problemas y no desactiva ninguna tecla ni cambia la regionalidad, ¿ahora esto significa que el problema es de Windows 7? ¿No puedo correr el programa ya sea en Access 2007 o 2010 en Win7? Alguien que me de una mano por favor la sentencia es sensilla:
SendKeys "0" (para poner cero en el campo)
SendKeys "{TAB}" (para saltar al proximo campo)

Respuesta
1

No me funcionaba el sendkeys en windows 7

Hay que darle propiedades sobre el archivo de excel y darle permisos

y uala... =) 

3 respuestas más de otros expertos

Respuesta
1

Pues mira, no tengo Windows7, y no se de donde te viene el problema que tienes, ni puedo hacer pruebas.

Pero te propongo una solución alternativa:

En vez de usar la macro EnviarTeclas utiliza estas otras:

EstablecerValor, para poner el valor 0 en el/los campos que necesites

IrAControl para ir al campoque desees.

Hola, antes que todo a gracias por la ayuda, entiendo lo que me dices de hecho era la forma en que lo tenia antes de hacer todo lo que comente anteriormente, el problema es que como necesito hacer automático el aciento del registro con la sentencia EstablecerValor no lo hace lo deja en blanco por mas que le puse valor "0" al hacerlo con EnviarTecla me resulta ya que es como si yo escribiera y el registro se activa o algo así, use la opción Actualizar y tampoco me resulto, por eso me tome el trabajo de aprender como hacerlo con código y use SendKeys todo perfecto solo que desactiva las teclas NumLock y CapsLock ademas de alterar la regionalidad y como es una factura lo que estoy asiendo me incomoda mucho, la verdad no se causa el conflicto si Win 7, Office 2010, estoy si respuestas..... lo que me puedas ayudar te agradecería, si quieres te mando el programa para que lo veas si no es molestia......

Prueba a hacerlo por código, en vez de con macros.

Te explico el proceso:

En la vista diseño del formulario, sacas las propiedades de uno de los campos en los que programaste la macro. Te vas a la pestaña Eventos, y en el evento en el que tienes [Macro incrustada], lo cambias por [Procedimiento de Evento] y le das al botón de los 3 puntos(...)

En el editor de vba que se abre, escribes, entre las dos lineas que te salen el código que se corresponde a la macro.

Para establecer el valor 0 en un campo (que se llame, por ejemplo, Total), pondrías:

Me.Total=0

Para que te pase a un campo concreto (por ejemplo SubTotal):

Me. SubTotal. SetFocus

Esto lo irías haciendo en todos los campos en los que tengas las macros.

no manejo bien lo que es código VBA pero tratare me resulta medio confuso ya que no lo hago nunca pero bueno es una nueva alternativa y quizá sea esta la que resuelva el problema, muchas gracias

Prueba, y si necesitas ayuda con el código, coméntamelo y lo miramos.

Respuesta
1
No es necesario poner una macro para colocar un cero en un campo, a la hora de configurar o crear un campo le pones como valor predeterminado 0, sí el problema no es el office lo que tienes que hacer es revisar el sistema operativo o descargar un programa que corrige errores como, túne up, o, c cleaner
Respuesta
1

Yo también he tenido este problema desde Windows 7 y también con Windows 10 y de tanto buscar como solucionar este caso te doy un ejemplo:
SendKeys "{TAB}{NUMLOCK}"
SendKeys "{NUMLOCK}"
Debes colocar {NUMLOCK} después de la tecla enviada y luego en otra instrucción enviar la tecla Numlock {NUMLOCK} y así me funcionó en Windows 10

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas