¿Cómo limitar datos de un sub formulario para ser visualizados en un informe?

Partiendo de que tengo un sub formulario "Subformulario_Solicitud_Material" y en la tabla "Solicitud_Material" tengo un campo "Actualizado" de tipo si/no. La pregunta es:¿Cómo hago para que los datos que tengo cargados en el sub formulario y que visualizo en el reporte, en el evento "cerrar Formulario", se actualicen en la tabla con el cheque, para de esta manera no visualizarlos nuevamente?

2 respuestas

Respuesta
2

La idea que te comenta Jacinto sería hacer esto, en el evento del formulario principal:

Private Sub Form_Close()
Dim rst As DAO.Recordset
Set rst=Me.Subformulario_Solicitud_Material.Form.RecordsetClone
Do Until rst.EOF
rst.Edit
rst("Actualizado")=True
rst.Update
rst.MoveNext
Loop
rst.Close
End If

Estimados Sveinbjorn El Rojo y Jacinto, justo lo que necesitaba, pero realicé las siguientes modificaciones al código:

Set rst=Me.Form.recordsetClone (ya que estoy dentro del evento close del sub formulario, no hay necesidad de hacer referencia a el).

y al final eliminar end If.

Gracias por su tiempo estimados,

Saludos,

Si lo haces directamente en el subform, puedes ponerlo así:

Set rst=Me.RecordsetClone

Y el End If tendría que ser End Sub, fallo mío.

Respuesta
1

Inti: Los datos de los registros que has de modificar, ya los tienes en Recordset del SubFormulaio. Recorrelo y vas actualizando a True el Campo "Actualizado".

Mira en la ayuda de Access el RecordsetClone y si no lo solucionas comentamos, porque es un poco largo de explicar, si no lo has manejado antes. Saludos >> Jacinto

Gracias por responder Jacinto, pero a como te comente en la pregunta, se me hace más fácil de la siguiente manera:

Private Sub Form_Close()

Dim StrSQL As String
StrSQL = "UPDATE [Tabla_Maestra_de_Material_Recibido_de_Enatrel] SET [Tabla_Maestra_de_Material_Recibido_de_Enatrel].[Actualizar] = -1"
StrSQL = StrSQL & " WHERE [Tabla_Maestra_de_Material_Recibido_de_Enatrel]![Código]= " & Me.[Seleccionar_Código].Column(0)

CurrentDb.Execute StrSQL

Pero no estoy seguro si está bien igualarlo a -1.

Saludos Jacinto.

Inti: Independientemente de que el Nombre de la Tabla que quieres actualizar cambia y el Nombre del Campo también, sin profundizar mucho y sin saber los datos que tienes en esa Tabla, lo que si le estas diciendo es que actualice “Todos” los registros que coincidan con el valor de [Seleccionar_Código], y si tienes N Items, te los actualizará, los del SubFormulario y los de hace tres años.
Es por ello, que te comenté lo del RecordsetClone y que Sveinbjorn te lo resume de modo magnifico en unas líneas.
Lo del -1 si equivale a True
Mis saludos
Jacinto

Gracias por responder, probaré lo que me indica Sveinbjorn, pero en si, de la manera que lo estoy haciendo, no creo que me actualice los de hace tres años, ya que esos registros tendrán activado el valor del campo "Actualizado" en -1, es decir ya tendrían el cheque, y solo me actualizaría los que visualizo en el sub formulario cargado, no se si me explico.

Probaré lo que me indican y comento.

Saludos,

Perfecto Inti: Ya nos contarás. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas