Imprimir página | Cerrar ventana

NO ACTUALIZA CONSULTA

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=87070
Fecha de impresión: 26/Marzo/2026 a las 15:43


Tema: NO ACTUALIZA CONSULTA
Publicado por: trple XXX
Asunto: NO ACTUALIZA CONSULTA
Fecha de publicación: 12/Mayo/2025 a las 04:48

BUEN DIA PARA TODOS!!!

El problema   es   el  siguiente.

Tengo un formulario que  tiene dos  combos  para  buscar  un registro  ; los  combos los  hice  con el asistonto para combos;  la busqueda en el  formulario es por comboID (alfanumerico) o por comboNOMBRE .  La busqueda la hace perfectamente .

A mi se me facilita mucho llevar la informacion que necesito a travez  de variables temporales,  entre  los  diferentes  formularios ,  funciones y en general en todo el proceso.  Continuamos  con la  exposicion del problema...

Del  registro encontrado utilizo  el campo ID y el campo mes (mumero del 1 al 12) para  encontrar el mes que necesito procesar,tengo la siguiente connsulta:

SELECT TOP 1 PAGOS.IDPPLACA, CLIENTES.NOMBRE, CLIENTES.VEHICULO, PAGOS.OBSERVACIONESP, PAGOS.IDPAGO, PAGOS.MES, PAGOS.FECHA_PAGO, PAGOS.PAGADOPOR, PAGOS.VALOR_PAGO
FROM CLIENTES INNER JOIN PAGOS ON CLIENTES.IDPLACA = PAGOS.IDPPLACA
WHERE (((PAGOS.IDPPLACA)=[TempVars]![parabuscar]))
ORDER BY PAGOS.IDPPLACA DESC , PAGOS.IDPAGO DESC;  

He probado la  consulta y trabaja perfectamente  (encuentra el ultimo  mes  registrado  del registro),  hasta  aqui parece que  todo  esta  normal;   el problema  concreto  es  que al buscar  al primer registro para  este caso  el id = ASD345  en  el  formulario lo encuentra correctamente pero algunas  veces no actualiza la consulta .  probando el problema se presenta en la busqueda  del primer  registro para  el  caso  id = ASD345  si   busco otros registros y luego el  ASD345

MMmmmmmm...  este  es  el codigo  del  formulario


TempVars!parabuscar = Me.IDPLACA.Value 
Dim NUMEROMES As Integer
Dim mesquesigue As Integer
NUMEROMES = DLookup("MES", "CONSUPAGO")
TempVars!NUMEROMES = NUMEROMES
If IsNull(NUMEROMES) Then
MsgBox "el mes esta  en blanco o esta errado..!!!"
Else
Me.txtnombremes = NombreMes(NUMEROMES)
End If

El codigo  esta  en el evento current   del  formulario  el cual  creo  que es el mas adecuado; podrian  ustedes opinar   si  es  el evento mas  adecuado??? o  si hay  algo "raro"   en el codigo??? 

  


-------------
SOLO SE QUE NADA SE



Respuestas:
Publicado por: xavi
Fecha de publicación: 13/Mayo/2025 a las 08:45
Hola,

Confieso haber leído 3 veces el mensaje sin entender tu lógica. Supongo que no soy el único o ya habrías recibido alguna respuesta.

Mis primera duda: dices tener una consulta que no sabemos dónde ni cuando la usas/necesitas y nos pones un código que no parece tener nada que ver con esa consulta.

Recuerda que nosotros no sabemos nada de tu aplicación, así que intenta explicarlo de manera que podamos entender algo.

Un saludo




-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: trple XXX
Fecha de publicación: 14/Mayo/2025 a las 02:23
  L a   consulta  se usa  aqui

NUMEROMES = DLookup("MES", "CONSUPAGO")


La pregunta nuevamente  es   que  si  ese  codigo  esta  bien  en  el evento  current o en  que  otro  evento seria  mas  conveniente para  que no suceda el problema. ..(NO ACTUALIZA LA CONSULTA TODAS LAS VECES)  

GRACIAS


-------------
SOLO SE QUE NADA SE


Publicado por: pitxiku
Fecha de publicación: 15/Mayo/2025 a las 22:17
Todo va a depender de lo que necesitas:

- Si necesitas que ese DLookup esté en el evento Current, tendrás que dejarlo ahí y asegurarte de actualizar la variable temporal (llamando al evento donde se actualiza, copiando y pegando código antes del DLookup...)

- Si no necesitas el DLookup en ese evento, colócalo en el evento que precises, y ahí verifica o asegura que se actualiza la variable antes de la función

Recuerda que si tus combos son de búsqueda, seguramente no están vinculados a un campo de la tabla o consulta del formulario, por lo que no se actualizan cuando usas el evento Current, que solo tiene en cuenta los controles asociados a campos.


Publicado por: trple XXX
Fecha de publicación: 29/Mayo/2025 a las 03:17

Gracias

se puede cerrar el hilo , utilize  recordset


-------------
SOLO SE QUE NADA SE



Imprimir página | Cerrar ventana