Dudas sobre los valores de los campos de un formulario que forman parte de tablas

Bueno ante todo muchas gracias,
Si fueron un poco genéricas las preguntas pero haber si puedo desarrollar mejor las preguntas
1) Si todos los campos donde se vana a ver reflejados los resultados forman parte de la tabla origen, las fórmulas la tabla y el formulario son los siguientes:
El Nombre de la Tabla es = Puntajebruto / Nombre de formulario= Mapeo
ANA_SOL_Y = ([ACO_Y] + [ANA_Y] + [CRI_Y]) / 3
ANALISISYO = Format(ANA_SOL_Y, "0.0")
ANA_SOL_J = ([ACO_J] + [ANA_J] + [CRI_J]) / 3
ANALISISJEFE = Format(ANA_SOL_J, "0.0")
ANA_SOL_S = ([ACO_S] + [ANA_S] + [CRI_S]) / 3
ANALISISSUPER = Format(ANA_SOL_S, "0.0")
ANA_SOL_O = ([ACO_O] + [ANA_O] + [CRI_O]) / 3
ANALISISOTROS = Format(ANA_SOL_O, "0.0")
Esta fórmula es igual para todo el formulario lo único que va a cambiar son los nombres de los campos para realizar los cálculos

1 Respuesta

Respuesta
1
No hacía falta que finalizaras la pregunta, podías haberla continuado y así puntuarme en base al resultado final y a lo mejor me hubieras valorado más la respuesta :(
Bueno, en cuanto a tu problema, comprueba lo siguiente:
1º Que el formulario está enlazado a la tabla.
2º Que todas las variables que aparecen en tu código (ANA_SOL_Y, ACO_Y, etc) están asociadas a un campo de la tabla origen del formulario.
3º Que el evento en el has puesto el código se produce realmente.
Y no se me ocurre nada más por ahora. De todas formas, no tengo muy claro cuál puede ser tu problema. Como te dije en la otra pregunta, te puedo dejar mi correo y me envías el fichero Access (con las tablas vacías o con 1 ó 2 registros) y te copio y te pego el código una vez solucionado el problema. Tú me dirás.
Esta ultima pregunta es de la primera que te hice, o sea lo que quiero es que me realice todos estos cálculos en todos los registros de la tabla con solo dar clic una sola vez en el formulario
Un Saludo
Vete a 'Consultas', pulsa el botón 'Nuevo', elije 'Vista diseño', pulsa 'Aceptar'. Cuando te salga la venta 'Mostrar tabla' pulsa 'Cerrar', luego vas a menú 'Ver' y eliges 'Vista SQL' y en la ventana que te sale sustituyes todo por lo siguiente:
UPDATE Puntajebruto SET Puntajebruto.ANA_SOL_Y = ([ACO_Y]+[ANA_Y]+[CRI_Y])/3, Puntajebruto.ANA_SOL_J = ([ACO_J]+[ANA_J]+[CRI_J])/3, Puntajebruto.ANA_SOL_S = ([ACO_S]+[ANA_S]+[CRI_S])/3, Puntajebruto.ANA_SOL_O = ([ACO_O]+[ANA_O]+[CRI_O])/3;
Cierras la ventana y le pones a la consulta el nombre 'Actualizar'.
A continuación en un botón del formulario que se llame 'Actualizar' y pones el siguiente código en el evento 'Al hacer clic':
On Error GoTo Err_Actualizar_Click
Dim stDocName As String
stDocName = "Actualizar"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_Actualizar_Click:
Exit Sub
Err_Actualizar_Click:
MsgBox Err.Description
Resume Exit_Actualizar_Click
Consideraciones: Parto del supuesto de que todas las variables del código que pusiste existen con ese mismo nombre en la tabla 'Puntajebruto' y son de tipo numérico, a excepción de las variables ANALISISxxx, que no las tengo en cuenta. De todas formas, puedes ver que el código SQL no es nada complicado, por lo que si tienes que hacer alguna modificación no te va a costar casi nada.
Si necesitas algo más, aquí estoy.
Si me actualiza toda la tabla pero sabes que yo utilizo esto ANALISISSUPER = Format(ANA_SOL_S, "0.0") para que me me salga un solo decimal redondeado donde ANALISISSUPER es el nombre del cuadro de texto, yo puse esta formulita en la instrucción de SQL en la consulta pero cuando la ejecuto me sale como resultado -1.
Mil Gracias por toda tu colaboración
El hecho de que te salga un valor -1 me hace pensar que al poner la fórmula haz debido meter algún operador de más, ya que ese es el equivalente numérico del valor lógico VERDADERO. Para no volvernos locos, te vuelvo a poner la fórmula incorporando la función Format():
UPDATE Puntajebruto SET Puntajebruto.ANA_SOL_Y = Format(([ACO_Y]+[ANA_Y]+[CRI_Y])/3,"0.0"), Puntajebruto.ANA_SOL_J = Format(([ACO_J]+[ANA_J]+[CRI_J])/3,"0.0"), Puntajebruto.ANA_SOL_S = Format(([ACO_S]+[ANA_S]+[CRI_S])/3,"0.0"), Puntajebruto.ANA_SOL_O = Format(([ACO_O]+[ANA_O]+[CRI_O])/3,"0.0");
La he probado y funciona sin problemas haciendo lo que tú quieres, así que con ella deberías poder trabajar sin problemas. En cualquier, sigo a la escucha :)
Gracias Sherdal eres un Sol, si estaba poniendo así = Format(ANA_SOL_O, "0.0"), parece mentira pero hay tanto con que jugar cuando uno hace este tipo de cosas, bueno perdona todas las molestias y te vuelvo miles de gracias y estoy a la orden para lo que sea

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas