La acción enviar teclas requiere que se cargue el complemento Utilidad de Microsoft Access

Al ejecutar la macro Enviar teclas aparece el aviso citado.  Las teclas son {F9}. Esto sucede en mi nuevo ordenador. En el anterior ordenador con el mismo SO W7 y programa Access XP, no sucede. En modulo, herramientas, Referencias, "Utility" está activado. He reinstalado Office completo, pero todo sigue igual. He probado creo todas las respuestas a este problema en Internet y no lo soluciono. Manejo bien Access, pero nada de Visual Basic.

Respuesta
2

Al parecer en la antigua PC tenías instalado un complemento; revisa lo que tenias instalado e instala en la nueva maquina el complemento y/o referencias para que funcione en la nueva PC.

Primero agradecerte la respuesta. He consultado en el ordenador donde la macro  no da problemas (sendKeys {F9}) y en  Herramientas / Complementos /Administrador de complementos, no aparece instalado ninguno, ni los hay en  la carpeta AddIns para poder instalarlos.

Tengo instalada la misma base de datos en otros ordenadores con SO W XP,(2)Vista(1)y con W7(3) y funciona perfectamente. Es solo en el que he adquirido recientemente.  En configuración regional del SO no hay diferencia. He desinstalado Access e instalado con todos sus complementos el Office completo y todo sigue igual.

¿Y en las referencias no hay ninguna que diga FALTA?
Adicionalmente decirte que no es muy aconsejable lanzar Sendkeys puesto que puede causar errores extraños. De hecho Microsoft no recomienda su uso.

Cuando desinstalo y vuelvo a instalar Access, en esa máquina, me ocurren dos cosas adicionales que he solucionado:  1. avisa de que FALTA , la desactivo . 2. Avisa de que debo cargar OWC10.dll, lo he buscado en otra máquina, lo cargo y se soluciona. Pero la macro de Senkeys no funciona. He pensado en utilizar alguna macro que haga la misma función de refresco que F9 como ir al registro anterior y volver de nuevo al campo donde estaba, pero eso no me permite abrir un formulario como "entrada de datos" ya que solo hay un registro. ¿Alguna sugerencia?

Para refrescar un formulario puedes usar el método refresh, ejemplo:

Me. Refresh

Si lo que vas a refrescar son los registros entonces usa un requery, ejemplo:

Me. Requery

Ahora la pregunta es, si vas al registro anterior y vuelves al que estaba, te debería refrescar automáticamente los campos. ¿Qué es lo que no se refresca?

Gracias de nuevo por tu paciencia. Desgraciadamente no se nada de Visual Basic y solo utilizo los comandos que me proporciona Access. No se donde poner Me.Requery  ¿Al actualizar el campo, hacer que se ejecute una macro cuya acción sea EjecutarSQL y en Instrucción SQL poner Me.Requery?.

Me refería a refrescar el registro para que "coja" ese valor del campo que he introducido.

Si me narras la historia completa te puedo decir como solucionarlo; descríbeme lo que estas haciendo así como el nombre de tu formulario, campos, etc.

Para poner un poco de código, seleccionas el evento en donde quieres ponerlo y posteriormente seleccionas Procedimiento de Evento y haces clic en los tres puntitos que aparecen en la parte derecha. Ahí tecleas el código.

He puesto el código y ¡¡¡funciona!!. Te lo agradezco enormemente.  Un saludo.

De nada, un placer poder ayudar.

1 respuesta más de otro experto

Respuesta
2

Para ejecutar en código la acción enviar teclas no es necesario hacer referencia a ninguna dll o similar que se llame Utility.

De hecho en mi instalación de 2007 (luego miraré el equipo en que tengo 2010) ni siquiera aparece Utility como referencia a agregar a mis proyectos.

Mira la siguiente imagen en la que se muestra como uso sendkeys en código y las referencias de ese proyecto.

Como puedes ver estoy solicitando que se abra la ayuda de Access usando sendkeys al presionar un botón, y no requiero de ninguna referencia especial.

Si no estás usando Utility para nada yo la eliminaría del proyecto (basta con desmarcarla) y volvería a compilarlo. Otra cosa es que realmente estés usando esa referencia, y que esté entrando en conflicto con alguna otra de las que uses. En ese caso intentaría cambiar el orden de las referencias de modo que compilase el código.

Un consejo, en lo posible haz caso de las recomendaciones de Microsoft y procura no tener que usar sendkeys, ya que no se garantiza un uso estable entre diferentes versiones de Access (y menos si estás enviando las pulsaciones de teclas a otros programas).

Cordiales saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas