** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - problema al duplicar registro
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoproblema al duplicar registro

 Responder Responder
Autor
Mensaje
albertmas.gi Ver desplegable
Nuevo
Nuevo


Unido: 28/Agosto/2012
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Tema: problema al duplicar registro
    Enviado: 14/Enero/2020 a las 08:51
Hola,
agradecer de antemano su ayuda. He buscado en el foro pero no he localizado una respuesta.

Tengo un formulario que mediante un procedimiento de evento "al hacer click" duplica el registro actual. Lo hago con las instrucciones siguientes:

        DoCmd.RunCommand acCmdSelectRecord
        DoCmd.RunCommand acCmdCopy
        DoCmd.RunCommand acCmdRecordsGoToNew
        DoCmd.RunCommand acCmdSelectRecord
        DoCmd.RunCommand acCmdPaste

En el formulario hay distintos campos que ejecutan un procedimiento de evento "después de actualizar" que, al duplicarse el registro y actualizarse los campos, se ejecutan directamente. Quisiera saber si hay alguna forma para que después de pegar el registro, poder cancelar el procedimiento de evento que se ejecuta, pero solo de un campo en concreto.

Por ejemplo, tengo un formulario llamado "Presupuesto" con un campo llamado "FechaPresupuesto" y otro campo llamado "NombreArtista". Ambos campos contienen un procedimiento de evento "después de actualizar". Al pegar el registro anteriormente seleccionado y copiado, solo quiero que ejecute el procedimiento de evento "después de actualizar" del campo "FechaPresupuesto" y no el del campo "NombreArtista". Es posible?

Muchas gracias.
Gracias a todos por compartir. Albert.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 12234
Enlace directo a este mensaje Enviado: 14/Enero/2020 a las 09:24
A bote pronto...
Utiliza una variable global a nivel del módulo (formulario) que indique si estás o no en el momento de copiado (blnCopiando)
La pones a True antes de todos los DoCmd que has escrito y a False una vez finalizados.
En el evento AfterUpdate del NombreArtista evalúas el valor de la variable y, si es true, te sales del procedimiento.

Otra opción (sin ver como lo tienes todo) es copiar los registros con una consulta de inserción.

Un saludo

Xavi, un minyó de Terrassa

Mi web
Arriba
albertmas.gi Ver desplegable
Nuevo
Nuevo


Unido: 28/Agosto/2012
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 21/Enero/2020 a las 16:02
Hola Xavi,
gracias por tu ayuda. No obstante, no puedo hacer lo que dices.

El evento "Al hacer click" se ejecuta en un formulario llamado "Presupuestos". Este evento abre un registro X de un segundo formulario llamado "Reservas" y es este registro X del segundo formulario el que se duplica. Por lo tanto, la variable la creo en el formulario "Presupuestos" y no puedo usar su valor en el formulario "Reservas" que es el que ejecuta el evento "Después de actualizar".

Tampoco puedo usar una consulta de inserción ya que, aunque no me interesa que se ejecute el evento "Después de actualizar" del campo "NombreArtista", si que me interesa que se ejecute "Después de actualizar" del campo "Fecha Presupuesto".

Por eso preguntaba si existe alguna forma de cancelar el evento "Después de actualizar" de un campo concreto.

No se si me he explicado bien.

Gracias a todos por compartir. Albert.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 12234
Enlace directo a este mensaje Enviado: 21/Enero/2020 a las 17:38
En lugar de declarar la variable a nivel de módulo formulario, declarala cómo Public en un módulo independiente y utiliza la misma técnica.

Por otro lado puede lanzar la consulta de inserción, posicionarte en el registro y invocar el AfterUpdate del campo FechaPresupuesto.

Recuerda: en programación hay (al menos) dos maneras de hacer cualquier cosa.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
albertmas.gi Ver desplegable
Nuevo
Nuevo


Unido: 28/Agosto/2012
Localización: España
Estado: Sin conexión
Puntos: 20
Enlace directo a este mensaje Enviado: 22/Enero/2020 a las 13:30
Hola Xavi,
solucionat.

No se como se cierra el tema.

Gràcies
Gracias a todos por compartir. Albert.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable