Imprimir página | Cerrar ventana

auto crear registros a partir de otro

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=84805
Fecha de impresión: 27/Marzo/2026 a las 02:08


Tema: auto crear registros a partir de otro
Publicado por: Esperantia
Asunto: auto crear registros a partir de otro
Fecha de publicación: 08/Noviembre/2019 a las 15:51
Buenos días. Mi primer mensaje en este foro. Acabo de registrarme.

Mi consulta es la siguiente:
Quiero que al rellenar un registro con una fecha, se cree un nuevo registro vacío para el mismo campo (cliente) con otra fecha calculada. 
No sé si se hace con tablas, formularios o consulta. 
He llegado a crear una consulta con el campo "periodicidad", de manera que al cumplimentar el registro de la fecha dada, se crea una "fecha próxima visita". Pero lo que quiero es que se cree un registro nuevo de "fecha próxima visita" en el mismo cliente.

Gracias de antemano.



Respuestas:
Publicado por: xavi
Fecha de publicación: 08/Noviembre/2019 a las 16:42
Hola,

¿Que tal andamos de código VBA? 

Aunque es posible que se pueda hacer sin código, yo lo manejaría con  VBA.

En el AfterUpdate del registro lanzaría:
1. generar próxima fecha 
2. comprobar que existe la combinación cliente-proxima fecha de forma que la simple edición del campo no genere duplicidades
3. generar el nuevo registros

¿Como aplico cada punto?
1. No indicas el método de cálculo ni que hayas tenido problemas por lo que asumo que está superado
2. Un DCount con el doble criterio o un recordset filtrado a los criterios dónde evaluamos EOF
3. Mediante consulta de insercion o un recordset

Ejemploe
1. superado
2. Opción DCount
  If DCount("*", "tabla", "Cliente = " & Me!Cliente & " AND FechaProximaVisita = #" & Format(dtmProximaVisita, "mm/dd/yyyy") & "# ") = 0 Then
    Opcion Recordset
  Set rst = CurrentDb.OpenRecordset("SELECT * FROM tabla WHERE Cliente = " & Me!Cliente & " AND FechaProximaVisita = #" & Format(dtmProximaVisita, "mm/dd/yyyy") & "# "
  If rst.EOF Then

Ambas opciones estan en punto en que no existe valor
3. También con 2 opciones:
    Consulta de insercion
    Currentdb.Execute "INSERT INTO tabla  (cliente, FechaProximaVisita) VALUES(" & Me!Cliente & ", #" & Format(dtmProximaVisita, "mm/dd/yyyy") & "# "

    Recordset
    Aprovechando que lo tenemos abierto en el punto 2, llenamos
    rst.AddNew
    rst!Cliente = Me!cliente
    rst!FechaProximaVisita = dtmProximaVisita
    rst.Update


Nota 1: escrito al cuelo
Nota 2: los experimentos con gaseosa

un saludo




-------------
Xavi, un minyó de Terrassa

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



Imprimir página | Cerrar ventana