Access - .Requery no actualiza la propiedad .value

 
Vista:
sin imagen de perfil
Val: 23
Ha disminuido su posición en 44 puestos en Access (en relación al último mes)
Gráfica de Access

.Requery no actualiza la propiedad .value

Publicado por claudio (15 intervenciones) el 06/06/2020 13:42:59
Hola a todos.

Tengo un formulario con un combobox (CONCEPTO) y un cuadro de texto (IMPORTE), ambos independientes.
En IMPORTE el origen de datos es una consulta a una tabla en donde realiza un filtro tomando el valor de CONCEPTO.
En CONCEPTO, con el evento afterupdate, actualizo el IMPORTE con .requery.

Aparentemente funciona. El usuario escoge un CONCEPTO en el combo y en el cuadro de texto aparece el IMPORTE. Y si cambia el CONCEPTO, cambia el IMPORTE.

Pero resulta que IMPORTE.value no me lo asigna, no se por qué. Entonces esto me impide hacer otros cálculos.
Es decir, en el cuadro de texto IMPORTE veo escrito el valor, pero la propiedad IMPORTE.value es null, no cambia.

Me di cuenta que si pulso con el cursor, entonces sí, le asigna un valor. Probé a utilizar setfocus, pero no funciona. Solo si pincho con el ratón. De todos modos esto era un arreglo.

¿Por qué .requery no me asigna el valor dentro de .value?

Muchas gracias por adelantado!
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
Imágen de perfil de Francisco
Val: 467
Plata
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

.Requery no actualiza la propiedad .value

Publicado por Francisco (212 intervenciones) el 06/06/2020 18:20:10
Hola

Prueba con

1
Me.IMPORTE.Refresh

En el evento despues de actualizar en el Combobox de Concepto

Saludos
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
sin imagen de perfil
Val: 23
Ha disminuido su posición en 44 puestos en Access (en relación al último mes)
Gráfica de Access

.Requery no actualiza la propiedad .value

Publicado por claudio (15 intervenciones) el 06/06/2020 23:24:47
Hola, Francisco. Gracias por tu respuesta.

He probado lo que comentas y continúa ocurriendo lo mismo.

Cuando cambio el combobox concepto me sigue cambiando el contenido de importe, al menos visualmente. Digo visualmente porque importe.value sigue en null.

Como curiosidad, como ya dije arriba, si pincho con el ratón en importe entonces importe.value toma el valor que haya en ese momento, y aunque modifique el combobox concepto y visualmente importe cambie, importe.value se queda siempre con el valor que tenía cuando pinché con el ratón.

Por cierto, me acabo de dar cuenta que importe no es un cuadro de texto sino un cuadro de lista. Creo que lo puse así porque con un cuadro de texto no tenía la propiedad origen de la fila para vincularlo con el contenido del combobox concepto. No sé si esto influye.

Muchas gracias!
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

.Requery no actualiza la propiedad .value

Publicado por Anonimo (3316 intervenciones) el 06/06/2020 20:01:30
Porque 'Requery' toma el valor real que esta en la tabla u origen de datos y el dato que se visualiza solo estará en la tabla al guardar el registro.
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
sin imagen de perfil
Val: 23
Ha disminuido su posición en 44 puestos en Access (en relación al último mes)
Gráfica de Access

.Requery no actualiza la propiedad .value

Publicado por claudio (15 intervenciones) el 06/06/2020 23:27:45
Hola compañero/a, gracias por tu respuesta.

Yo en este caso no quiero guardar nada. Solo quiero que me muestre unos datos que hay en una tabla: concepto (elegido por el usuario en el combobox) e importe de ese concepto.

No vinculé el formulario a una tabla y saqué de ahí los datos porque no quiero que modifiquen nada, solo es informativo. Y si lo vinculaba a la tabla me temía que al seleccionar en el combobox lo que estaba haciendo era cambiar el registro en la tabla.

Mi problema es, no entiendo por qué, el cuadro de lista importe muestra visualmente algo que en importe.value no está. Lo necesito en importe.value (o en una variable) porque quiero hacer unos cálculos internos yo con eso.

Muchas gracias!
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

.Requery no actualiza la propiedad .value

Publicado por Anonimo (3316 intervenciones) el 07/06/2020 00:32:26
Primero:
REQUERY es una acción que solo tiene sentido cuando el objeto que recibe la acción esta vinculado a un origen de datos, la acción consiste en recuperar el valor actualizado de su origen.

Pudiera ser que se utilizase un DLookup y se obtiene un dato de una tabla (copia del dato, pues no esta vinculado) el requery podría obtener el valor actualizado.

Pero … o se le asigna con una acción de macro o su valor no es tal, su valor es la función (y muestra el resultado) pero el valor real será la función

Otro posible método de presentar un valor y no tenerlo realmente, es sincronizarlo con el combo, esto es:
En el combo varias columnas y una de ellas (normalmente oculta) se refleja en un cuadro de texto independiente
(se hace haciendo mención a la columna, la línea es la misma que el ítem activo)

En cualquier caso, este tipo de campos calculados no tiene valor real, el 'valor real' es su origen de datos, ellos son …

Un ejemplo:
En el cuadro de texto esta la suma de unos conceptos (los que sean), esa suma NO EXISTE como dato, lo que si existe es el conjunto de datos que ha dado lugar a esa suma, lo que muestra el cuadro de texto es una ilusión.

Para que en el cuadro de texto exista algo, ha de serle asignado con la macro 'establecer valor' o una asignación directa (con VBA).

Queda lo de 'pulsar con el ratón' …
Si se interactúa con el objeto (como es el caso de convertirlo en el objeto activo), interpreta que el valor que muestra es un 'valor predeterminado' y lo asume para la propiedad por defecto (propiedad por defecto ==> Value).

Con los datos que se aportan (suficientes para el que publica y escasos para el resto) es lo máximo que puedo aportar sin incurrir en errores (error de suponer que hay en un entorno que desconozco).

P.D.
Un cuadro de lista tiene también un origen de datos (como el combo), pero cada uno tiene una presentación y aplicación diferente y casi siempre compatibles con un combo equivalente, uno muestra un único dato, y solo uno de sus ítems es seleccionable, el otro muestra mas datos (líneas y columnas) y puede seleccionarse mas de un ítem.
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
sin imagen de perfil
Val: 23
Ha disminuido su posición en 44 puestos en Access (en relación al último mes)
Gráfica de Access

.Requery no actualiza la propiedad .value

Publicado por claudio (15 intervenciones) el 07/06/2020 23:44:09
Gracias anónimo por tus consejos.

Lamentablemente no debo tener el nivel suficiente y no entiendo muy bien cómo hacer ciertas cosas que dices.

Comentabas que aportaba escasos datos. Mira, yo tengo una tabla con concepto e importe.
Quiero en un formulario mostrar un combobox donde elijan un concepto de los que hay, y un cuadro de texto donde (cuando cambies el combo) refleje el importe de ese concepto.
Todo esto sin vincularlo a la tabla porque no quiero que hagan cambios en ella. Y tampoco lo puedo vincular y luego dejarlo bloqueado porque no podrían utilizar el combo.
Hago esto para luego en un subform utilizar el importe del cuadro de texto y hacer unos cálculos.

Como dije al inicio, parece que mis conocimientos no son suficientes para hacer eso de una forma sencilla. Yo pensaba que era sencillo, pero creo que no.

Intentaré cambiar el diseño para hacerlo de algún otro modo.
Gracias por tu ayuda igualmente.
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

.Requery no actualiza la propiedad .value

Publicado por Anonimo (3316 intervenciones) el 08/06/2020 01:35:52
Un combo puede tener mas datos de los que se muestran, y el dato que nteresa puede ser utilizado aun sin verlo.

.- Un combo:
.- Dos columnas
(en modo diseño se le pueden y debe indicar cuantas columnas tiene y cual de ellas muestra y cual de ellas es la 'útil')

.- Se le cargan los datos
(supongo que ese problema esta resuelto, oculto: pero resuelto).

.- en modo diseño --> pestaña formato --> dos columnas --> el ancho para cada una separado por punto y coma
(el valor CERO la oculta)

.- en modo diseño --> pestaña datos --> origen del control -- >NADA
(así es independiente, origen de la fila …. tu sabrás yo lo ignoro)

.- en modo diseño --> pestaña datos --> columna dependiente --> la que tenga el valor para el calculo.

El usuario selecciona uno de sus ítems (no importa si esta visible el campo con el que se efectuara el calculo, el elige lo que necesita, el jabón , la hoja de afeitar o la brocha, el precio se puede mostrar pero visible o no: existe).

Cuando se haga referencia al combo este devolverá el valor que tenga el ítem seleccionado en la columna predeterminada (en teoría el precio) y se multiplica por mil o por cero según se precise (sin mas cuadros de texto, búsquedas o trabajos innecesarios).

¿Es imprescindible que se vea el precio?... fácil un cuadro de texto y como origen de datos
= [el combo]
(mostrara el valor de la columna predeterminada … que es la que se utiliza para el calculo)

Atención!!! … el valor esta en el combo, en el cuadro de texto un la imagen como si fuera un espejo (se mira pero no tiene existencia real)

No me queda claro que se este jugando con las propiedades de los objetos y no se conozcan los objetos y sus posibilidades....

Y la información no es 'me compre un billete de lotería' es compre este numero para el sorteo de lotería que se celebrara el día xxxx. así todos hablamos de lo mismo, y podemos intentar visualizar ese entorno.
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
Val: 23
Ha disminuido su posición en 44 puestos en Access (en relación al último mes)
Gráfica de Access

.Requery no actualiza la propiedad .value

Publicado por claudio (15 intervenciones) el 09/06/2020 23:32:38
Por fin, muchas gracias, Anónimo.

La verdad que la solución final fue mucho más sencilla que lo que yo estaba intentando.

Como comentaste, lo que hice fue:
Un combo independiente con origen de fila en una consulta a una tabla donde hay concepto e importe. Con 2 columnas y con la de importe como dependiente.
Un cuadro de texto independiente con origen de datos el combo (el importe, al ser la columna marcada como dependiente). Este cuadro muestra el importe del concepto que está señalado en el combo y cambia cada vez que cambias el combo.

Sé lo que es la propiedad columna dependiente del combo pero en principio no se me ocurrió utilizarla y me estaba liando sacando el dato del importe del concepto señalado con una consulta adhoc, luego no me actualizaba bien ni me cogía bien el valor, me puse con el requery... en fin, un lío.

Respondiéndote, pues sí, anda con objetos y sus propiedades de los que no conozco todas sus propiedades. Creo que no conozco todas las propiedades de nada. Voy probando, equivocándome, buscando, etc. y voy aprendiendo. Y a veces, pregunto aquí también, donde gente amable como tú me ayuda.
Siento si no siempre di todos los datos necesarios, escribía los que consideraba útiles en cada momento. Si luego eran insuficientes, pues los ampliaba como hice.

Gracias, Anónimo, una vez más.
Un saludo.
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
sin imagen de perfil
Val: 23
Ha disminuido su posición en 44 puestos en Access (en relación al último mes)
Gráfica de Access

.Requery no actualiza la propiedad .value

Publicado por claudio (15 intervenciones) el 09/06/2020 23:36:36
Por cierto, no sabía que se podía poner la anchura de una columna de un combo a cero para así ocultarla pero seguir teniéndola para poder utilizar el dato.
Me lo apunto!
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