Imprimir página | Cerrar ventana

Recorrer todos los registros y campos

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=87027
Fecha de impresión: 26/Marzo/2026 a las 17:28


Tema: Recorrer todos los registros y campos
Publicado por: JuanRB
Asunto: Recorrer todos los registros y campos
Fecha de publicación: 11/Diciembre/2024 a las 09:56

Buenos días y muchas gracias por vuestro tiempo,

Tengo un formulario principal con varias páginas (pestañas) y dentro de cada una de esas páginas tengo un formulario continuo con varios campos.

Lo que deseo es que al hacer clic (en la pestaña) me recorra todos los registros (líneas) del formulario continuo pasando por todos los campos de cada uno de los registros.




-------------
<font color=BLUE>Las oportunidades que tu pierdes, otro las aprovecha.[/COLOR]



Respuestas:
Publicado por: xavi
Fecha de publicación: 11/Diciembre/2024 a las 10:34
Hola,

Y el problema, exactamente, ¿Cuál es?

Porque recorrer registros mediante un Recordset y los recorrer la colección Fields de cada registro está ampliamente documentado.

Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: JuanRB
Fecha de publicación: 11/Diciembre/2024 a las 11:35
Gracias Xavi,

No he encontrado nada que entienda para aplicar lo que necesito.

Al recorrer todos los campos de todos los registros es porque al llegar a un campo concreto de cada registro se realizan unos cálculos concretos.


-------------
<font color=BLUE>Las oportunidades que tu pierdes, otro las aprovecha.[/COLOR]


Publicado por: xavi
Fecha de publicación: 11/Diciembre/2024 a las 11:54
En el evento Al hacer clic de la pestaña abres el recordsetclone del subformulario de la pestaña.

Set rst = Me!elControlSubformulario.Form.RecordsetClone

Luego recorres los campos del registro buscando el nombre en concreto

For Each fld In rst.Fields
  If fld.Name = "NombreBuscado" Then
    ' Aqui los cálculos
  End If
Next

Necesitas declarar rst como DAO.Recordset y fld como DAO.Fields


Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: JuanRB
Fecha de publicación: 11/Diciembre/2024 a las 12:38
Xavi, estamos de vuelta tras haber intentado desarrollar tu propuesta con el siguiente código

Private Sub Reparto_1_Click()
Dim rst As DAO.Recordset
Dim fld As DAO.Fields

Set rst = Me!Frm_RRHH_Empleados_1.Form.RecordsetClone   'Nombre del subformulario: Frm_RRHH_Empleados__1

For Each fld In rst.Fields
  If fld.Name = "Reparto_1" Then                        'Nombre del control de cada registro para hacer los cálculos
    Reparto_1 = Presupuesto / Contador * Jornada        'Calcula presupuesto / contador (el número de registros que tiene el subformulario) * % jornada
  End If
Next
End Sub

Pero no me funciona como deseo, el procedimiento debe de ir al campo Reparto_1 de todos los registros para realizar el cálculo en cada uno de ellos.


-------------
<font color=BLUE>Las oportunidades que tu pierdes, otro las aprovecha.[/COLOR]



Imprimir página | Cerrar ventana