Access - Crear bucle

 
Vista:
sin imagen de perfil

Crear bucle

Publicado por andres (42 intervenciones) el 14/11/2022 15:08:45
Hola a todos, espero estén bien, no tengo muchos conocimientos, pero trato de entender el funcionamiento.
Desde ya gracias por su tiempo.
Les comento, tengo una base de datos en Access con una tabla T_Datos y un formulario continuo llamado F_List_Proy con los campos:
C_bienes - C_elementos - C_seguridad - total

y un botón llamado sumar, necesito que al hacer clic el bucle recorra todos los registros y que si el total está vacío me sume los los campos:
C_bienes - C_elementos- C_seguridad y coloque el total en el campo total.

El problema es que no me recorre.


Private Sub Sumar_Click()

Dim rs As Recordset

Dim intActualizado As Integer


If Me.Total > 2 Then
Exit Sub

Else

Set rs = CurrentDb.OpenRecordset("T_Datos", dbOpenTable)

Do Until rs.EOF


Me.Total = (Me.C_bienes + Me.C_elementos + Me.c_seguridad)

intActualizado = intActualizado + 1

rs.MoveNext

Loop

rs.Close
Set rs = Nothing
Me.Requery
MsgBox "Se actualizaron " & intActualizado & " registros", vbInformation, "Cuotas mes"

End If

Exit Sub

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Crear bucle

Publicado por Anonimo (3316 intervenciones) el 14/11/2022 19:20:07
Yo creo que, si recorre, pero no recorre el formulario y siempre hace exactamente lo mismo: sumar tres objetos del formulario y guardarlos en el mismo cuadro de texto.

El resultado será siempre el mismo (se esté físicamente en el registro uno o en el décimo octavo del formulario) la suma de los cuadros de texto del formulario (no del recordset)


Hay que tener claro que una cosa es el recordset (rs) y otra un objeto del formulario (ME.total, ME.c_bienes ....)

Si se modifica esta línea:
1
Me.Total = (Me.C_bienes + Me.C_elementos + Me.c_seguridad)

Por esta:
1
rs!Total = rs!C_bienes + rs!C_elementos + rs!c_seguridad

El problema desaparecerá.

Si pudiera darse el caso de que algún campo pudiera ser NULO, habrá un error en tiempo de ejecución, lo adecuado sería utilizar la función NZ (algo como Nz( rs!C_bienes, 0) + ..... ).

Un detalle, el contados no verifica si se actualiza el registro, se actualizan todos.
Y si se actualizan todos ¿que objeto tiene sumar un dato que se puede conocer?

1
MsgBox "Se actualizaron " & rs.RecordCount & " registros", vbInformation, "Cuotas mes"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Crear bucle

Publicado por Mbellido (306 intervenciones) el 14/11/2022 23:00:33
Si lo que quieres es actualizar todos los registros lo puedes hacer mediante una consulta de actualización
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar