¿Como puedo duplicar registros en una base access en base a los valores del campo de una tabla?

Tengo una base de datos y en una tabla de la misma tengo registros con los campos SERIE; DESCRIPCION; CODIGO; TALLA; PVP Y CANTIDAD, y me gustaría que me repitiese automáticamente los registros en base al valor del campo CANTIDAD.

1 Respuesta

Respuesta
1

No estoy seguro de lo que pides. Creo entender que desde un formulario que contiene los campos que indicas quieres insertar en una tabla (que tiene esos mismos campos) tantos registros como indiques en el campo CANTIDAD. Imagina que defines los valores de los campos y que en cantidad has puesto un 3. Vas a insertar tres registros iguales, pero ¿por qué quieres insertar en los tres registros el valor de 3 en el campo cantidad? Ya tienes los tres registros y a priori no veo motivo para insertar también en ese campo el valor de 3 en los tres registros.

Volviendo a lo básico, dime si el planteamiento de la inserción de registros que te comento es correcta. En ese caso si indicas el tipo de datos de los campos que citas te puedo generar el código asociado a un botón que haría esta inserción de registros.

Cordiales saludos.

Mira el motivo es que por una serie de necesidades necesito que me aparezcan repetidos los registros tantas veces como tenga el valor del campo cantidad, esto es, si el valor de cantidad es 3 tengo que tener tres veces repetido ese registro.

También te diré que todos los campos son de texto.

Si necesitas algo más me lo dices y ante todo muchísimas gracias por tu interés.

Un saludo

Lo de crear tres registros si en cantidad pones 3 entendido. La pregunta es ¿quieres qué en concreto en el campo cantidad de esos tres registros nuevos que se crean también aparezca el 3, o que quieres en ese campo de la tabla? Es decir, no se si quieres añadir en este caso tres registros con el resto de los campos con el valor que hayas definido, pero sin poner nada en el campo CANTIDAD, o si también quieres que en CANTIDAD aparezca el 3 en los 3 registros (vaya lio con tanto 3)

En cualquier caso el código es sencillo y lo adjuntaré en cuanto me aclares este punto.

Cordiales saludos.

Te adjunto un ejemplo de código que inserta el valor que escribas en el campo Cantidad del formulario en el campo CANTIDAD de la tabla (y el resto de campos obviamente).

SI finalmente no quieres insertar este valor de cantidad basta con que modifiques la SQL de inserción (puedes adjudicarle por ejemplo el valor de la variable i que verás en el código y así tendrás los registros iguales numerados o...)

Creas un formulario y añades los seis campos necesarios para introducir los datos que quieres. El formulario no debe de tener ningún origen de registros, y los campos son también independientes. Añades un botón que en mi ejemplo se llama Insertar, y asocias al evento click del mismo el código que te adjunto. Como verás primero compruebo que en el campo Cantidad del formulario se haya inscrito un número, luego creo variables para los valores introducidos en los campos, y finalmente ejecuto un bucle tantas veces como indique Cantidad. En cada 'pasada' por el bucle inserto un registro con los valores del formulario en mi ejemplo en la Tabla2. Finalmente un mensaje confirma la inserción y el número de registros insertados.

Espero te sirva.

Cordiales saludos.

Option Compare Database
Option Explicit
Private Sub btInsertar_Click()
On Error GoTo Err_btInsertar_Click
    Dim msg As String, estilo, title As String
    If IsNumeric(Me.CANTIDAD) = False Then
        msg = "Debe de introducir un número entero positivo en el campo CANTIDAD."
        estilo = vbOKOnly + vbCritical
        title = "Valor numérico requerido"
        MsgBox msg, estilo, title
        Me.CANTIDAD.SetFocus
        Exit Sub
    End If
    Dim miBD As Database, miSQL As String, i As Integer
    Dim miSerie As String, miDescripcion As String, miCodigo As String, miTalla As String, miPVP As String, miCantidad As Integer
    miSerie = Me.SERIE
    miDescripcion = Me.DESCRIPCION
    miCodigo = Me.CODIGO
    miTalla = Me.TALLA
    miPVP = Me.PVP
    miCantidad = Me.CANTIDAD
    Set miBD = CurrentDb
    For i = 1 To miCantidad
        miSQL = "INSERT INTO Tabla2 ( SERIE, DESCRIPCION, CODIGO, TALLA, PVP, CANTIDAD ) SELECT '" & miSerie & "','" & miDescripcion & "','" & miCodigo & "','" & miTalla & "','" & miPVP & "','" & miCantidad & "';"
        miBD.Execute miSQL
    Next
    msg = "Se han creado " & miCantidad & " registros en la tabla Tabla2."
    estilo = vbOKOnly + vbInformation
    title = "Registros creados correctamente"
    MsgBox msg, estilo, title
Exit_btInsertar_Click:
    Exit Sub
Err_btInsertar_Click:
    MsgBox Err.Description
    Resume Exit_btInsertar_Click
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas