¿Cómo agrego registros de un recordset a otro?

Con el command 1 cargo los datos una tabla llamada detalle a un datagrid1
Private Sub Command1_Click()
'Cargamos la grilla detalle
Set rsDetalle = New Recordset
rsDetalle.Open "SELECT * FROM Detalle", dbConex, adOpenStatic, adLockOptimistic
Set DataGrid1.DataSource = rsDetalle
End Sub
Tengo otro recorset creado en tiempo de ejecución con los mismos
campos de la tabla detalle
Sub ActivaTemporal()
'Creando recordset temporal
rsTemporal.CursorType = adOpenStatic 'Creando los campos y tipo de dato
rsTemporal.Fields.Append "CodProd", adVarChar, 4, adFldIsNullable
rsTemporal.Fields.Append "NomProd", adVarChar, 250, adFldIsNullable
rsTemporal.Fields.Append "PrecioVenta", adDouble, 10.2, adFldIsNullable
rsTemporal.Open
'Cargamos el datagrid
Set DataGrid1.DataSource = rsTemporal
End Sub
Sub GrabaTemporal()
rsTemporal.AddNew
rsTemporal.Fields(0) = Text1.Text
rsTemporal.Fields(1) = Text2.Text
rsTemporal.Fields(2) = Text3.Text
rsTemporal.Update
End Sub
La pregunta es como le agrego al recorset detalle los datos del recordset temporal
sin que se pierdan los datos en el datagrid
Es decir sumarle al rsDetalle que esta en el datagrid1 las filas del rsTemporal.
En resumeN quiero agregar más filas a la tabla detalle mediante el rsTemporal pero que se visualice en el datagrid1.
¿Es posible hacer esto?

1 respuesta

Respuesta
Tendrías que insertar los datos a la tabla y luego refrescar el recordset enlazado al datagrid, esta seria la maneras más optima de trabajarlo, seria algo así:
dbConex.execute "Insert into Detalle  values(" & val1 & ", " 6 val2 ........
Y luego para refescar los datos pondrías:
RsDetalle. Requery
Para sumarle los registros del rsDetalle al rsTemporal, agrego los registros de la tabla detalle al cargar el form
Do While Not rsDetalleBoleta.EOF
rsTemporal.AddNew
rsTemporal.Fields("CodProd") = rsDetalle.Fields("CodProd")
rsTemporal.Fields("nomprod") = rsDetalle.Fields("nomprod")
rsTemporal.Fields("PrecioVenta") = rsDetalle.Fields("PrecioVenta")
'rsTemporal.Update
rsDetalle.MoveNext
Loop

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas