Imprimir página | Cerrar ventana

problema al duplicar registro

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=84946
Fecha de impresión: 24/Abril/2024 a las 13:29


Tema: problema al duplicar registro
Publicado por: albertmas.gi
Asunto: problema al duplicar registro
Fecha de publicación: 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.



Respuestas:
Publicado por: xavi
Fecha de publicación: 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

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: albertmas.gi
Fecha de publicación: 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.


Publicado por: xavi
Fecha de publicación: 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

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: albertmas.gi
Fecha de publicación: 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.



Imprimir página | Cerrar ventana