Foros del Web » Soporte técnico » Ofimática »

No se ejecuta procedimiento de evento en formulario ACCESS

Estas en el tema de No se ejecuta procedimiento de evento en formulario ACCESS en el foro de Ofimática en Foros del Web. Hola, Mi intención es copiar los 3 primeros dígitos de un campo "tresDig" de una tabla a partir de otro campo numérico de 5 dígitos ...
  #1 (permalink)  
Antiguo 06/08/2010, 05:11
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 1
No se ejecuta procedimiento de evento en formulario ACCESS

Hola,

Mi intención es copiar los 3 primeros dígitos de un campo "tresDig" de una tabla a partir de otro campo numérico de 5 dígitos "partida" de esa misma tabla, una vez este último sea rellenado en el formulario. No se demasiado de Visual Basic pero sí de bases de datos, y al no poder hacer triggers, lo he intentado haciéndolo desde un evento after_update del control del campo partida en el formulario, y el código que he puesto es:

Private Sub partida_AfterUpdate()
Me.tresDig = Mid(Me.partida, 1, 3)
End Sub

Pero al insertar un valor en el campo partida del formulario no hace nada, es más, no tengo la certeza de que este código se ejecute: he probado poniendo un simple Print "hola" cuando se detecte el evento, pero tampoco funciona. En las propiedades de ese evento me sale [Procedimiento de evento] ya que le he dado previamente a generar código, en principio es así como se debe hacer, no?

Estoy bastante desesperado porque a priori es bastante simple lo que deseo hacer y me urge bastante. En que me equivoco? Alguna solución mejor?

Muchas gracias de antemano
  #2 (permalink)  
Antiguo 06/08/2010, 08:51
Avatar de ViccoLizcano  
Fecha de Ingreso: enero-2008
Ubicación: Working...
Mensajes: 100
Antigüedad: 16 años, 2 meses
Puntos: 1
De acuerdo Respuesta: No se ejecuta procedimiento de evento en formulario ACCESS

Saludos, ya casi lo tienes... antes que nada, nadamás para estar de acuerdo... supongamos que los cuadros de texto que estas usando se llaman txtPartida y txtTresDig.


Efectivamente te vas en propiedades al Evento After Update (Después de actualizar) y generas el sig. código:

Private Sub txtPartida_AfterUpdate()
txtTresDig = Left(txtPartida, 3)
End Sub

Y listo. El Mid que tienes también serviría siempre y cuando le pasaras los cuadros de texto.

txtTresDig = Mid(txtPartida, 1, 3)
__________________
KNOWLEDGE is Power
  #3 (permalink)  
Antiguo 06/08/2010, 08:59
Avatar de ViccoLizcano  
Fecha de Ingreso: enero-2008
Ubicación: Working...
Mensajes: 100
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: No se ejecuta procedimiento de evento en formulario ACCESS

Checando el código veo que el que pusiste si me funciona, ¿será que tienes habilitadas las macros? Debes tenerlas habilitadas para que se ejecute el código (y deben estar habilitadas en todas las computadoras donde vayas a ejecutar ese formulario).

Para habilitar las macros (VBA) (Access 2007):
- Da click en el botón de Microsoft Office (circulo de colores arriba a la izquierda de tu pantalla).
- Selecciona Opciones de Access
- Selecciona en la barra de la izquierda Centro de Confianza y ahí Configuración del Centro de Confianza...
- Ahora en la barra de la izquierda seleccionamos Configuración de Macros y seleccionamos Habilitar todas las macros.

Creo que hay que reiniciar y listo. Ojalá se haya resuelto tu problema.
__________________
KNOWLEDGE is Power
  #4 (permalink)  
Antiguo 06/08/2010, 10:08
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: No se ejecuta procedimiento de evento en formulario ACCESS

Hola
El evento se produce una vez escribes en el campo y sales de él, ya sea porque pulsas el tabulador o porque mediante el ratón te posicionas en otro campo.

Según escribes en el campo partida, no se va a ir asignando valor a tresDig. Eso ocurrirá al salir del campo partida.

No sé si será esto lo que causa confusión, porque la verdad es que el código me parece bueno.

Saludos.
  #5 (permalink)  
Antiguo 10/08/2010, 04:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: No se ejecuta procedimiento de evento en formulario ACCESS

Efectivamente me faltaba activar esas opciones #3, ahora se ejecuta el código correctamente.
Los códigos que me proponéis también los he probado y funcionan.

Muchas gracias soys unos cracks!
  #6 (permalink)  
Antiguo 18/08/2010, 11:43
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: No se ejecuta procedimiento de evento en formulario ACCESS

Por cierto, según tengo entendido esto sólo es posible hacerlo mediante formularios, es decir, introduciendo registros 1 a 1, verdad?
La cosa es que me interesaría importar un conjunto de registros desde un excel y hacer lo que comentaba de llenar los campos automáticamente para cada registro, para así evitarme añadirlos 1 a 1 mediante el formulario (porque estamos hablando de unos 1000 registros a la semana), pero para eso debería trabajar directamente con las tablas. Sería posible ejecutar un cierto código cuando se detecta que se han introducido esta serie de registros en las tablas, o alguna forma parecida para hacerlo?

Gracias
  #7 (permalink)  
Antiguo 19/08/2010, 06:33
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: No se ejecuta procedimiento de evento en formulario ACCESS

Hola,
LO que yo haría es adaptar la hoja excel para luego importar todos los datos de golpe a la tabla correspondiente de access.
En ningún caso me tecleo los datos ni loco.

Saludos
  #8 (permalink)  
Antiguo 19/08/2010, 11:51
Avatar de ViccoLizcano  
Fecha de Ingreso: enero-2008
Ubicación: Working...
Mensajes: 100
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: No se ejecuta procedimiento de evento en formulario ACCESS

Cita:
Iniciado por jchuk Ver Mensaje
Hola,
LO que yo haría es adaptar la hoja excel para luego importar todos los datos de golpe a la tabla correspondiente de access.
En ningún caso me tecleo los datos ni loco.

Saludos
Si ya recibes o tienes la info en Excel, sí es más fácil que le pongas una fórmula al Excel e importes a access los datos ya con la columna que deseas.

=IZQUIERDA(A1,3)

Donde A1 contiene la clave de 5 dígitos.
__________________
KNOWLEDGE is Power
  #9 (permalink)  
Antiguo 20/08/2010, 02:31
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: No se ejecuta procedimiento de evento en formulario ACCESS

Gracias, es la opción más factible de importar los datos de este modo.

El problema es que el campo de 3 dígitos es clave primaria en otra tabla relacionada en la que exijo integridad referencial, por tanto no me dejaría añadir el registro si previamente no existe el registro en la otra tabla (me interesa que haya esta restricción).

Añadiendolos 1 a 1 mediante formulario no tendría ese problema porque compruebo, mediante un evento before update, si existe dicho registro con esa clave y si no existe hago el INSERT. Pero haciéndolo importando n registros desde excel, que es lo que me interesa por el volumen de datos que tengo, implicaría comprobar si existen esos registros en la otra tabla y crear nuevos de forma automática en caso que no exista ese registro cuya clave son estos 3 dígitos.

El código para hacer esto lo tengo en mente, pero desconozco cuándo y cómo puedo generar un evento que ejecute dicho código, mediante macros o por el estilo, ya que sé que access es limitado cuando tratas con las tablas directamente, así que debo buscarme algún truquito o alternativa que no se me ocurre.

No sé si me he explicado bien.

Gracias de antemano! :)

Última edición por t1tanium; 20/08/2010 a las 02:43

Etiquetas: access, procedimiento, eventos, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:34.