Actualizar barios formularios a la vez desde otro

Mi pregunta es que tengo 3 formulario 1 con el nombre (presupuesto) y su subformulario capitulopresupuesto, 2 (Capitulodescrpcion) y su ubformulario 3 (descripcionunitario) y su subformulario de nombre (unitariodecapitulo ahora bien hasta ahora el problema es cuando quiero reajustar en + o en - el presupuesto como lo hago, dejo el código que estoy utilizando, teniendo en cuenta que el formulario (Reajustar) es independiente y si se actualiza todo pero no logro verlo reflejado en cada uno de los formulario y subformularios.

Private Sub Form_Timer()

DoCmd.RunSQL "update unitariodecapitulo set precio=precio + " & PORCIEN & " Where prenumero= " & Me.numeropre
DoCmd.RunSQL "update unitariodecapitulo set TOTAL=UNIDAD * PRECIO " & " Where prenumero= " & Me.numeropre

Dim Reg As DAO.Recordset
Set Reg = Me.Recordset
Do While Not Reg.EOF

DoCmd.OpenForm "PRESUPUESTO"
DoCmd.OpenForm "CAPITULODESCRIPCION"
DoCmd.OpenForm "DESCRIPCIONUNITARIO"

Form_DESCRIPCIONUNITARIO.Actualiza_Click
Form_CAPITULODESCRIPCION.ACTUALIZAR_Click
MsgBox "AHORA NO FUNCIONA BIEN", vbInformation, "ACTUALIZANDO"

Reg.MoveNext
Me.TimerInterval = 0
Loop

DoCmd. Close acForm, "ajustepresupuesto"
DoCmd. Close acForm, "REAJUSTA"
End Sub

Respuesta
1

Coincido en que el evento Timer no es adecuado (además, por defecto esta a cero y se desconoce que intervalo se le asigna).

La SQL no necesita que se la duplique, puede hacer todo el trabajo en una sola llamada:

Antes:

DoCmd.RunSQL "update unitariodecapitulo set precio=precio + " & PORCIEN & " Where prenumero= " & Me.numeropre
DoCmd.RunSQL "update unitariodecapitulo set TOTAL=UNIDAD * PRECIO " & " Where prenumero= " & Me.numeropre

Después:

DoCmd.RunSQL "update unitariodecapitulo set precio=precio + " & Porcien & ", TOTAL=UNIDAD * PRECIO + " & Porcien & " Where prenumero= " & Me.numeropre

Si con esta SQL de actualización se actualizan las tablas (o consultas), para ver el resultado en los formularios que estén abiertos, solo se precisa volver a cargar su contenido (un Me.Requery o Forms.[nombre del formulario].Requery) y tomara los datos mas actualizados, recorrer el formulario registro a registro en principio no aporta ninguna solución.

Me queda la duda de lo que hace el objeto 'Actualiza' en su evento Click.

1 respuesta más de otro experto

Respuesta
1

Andrés, tus razones tendrás para poner la instrucción en el evento Al cronómetro. Pero si en una instrucción desde el formulario que sea le dices que actualice el valor de un campo de una tabla, que para el ejemplo llamaremos Clientes, cuando abras un formulario basado en la tabla Clientes, ya te tiene que aparecer los valores "actualizados".

En el peor de los casos, que ya te digo que tiene que funcionar lo del párrafo anterior, en el evento Al abrir del formulario Clientes le puedes poner

Me. Requery

Es decir, que "reconsulte" su origen de registros.

Quizá lo mejor sería que pusieras una imagen

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas