Insertar varios registros con los mismos datos por medio de un botón

Que tal quisiera saber como programar un botón guardar, para que los datos capturados en los textbox me los guarde n veces, en mi caso estoy haciendo una pantalla donde capturen pagos por realizar, pero se presenta la situación de que un pago se puede realizar en varias parcialidades, por eso quiero saber como hacerlo
Capturar los datos
- Habilitar un checkbox que diga en pagos = 5 y que al guardar me inserte el registro 5 veces aunque claro validando que en el campo numero de pago me envíe 1 de 5, 2 de 5, 3 de 5, 4 de 5, 5 de 5, a lo mejor es algo complicado, yo he realizado inserciones en sql pero con ciclos, aquí la verdad no se como hacerlo

1 respuesta

Respuesta
1

Prueba con este código, adaptándolo a tu caso concreto:

Como no conozco la estructura de tu BD, he supuesto que tienes varios campos (campo1, 2 y 3), un campo total, en el que guardas el total de la compra, el campo nº de pago, y un campo importe, que recoge el importe de cada pago parcial.

Private Sub cmdGuardar_Click()
Dim dbs As Database
Dim rst As Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("NombredetuTabla", dbOpenDynaset)
If Me.chkPagoEn5.Value = True Then 'Si el check está marcado
For i = 1 To 5 'Inserta 5 registros iguales
rst.AddNew
rst("campo1") = Me.campo1.Value
rst("campo2") = Me.campo2.Value
rst("campo3") = Me.campo3.Value
rst("total") = Me.total.Value
rst("nº de pago") = i & " de 5"
rst("importe") = Me.total.Value / 5
rst.Update
Next
Else ' Si no está marcado, inserta 1 registro
rst.AddNew
rst("campo1") = Me.campo1.Value
rst("campo2") = Me.campo2.Value
rst("campo3") = Me.campo3.Value
rst("total") = Me.total.Value
rst("nº de pago") = "1 de 1"
rst("importe") = Me.total.Value
rst.Update
End If
End Sub

muchas gracias por la solución propuesta, ya lo había solucionado de otra manera, te dejo el código para que lo veas.... gracias

Private Sub Guardar_Click()
Dim valor As Integer
Dim Importe As Integer
Importe = Me.Importe.Value / Me.cuantas.Value
For valor = 1 To Me.cuantas.Value
If valor <> 1 Then
Me.FechaVencimiento.Value = Me.FechaVencimiento.Value + 30
End If
Me.Comentario.Value = "pago " & valor & "de " & Me.cuantas.Value
DoCmd.RunSQL "insert into pagos (codproveedor,codgasto,fechavencimiento,importe,codempresa,idestatus,idplaza,comentario) values (" & Me.codproveedor.Value & "," & Me.codgasto.Value & ",'" & Me.FechaVencimiento.Value & "'," & Importe & "," & Me.codempresa.Value & "," & Me.idestatus.Value & "," & Me.cboidplaza.Value & ",'" & Me.Comentario.Value & "');"
Next
MsgBox "Registros insertados correctamente", vbOKOnly
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas