Relaciones entre tablas Access con código
Publicado por José (12 intervenciones) el 11/12/2015 04:05:55
Hola,
tengo un formulario maestro/detalle que funcióna convenientemente.
En ocasiones tengo que recorrer (mediante código VBA) la tabla del formulario maestro y los registros correspondiente del formulario detalle. Como ya tengo algunos registros, pues el proceso es demasiado lento y me pregunto si se podría hacer mas rápido.
Yo hago lo siguiente : apunto a la tabla DAO.recordset basada en el recordsetClone del formulario Maestro y recorro por entero la tabla maestro. Algo así
Set Db = DAO.CurrentDb
do while not Maestro.eof
set detalle = Db.Openrecordet ("Detalle",dbopendynaset)
Detalle.filter = "[IDMAESTRO] = " & Maestro![IDMAESTRO]
set Detalle = Detalle.OpenRecordset
Do While not Detalle.Eof
........proceso de datos
if not Detalle.Eof then Detalle.MouveNext
Loop
Close.Detalle
....if not Maestro.Eof then Maestro.MouveNext
Loop
A cada cambio de registro de la tabla Maestro abro la tabla Detalle y creo el filtro correspondiente, cerrándola al final de cada registro de la tabla Maestro.
Pienso que este proceso me ralentiza los cálculos, pero no se como construir con código una relación (o tomar la relación de los formularios) para que a cada cambio de registro en la tabla Maestro automáticamente se seleccione los registros correspondiente de la tabla Detalle.
Saludos
José
tengo un formulario maestro/detalle que funcióna convenientemente.
En ocasiones tengo que recorrer (mediante código VBA) la tabla del formulario maestro y los registros correspondiente del formulario detalle. Como ya tengo algunos registros, pues el proceso es demasiado lento y me pregunto si se podría hacer mas rápido.
Yo hago lo siguiente : apunto a la tabla DAO.recordset basada en el recordsetClone del formulario Maestro y recorro por entero la tabla maestro. Algo así
Set Db = DAO.CurrentDb
do while not Maestro.eof
set detalle = Db.Openrecordet ("Detalle",dbopendynaset)
Detalle.filter = "[IDMAESTRO] = " & Maestro![IDMAESTRO]
set Detalle = Detalle.OpenRecordset
Do While not Detalle.Eof
........proceso de datos
if not Detalle.Eof then Detalle.MouveNext
Loop
Close.Detalle
....if not Maestro.Eof then Maestro.MouveNext
Loop
A cada cambio de registro de la tabla Maestro abro la tabla Detalle y creo el filtro correspondiente, cerrándola al final de cada registro de la tabla Maestro.
Pienso que este proceso me ralentiza los cálculos, pero no se como construir con código una relación (o tomar la relación de los formularios) para que a cada cambio de registro en la tabla Maestro automáticamente se seleccione los registros correspondiente de la tabla Detalle.
Saludos
José
Valora esta pregunta


0