Agregar un registro varias veces con distintos datos

Quisiera saber la manera para agregar un mismo registro varias veces pero el cuál cambia alguno de sus datos cada vez que lo agrego.

Ejemplo: Tengo una tabla que registra fecha de contratación del personal con todos los datos de la persona. Una persona puede que tenga mas de un contrato, quisiera poder ingresar el registro las veces que necesite modificando la fecha de contratación, cosa de si necesito saber cuantos contratos y fecha de X persona pueda consultarlos.

Actualmente la tabla tiene como clave principal el campo Cédula o Nit, por lo cual no deja duplicar los registros, y el formulario que utilizo para registrar la información me arroja un aviso de " No se puede ir al registro especificado" .

Este es el código del botón de agregar registro, el cual previamente Jacinto Trillo me ayudo a realizar.

Function AgregaRegistro()

On Error GoTo Err_AgregaRegistro
DoCmd.GoToRecord , , acNewRec
Exit_AgregaRegistro:
Exit Function
Err_AgregaRegistro:
MsgBox Err.Description
Resume Exit_AgregaRegistro
End Function

1 Respuesta

Respuesta
1

En principio lo que deberías hacer es poner como clave un campo Idloquesea Autonumérico y quitársela a Cédula, ya que quieres que se repita.

En el formulario puedes hacer dos cosas con el botón.

1º Si sólo quieres que te inserte UN registro, por ejemplo en el que estás en ese momento, en el botón pon

Docmd.runsql"insert into nombretabla select * from nombredetabla where idloquesea=forms!nombredelformulario!idloquesea"

2º Si el número de registros es variable, puedes crear un cuadro de texto y llamarlo Repetición, donde pondrás las veces que quieras que inserte, y el código del botón sería

docmd.setwarning false

dim i as integer

for i=1 to repetición

Domd. Runsql"insert into nombretabla(Nombre, direccion, yoquesé)values(forms!nombredelformulario!nombre, forms!nombredeformulario!direccion,...)"

next i

¡Gracias!

Hola Icue decidí hacerlo de la primer forma y es exactamente lo que quiero, muchísimas gracias por tu ayuda. Justo en el clavo.

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas