Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/08/2010, 04:17
t1tanium
 
Fecha de Ingreso: agosto-2010
Mensajes: 5
Antigüedad: 14 años, 4 meses
Puntos: 1
Rellenar campo automáticamente una vez introducido otro en ACCESS

Hola,

He estado googleando y mirando post parecidos sobre mi consulta. Uno que se le parece bastante es

[URL="http://www.forosdelweb.com/f21/rellenar-campo-automaticamente-access-604945/"]http://www.forosdelweb.com/f21/rellenar-campo-automaticamente-access-604945/[/URL]

pero no logra solucionar mi problema.

Uso access 2007, y lo que quiero es a priori bastante simple:

Tengo un campo numérico llamado partida, y lo que quiero es que cuando se rellene ese campo desde un formulario, se rellene automáticamente otro campo numérico llamado tresDigPart, con los 3 primeros dígitos del campo partida.

Esto en pl/sql, por ejemplo, lo haría con un TRIGGER AFTER UPDATE, pero para hacer algo "equivalente", o mejor dicho parecido, en ACCESS (que sinceramente no lo domino mucho), he pensado en llamar a un procedimiento que ejecute un código en Visual Basic después de actualizar el campo partida. No sé si habrá alguna otra forma de mejor hacerlo con macros o similares, pero no lo he encontrado.

Explico los pasos que he hecho para hacerlo con sus imágenes:

1) Abrir las propiedades del campo en el formulario, seleccionar el evento "después de actualizar", y en el icono de los puntos suspensivos marcar generador de código.




2) Escribir el código que se ve en la imágen




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

Pues bien, cuando guardo y vuelvo al ACCESS, que imagino que ya se ha guardado el procedimiento del evento. Abro el formulario, inserto el campo partida en un nuevo registro, y el campo tresDigPart sigue exactamente igual, sin ningún campo.
Pensé que podría ser porque es un procedimiento "después de actualizar", y no "después de insertar", pero he probado con registros existentes y lo mismo.

Me equivoco en algún paso o en el código? Hay otra forma mejor de hacerlo?

Si logro que me funcionara esto, como el campo tresDigPart es clave foranea, también me interesaría que se creara un registro en otra tabla que tiene como clave principal este mismo campo
Resumiendo, cuando el usuario ponga el número de la partida en el formulario, el sistema debe hacer automáticamente esto:

1) Rellenar el campo tresDigPart con los 3 primeros dígitos del número de la partida (lo que pretendo hacer con lo que he mostrado antes).
2) Crear un registro en una tabla XXX donde su clave principal sea este campo.

Saludos y gracias de antemano

Última edición por t1tanium; 05/08/2010 a las 01:41