Recorrer un subformulario

Que tal expertos tengo un formulario principal llamado categorías y un subformulario que se llama percepciones
el campo principal tengo un campo llamado salario, quiero que el evento después de recorra el subformulario buscando la clave 2001 y el campo que tenga la clave 2001 coloque el importe
he creado esta rutina ..
Dim rstsub1 As Recordset, rstsub2 As Recordset
Set rstsub1 = Categorias.RecordsetClone()
Set rstsub2 = sfPercepciones.RecordsetClone()"OJO AQUI ME DICE QUE NO ENCONTRO EL METODO O DATO MIEMBRO"
rstsub2.MoveFirst
Do Until rstsub2.EOF
If rstsub2!Clave = 2001 Then
rstsub2!Importe = rstsub1!Importe
rstsub2.Update
rstsub2.MoveNext
Loop
Rstsub2. Close: rstsub1. Close

1 respuesta

Respuesta
1
Me parece que te estás complicando la vida. Supongamos que el origen del subformulario es la tabla Percepciones. Lo más sencillo es que en el código pongas
DoCmd.RunSQL "update percepciones set importe=[forms]![categorías]![salario] where [Clave]=2001"
Me!Percepciones.Form.Requery
Así, te pondrá el valor Salario en el campo Importe de la tabla Percepciones en todos aquellos registros cuyo campo Clave sea 2001.
Mira ya encontré la solución lo intente como dice pero se lo hacia a todos los registros y no a los id del formulario activo. Lo solucione así
Dim rstsub2 As DAO.Recordset
Dim F As Form, SF As Form
' Asignamos valores
Set F = Forms![categorias]
Set SF = F![sfPercepciones].Form
Set rstsub2 = SF.Recordset
rstsub2.MoveFirst
Do Until rstsub2.EOF
If rstsub2!Clave = "2001" Then
rstsub2.Edit
rstsub2!Importe = [Forms]![categorias]![Importe]
rstsub2.Update
End If
If rstsub2!Clave = "2002" Then
rstsub2.Edit
rstsub2!Importe = Round([Forms]![categorias]![Importe] / 8, 2)
rstsub2.Update
End If
If rstsub2!Clave = "2003" Then
rstsub2.Edit
rstsub2!Importe = [Forms]![categorias]![Importe]
rstsub2.Update
End If
If rstsub2!Clave = "2004" Then
rstsub2.Edit
rstsub2!Importe = -[Forms]![categorias]![Importe]
rstsub2.Update
End If
rstsub2.MoveNext
Loop
rstsub2.Close
Set rstsub2 = Nothing
Exit Sub
Pero me actualiza el subformulario ya marque la pregunta en el tablón si fueras ta amable de decirme como hacerlos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas