Bueno aqui la solucion q utilize
Código vb:
Ver originalDim RsTemporal As New Recordset
Dim rsDetalle As New Recordset
Sub ActivaTemporal()
'Creando recordset temporal
RsTemporal.CursorType = adOpenStatic
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
Private Sub Form_Load()
ActivaTemporal
End Sub
Private Sub Command1_Click()
'123456: Aqui le aplicas un WHERE con el ID de tu tabla maestro para que no te filtre toda la tabla.
rsDetalle.Open "SELECT codprod,nomprod,precioventa FROM Detalle", dbConex, adOpenStatic, adLockOptimistic
'Añadimos los datos del rsDetalle al rsTemporal
Do While Not rsDetalle.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
End Sub
Private Sub Command2_Click()
'Los registros que se ingresen con este sub se guardan en el rstemporal por lo
'tanto la tabla detalle queda intacta, al final si quieres lo vuelves a recorrer e ingresar los nuevos registros.
GrabaTemporal
End Sub