Access - Lo tengo muy complicado actualizar barios formulario access

 
Vista:
sin imagen de perfil

Lo tengo muy complicado actualizar barios formulario access

Publicado por Andres (4 intervenciones) el 25/06/2023 13:01:40
Buenos días para todos y todas, voy a tratar de explicar mi problema:

Tengo una base de datos con 4 tablas todas relacionadas, y cuatro formulario extraído de cada una de las tabla con
el nombre (Presupuesto) con un subformulario (capitulopresupuesto) + otro (Capitulodescripcion) con subformulario
(Descripcionpresupuesto) + otro (Descripcionunitarios) con subformulario (unitariodecapitulo), bien pues hasta a qui bien, lo que pretendo hacer es que mediante otro formulario independiente actualizar esos otros formularios con
unidad precio y total de todo los registro de (unitariodecapitulo) una vez actualizado que seme actualice tambíen los demas formularios, hasta ahora solo lo hace con (Descripcionunitario) y subformulario (Unitariodecapitulo), bueno lo veo complicado este es códígo que hasta ahora utilizo


Private Sub ABRIR_Click()
On Error GoTo Err_ABRIR_Click
If IsNull(Presupuesto) Then
MsgBox " No edito el nº presupuesto", vbCritical, "Presupuesto"
Exit Sub
End If

If IsNull(porciento) Then
MsgBox " No edito el porcentaje ha modificar", vbCritical, "Presupuesto"
Exit Sub
End If

Pregunta = MsgBox("Deseas modificar algun presupuesto?", vbYesNo + vbInformation, "presupuesto")
If Pregunta = vbNo Then
DoCmd.Close
Else
MsgBox "Elegiste Sí", vbInformation, "presupuesto"

DoCmd.RunSQL "update unitariodecapitulo set precio=precio+porciento " & " Where prenumero= " & Me.Presupuesto
DoCmd.RunSQL "update unitariodecapitulo set TOTAL=UNIDAD*PRECIO " & " Where prenumero= " & Me.Presupuesto
DoCmd.RunSQL "update descripcionpresupuesto set Precio = Precio * Totalmedicion " & " Where numeropre= " & Me.Presupuesto

MsgBox "Presupuesto actualizado", vbInformation, "Actualizacion"
Precio = Precio * Totalmedicion
medicion = Totalmedicion
Form_DESCRIPCIONUNITARIO.Precio.SetFocus

End If
DoCmd.Close acForm, "reajusta"
Exit_ABRIR_Click:
Exit Sub

Err_ABRIR_Click:
MsgBox Err.Description
Resume Exit_ABRIR_Click

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

Lo tengo muy complicado actualizar barios formulario access

Publicado por Anonimo (3316 intervenciones) el 25/06/2023 15:14:07
No veo claro el proceso, hay variables sin declarar y cálculos que no parecen correctos.

Recomiendo que se modifique el orden de las acciones
Primero se hacen los calculos, despues se utilizan en las SQLs

En las SQLs las variables NO pueden estar dentro del texto (se les ha de dar el mismo trato que al referente de la condición) un ejemplo con la primera SQL:

1
2
3
4
'Antes:
DoCmd.RunSQL "update unitariodecapitulo set precio=precio+porciento " & " Where prenumero= " & Me.Presupuesto
'Después:
DoCmd.RunSQL "update unitariodecapitulo set precio=precio + " & porciento & " Where prenumero= " & Me.Presupuesto
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
sin imagen de perfil

Lo tengo muy complicado actualizar barios formulario access

Publicado por Andres (4 intervenciones) el 26/06/2023 11:02:57
Buenos días lo que me dices no lo entiendo, cuando actualizo solo me actualiza el ultimo registro podrías poner un ejemplo? de las SQL.
No tengo mucho conocimiento de programación y esto que hago es para poder actualizar cualquier presupuesto vasandome en el 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

Lo tengo muy complicado actualizar barios formulario access

Publicado por Anonimo (3316 intervenciones) el 26/06/2023 19:55:18
Los (el) ejemplo de la SQL ya lo he publicado en mi anterior intervención, es la misma SQL que está publicada en el mensaje inicial pero corregida para que (si todo esta correcto) funcione, la línea dos es la original y la línea cuatro es la que 'debería' funcionar.

Con esa SQL se pretende que actualice el campo PRECIO del conjunto de datos que se llama 'unitariodecapitulo' a su actual valor mas el que indique la variable 'PORCIENTO' y que solo afecte a los registros cuyo campo 'PRENUMERO' sea igual al cuadro de texto del formulario que se llama 'PRESUPUESTO' pero la original esta escrita de forma incorrecta y no encontrara a 'PORCIENTO' (esa es la corrección: que encuentre a 'porciento').

La segunda SQL actualizara el campo total con el precio (el nuevo precio, se actualizo antes) multiplicado por el numero de unidades (como ambos campos están en el registro no debería ser un problema)

La tercera SQL tiene el mismo problema que la primera, es otro conjunto de datos 'descripcionpresupuesto' al que se pretende que su campo 'PRECIO' se actualice a su valor actual multiplicado por el valor de 'Totalmedicion' (pero esta mal escrita y no encontrará a Totalmedicion), habrá que escribirla de forma correcta para que funcione:

1
DoCmd.RunSQL "update descripcionpresupuesto set Precio = Precio * " & Totalmedicion & " Where numeropre= " & Me.Presupuesto


Actualmente lo único que actualizara serán los datos que (estén/están) en el formulario (Precio = Precio * Totalmedicion y medicion = Totalmedicion) que supuse eran cálculos que deberían hacerse 'antes' de las SQLs (y que tras una nueva lectura me hacen suponer que es indiferente el orden).

Si los datos Porciento y Totalmedicion son cuadros de texto del formulario (no variables), la referencia correcta a ellos seria asi:
Me.Porciento
y
Me.Totalmedicion

Me le indica a Access que es 'un objeto' del formulario activo (puede existir una variable con el mismo nombre y ... montar un lio) y si no existe una variable con ese nombre, Access tardara más pero por descarte utilizara el cuadro de texto.
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
sin imagen de perfil

Lo tengo muy complicado actualizar barios formulario access

Publicado por Andres (4 intervenciones) el 28/06/2023 10:11:35
Hola¡¡ Anonimo, esta es para comunicarte que ya se actualiza todos los unitarios de la tabla (unitariodecapitulo), cuando abro el formulario
(descripcionunitario) veo como se actualizado los unitarios del subformulario (unitariodecapitulo) y el formulario (desdripcionunitario), Ahora bien.

(descripcionunitario) viene del subformulario(descripcionpresupuesto) que puede tener barios registro, la pregunta esta ¿como puedo actualizar el subformulario(descripcionpresupuesto)? ya que en el formulario(descripcionunitario) y subformulario (unitariodecapitulo) ya tomo todo el porciento añadido en mas o en meno. Teniendo en cuenta que puede tener 5 0 10 registro o...+ un saludo y Gracias por tu paciencia
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

Lo tengo muy complicado actualizar barios formulario access

Publicado por Anonimo (3316 intervenciones) el 28/06/2023 13:21:10
Sin conocer las relaciones que hay entre las tablas no me atrevo a aconsejar ninguna acción, pues el orden es muy importante (tiene que ser consecuente con las relaciones entre los datos y ello supone prioridades).

Haz una captura de las relaciones entre las tablas e indica que datos se tiene que actualizar, de esa forma se puede simplificar todo el proceso (por ejemplo: actualmente utilizas dos SQLs de actualización consecutivas sobre el mismo conjunto de datos y se puede hacer con una sola SQL).
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