Access - Verificación que no me abre un cuadro de mensaje

 
Vista:
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 07/08/2020 18:25:15
Hola a todos y gracias anticipadas por la gran ayuda que me ha supuesto este foro para resolver ciertas dudas a la hora de trabajar con access.
Necesito vuestra ayuda para un problema que tengo que en principio no tendría que tener mayor inconveniente, pero llevo semanas intentando solucionarlo y no hay forma humana, de ahí que tenga que recurrir a gente experta como vosotros.
Tengo que comentar que no sé programar, de modo que utilizo Access con macros, fórmulas, etc…
Resulta que tengo un campo independiente Si/No llamado [Verificación33] el cual se activa cuando se hace el siguiente cálculo:
=[Texto24]>=[Próximo Mantenimiento]=-1
[Texto24] es un campo independiente donde se realiza la suma de horas de uso de tractores. Esta información se encuentra en un subformulario:
=[Horas Tractores Subformulario].[Formulario]![Texto11]
[Próximo Mantenimiento] es un campo numérico de la Tabla Tractores donde se especifica las horas a las que hay que hacer el próximo mantenimiento.
Pues bien, si os dais cuenta sólo hay que hacer una comparación para ver si la suma de las horas de uso de un tractor es superior al número de horas en las que hay que hacerle el mantenimiento.
Todos los cálculos se realizan correctamente, pero el PROBLEMA viene cuando necesito hacer una macro que me avise cuando abro la base de datos en el que me avise si hay algún tractor donde [Verificación33] sea igual a -1. No sé si me explico bien.
He intentado hacer consultas, he creado un campo de verificación en la tabla tractores para que se marque cuando se produzca el cálculo, pero se hace el cálculo en el formulario pero no se guarda el valor en el campo de la tabla. He utilizado la macro Establecer Valor para guardar el valor en el campo, pero el problema es que tengo que poner la macro en el evento recibir enfoque, y para eso tengo que hacerlo yo manualmente, es decir, tengo que ir pulsando la tecla tabulador para pasar sobre los diferentes campos donde se hacen los cálculos hasta llegar al campo de verificación. De este modo se guarda el valor en el campo, pero no me sirve porque lo tengo que hacer de forma manual.
He probado a hacer un informe, donde me aparece la marca de verificación de los tractores que necesiten hacer el mantenimiento, pero esto sólo me sirve para ver de forma diaria el informe, lo cual no es práctico, porque lo que quiero es que una macro revise el campo [Verificación33] y cuando vea que tiene valor -1, que es cuando estaría activado, me apareciera un cuadro de mensaje avisándome que tengo que hacer el mantenimiento del tractor que corresponda.
¿Puede alguien sacarme de este atolladero sin salida en el que me encuentro?
Se lo agradecería enormemente.
Si me facilitaran unas líneas de programación de Visual Basic, os tendría que dar yo los nombres exactos de los formularios, subformularios y consultas que están relacionadas, y explicarme como y donde debería de añadirlo.
Si fuera a través de alguna consulta, macro, etc… creo que yo podría seguir vuestras indicaciones para que me funcione el aviso que necesito.
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

Verificación que no me abre un cuadro de mensaje

Publicado por Anonimo (3319 intervenciones) el 07/08/2020 22:54:43
Se puede plantear la opción de crear una consulta (que podría ser el origen para un formulario o un informe, incluso un simple mensaje)...

Y si se puede ¿hay alguna experiencia con consultas de datos agrupados?

Para poder optar a que al abrir la aplicación, esta nos avise de algo (sea un cumpleaños de un conocido o la revisión de una maquina) no importa que sea con VBA o sin el, hay que automatizar tareas que proporcionen datos en tiempo real (guardar campos calculados no siempre es la mejor de las opciones).
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 08/08/2020 18:49:54
Muchas gracias por tu respuesta, aunque la consulta a la que te refieres ya la tengo creada. En esa consulta están relacionadas las tablas tractores y horas de trabajo, de forma que se toman los datos necesarios de una y otra para hacer el formulario, el subformulario y el informe, pero eso no me soluciona el problema, ya que el problema en si es que no puedo almacenar el valor -1 en el campo de verificación que he creado en la tabla tractores.
Todo esto que cuento estaría solucionado si esa marca de verificación que me indica cuando un tractor necesita ir a revisión se añadiera en el campo que he mencionado.
Lo más que me he acercado a tener listo el problema ha sido creando un evento al recibir el enfoque donde he utilizado la macro establecer valor. De esta forma si que se le puede dar el valor -1 al tractor que necesite ir a revisión, pero hay que hacerlo de forma manual, lo cual no me es práctico, porque para eso veo diariamente el listado de tractores uno por uno en busca de cual necesita la revisión.
Si alguien me pudiera decir como puedo crear una macro en la que se pulsen dos veces la tecla tabulador, creo que tendría resuelto el problema, porque ese es el paso que me faltaría para resolverlo sin programación.
¿Sabrías decirme como se puede hacer?
Te comento que he probado con ENVIAR TECLAS con la sintaxis {Tab2{ (entre llaves) pero no me funciona.
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

Verificación que no me abre un cuadro de mensaje

Publicado por Anonimo (3319 intervenciones) el 08/08/2020 21:28:37
Si ya tienes una consulta que obtiene esos datos, crea una copia o utilízala como origen de datos y en esta (la nueva) filtra por los que cumplan las condiciones.

No veo la necesidad de marcar nada ni guardar nada pues los datos serán los reales y en tiempo de ejecución.
Si lo has logrado, utilízala para genera un formulario o un informe y bien con la macro AutoExec o o activa la opción de abrir (el formulario o el informe) en la apertura de la base.

Tengo la impresión de que a esa consulta le falta un detalle, por ello hay que navegar por el formulario para obtener ese dato.
(o quizás me he perdido algo)

Al respecto de la macro 'enviar teclas' ... prudencia, porque enviará las teclas al objeto activo y si se va el foco a otro sitio el resultado es impredecible, confirma (cuando utilices esa opción) que cada cosa este en su lugar.
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 08/08/2020 22:04:51
Es difícil expresar por escrito lo que me ocurre. Lo mejor sería hacer un vídeo para que podáis ver que no es tan sencillo lo que quiero hacer.
Para empezar, los filtros que hago con las macros no me funcionan correctamente porque hay un ligero retardo entre la ejecución de la macro, que es muy rápida, y la muestra de resultados en el campo donde está la fórmula que indica el tractor que le toca la revisión. Este resultado tiene un retardo de unos cuantos milisegundos, lo justo para que la macro no pueda pararse en el campo que tenga el valor -1.
He echo copias de la consulta, tal como me dices, y he probado muchas opciones, pero ninguna me funciona.
Ha llegado un punto en el que estoy bloqueado y por eso necesito la ayuda de otras personas, para ver si con sus aportaciones podemos conseguir el objetivo del programa, que es avisar cuando hay un tractor que le toca la revisión cuando ha llegado a un número de horas determinado.
El planteamieto es súper sencillo, pero chicos, no hay forma de conseguir el resultado.
Nunca se me había complicando un tema tanto como este. En otras ocasiones, cuando se me complicaba algo, echaba mano de los foros, vídeos, google, pero en esta ocasión no he encontrado nada.
Os pongo tres imágenes para que podáis ver como es la consulta que tengo, que datos me muestra el informe, al cual quisiera hacerle una macro para que abra el informe, ver si hay una marca de verificacion, y en ese caso, abrir un cuadro de mensaje avisando de que hay que hacer la revisión al tractor correspondiente. En la imagen del formulario podeís ver las fórmulas que he puesto en los campos que intervienen en la consulta.
Por lo que veo, cuando un campo tiene una fórmula, el resultado no se almacena en él, motivo por el que no puede hacer la consulta con el criterio en -1 para el campo irarevisión.
Espero que me podáis ayudar, porque estoy desesperado.
Muchas gracias anticipadas.

imagen1
imagen2
imagen3
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

Verificación que no me abre un cuadro de mensaje

Publicado por Anonimo (3319 intervenciones) el 08/08/2020 23:53:06
No tienes el enfoque correcto por eso no llegas a ninguna parte.

Vamos a suponer que una maquina cualquiera tiene un numero xx de horas trabajadas y se le hace la revisión, en este momento se conoce el numero real de horas trabajadas y (se supone) que se conoce el numero de horas entre revisiones (pongamos que cada 40 horas y me es indiferente la cifra).

Su ecógrafo (o el medidor que se utilice) dice que tiene 400 horas acumuladas, así que la próxima será a las 440 horas ¿es correcto?.

Vuelve a la rutina de trabajo y (con el método que se utilice) se van anotando las horas de trabajo ¿seguimos en la línea correcta? ....

Se abre la base de datos y se recalcula (en micro instantes) con una consulta de datos agrupados, las horas reales trabajadas de todas las maquinas bajo control.

En esa misma consulta 'aparece' el campo fantasma (fantasma porque no se va a guardar, no tiene sentido hacerlo) que no es mas que 'la simple comparación' (mayor/menor), de esa suma con la que el taller indico que seria la de la próxima revisión. ¿seguimos en la línea correcta?

Esa comparación devuelve un SI/NO y se le puede condicionar en base al resultado de la comparación ... que solo salgan los IDs de las maquinas que han superado las horas (sea el si o el no según se plantease la condición)

Por cierto: se trata de una consulta de datos agrupados, utilicemos solo los indispensables normalmente el ID de la maquina, sus horas trabajadas (que serán las que se sumaran) y el campo de referencia (las horas de la próxima revisión), y solo se muestra al ID de la maquina (el equivalente a un listado de IDs)

Se utiliza esa consulta (la lista de IDs) para condicionar el origen de datos del resto de datos necesarios para identificar que maquina y que revisión se le hará (el ID de la maquina debería ser el elemento común).

Se crea un formulario en el que en base a ese origen de datos muestre las maquinas a las que le toca la revisión y ... se supone que irán al taller, una vez finalizada la revisión en el taller se vuelve a recalcular las horas y como serán superiores a las actuales ya no saldrá mientras no vuelva a cumplirse la condición.

Este formulario puede predeterminarse que se ejecute al iniciar la aplicación o cuando se le necesite y hemos llegado al final del objetivo que se pretendía: obtener un listado -en tiempo real- de maquinas a revisar ... sin una mísera macro ni utilizar VBA.

Quizás (desconozco tu nivel) no sepas que en una consulta se pueden eliminar las relaciones de las tablas y crear otras.
Si es de solo lectura (el presente caso) no dará problemas.
Los daría si se intentan crear o modificar registros y se contradicen las reglas y relaciones reales de los datos.
Estas modificaciones solo sirven y se aplican en y para la consulta,
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 09/08/2020 00:16:57
El planteamiento que me has descrito es el correcto, es decir, así lo tengo hecho. Sólo me falta probar la consulta de datos agrupados, de modo que voy a ponerme manos a la obra y te digo como me ha ido, Vale?
Tiene buena pinta como me lo has explicado.
Muchas gracias.
Voy a ver si me funciona...
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 09/08/2020 01:01:10
He probado la consulta de datos agrupados pero no me funciona.
Adjunto tres imágenes para que puedas ver lo que ocurre.
Resulta que en la tabla aparece el campo IRAREVISION sin marcar, pero en el formulario/informe si que hay dos tractores en los que el total de horas es mayor que las horas del próximo mantenimiento, de modo que les toca hacer la revisión.
En la consulta puedes ver que la he agrupado por el campo IRAREVISIÓN donde sea -1, pero como en la tabla no aparece ese valor en el campo en cuestión, tampoco me aparece el resultado en la consulta.
¿Porqué me está pasado esto? Es que no lo entiendo. ¿Será porque en origen del control del campo IRAREVISION le he puesto la fórmula que aparece en la iimagen3?

imagen5
imagen6
imagen7
imagen3
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

Verificación que no me abre un cuadro de mensaje

Publicado por Anonimo (3319 intervenciones) el 09/08/2020 10:57:01
Vamos a partir de concreciones, porque de momento (al menos por mi parte) solo hay teorías basadas en lo que paso a paso expones (que para ti que lo has creado sobra y basta y para el resto del mundo .... según el enfoque le sobra o le falta información).

Partamos de una certeza que compartimos: al superan las horas efectivas de trabajo las horas previstas de las revisiones ... la maquina tiene que descansar y pasar la revisión ¿correcto?.

Para ello NO importa ni la marca ni el color o el tipo de revisión (que seria otro tema a plantearse si la maquina ha de ser revisada y ha de parar )... ¿Qué revisiones futuras y próximas podemos adelantar? .. solo con el fin de que este detenida el menor tiempo posible (pero es otra historia, primero la revisión que corresponda el resto ... ya se vera )

Así pues utilizamos en la consulta de agrupación solo los campos indispensables (para que agrupar por color o tamaño -lo que no se sabe- si tiene que ser revisado) esto es solo se precisa:

.- El ID que identifica a cada maquina (si no existe ... se crea y punto) sea su matricula o su numero de serie o una combinación de datos que permita referirse a ella y la identifique como única)

.- El campo de horas -reales- que ha trabajado y trabaja (en la consulta se sumaran, solo se necesita el dato a sumar y que se agruparan por ID)

.- El numero de horas que se utilizara como fiel para (comparando la suma obtenida con este dato) devuelva un SI/No - este dato en ningún momento se guardara, no vale la pena: mañana trabajara mas horas (las que corresponda) y ese dato guardado no tendrá valor ni sentido.

Ejecutada esa consulta ¿Qué obtenemos?: un listado fiel que nos dirá que maquinas precisan revisión y que maquinas no la precisan ... si condicionamos a la consulta para que ignore las -no- ya disponemos de una referencia reutilizable: un listado de IDs.

¿Qué mas se precisa? a sí:
.- los datos de la maquina (marca, modelo ... por si requiere especialista).
.- el tipo de revisión ...no es lo mismo cambiar el aceite que la correa de distribución o afilar la herramienta ...
.- cualquier otro dato de utilidad (si esta o no en garantía por ejemplo)

Todos ellos -en una base correctamente estructurada- se deberían poder obtener en base al ID de la maquina (y lo tenemos, para eso es la consulta de datos agrupados anterior)

Se crea la consulta que devolverá los datos de las maquinas y se añade (como si de una tabla se tratase) a la anterior consulta, aquí aparece lo útil que es poder modificar las relaciones 'en y para' las consultas, nos permite exigir que solo muestre las que coincidan (el listado de las 'a revisar y todas las maquinas sin importar su revisión).

A mayores....
Esa consulta es un origen de datos valido para utilizar con una función de dominio ¿DCount? ....

.- si devuelve un cero (no hay maquinas a revisar) fin de la historia
.- si devuelve cualquier otro valor (el numero de maquinas que necesitan ser revisadas) se ejecuta el informe o se abre el formulario (ese que tiene los datos de las maquinas) y se organizan como sea adecuado (algo que sale de este entorno y depende de la metodología de la empresa).

Como epilogo....
Una muestra (con datos figurados y solo con lo básico) de esa aplicación, permite proponer y simular ejemplos
Sinceramente: no tengo ninguna intención de 'inventarme' un entorno que probablemente no se asemeje lo suficiente al real y teórico aquí mencionado, me parece una perdida de tiempo simular un entorno que (se supone) ya existe.

Es tú (vuestras) aplicaciones y me parece estupendo que protejáis vuestra propiedad intelectual, pero si vais al medico tendréis que soportar que meta la cuchara en la boca para ver si están inflamadas las anginas (no le vale la boca de otro paciente aunque sea un hermano gemelo)
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 09/08/2020 11:45:09
Lo hemos conseguido!!!
Muchísimas gracias por tu ayuda y por tu tiempo.
Haciendo una suma del total de horas y poniendo como criterio que muestre el total que sea mayor que las horas de Próximo Mantenimiento es como aparece el filtro de los tractores que hay que enviar a revisión.
Pero ahora me surge otro reto, que quisiera trasladarte para ver si me puedes llevar por el camino de la luz, jajajaja....
Ya que tenemos la consulta correcta, la cual nos muestra los tractores que tienen que ir a revisión, necesito que me aparezca un cuadro de mensaje que me avise cuando haya un tractor que tenga que ir a revisión.
¿Para ello se necesitaría una macro que realice los siguientes pasos:?
- abrir la consulta,
- utilizar SI para poner la condición de si hay un total de horas mayor que Próximo Mantenimiento
- cuadro de Mensaje que muestre el tractor que va a revisión
¿Es difícil conseguir esto?
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 09/08/2020 12:05:55
He creado esta macro pero me abre la consulta y cuando llega a la condición, access me dice que no encuentra el nombre Horas tractores para Revisión, que es precisamente como se llama la consulta.

¿Que es lo que estoy haciendo mal?

imagen8
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 09/08/2020 12:36:40
La macro de antes no estaba bien definida.
Esta que he puesto es como debería de funcionar, pero como he dicho antes, la macro no sabe buscar en la consulta si el campo Marca/Modelo está vacío o no.

¡NECESITO VUESTRA AYUDA, POR FAVOR!

Consiguiendo hacer funcionar esta macro, se consigue el objetivo final de lo que necesito, un aviso para llevar los tractores a Revisión.

Salludos!!!

imagen8
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

Verificación que no me abre un cuadro de mensaje

Publicado por Anonimo (3319 intervenciones) el 09/08/2020 12:38:35
Creo que ese punto esta tratado antes (como comentario cuando hice mención a la función de dominio DSUM).

Aclaremos:
Las consultas GUARDADAS (esto es: las que aparecen al abrir la base) el motor de Access verifica que sean correctas y las prepara para ser ejecutadas (le lleva un tiempo al abrir, lo gana al utilizarlas pues están sintácticamente verificadas).

Supongamos que a la consulta (la que devuelve el listado de IDs a enviara al taller) se la llama 'Revisiones'
Esta consulta no es mas que un conjunto de datos que Access trata como DOMINIO y se puede utilizar como origen de datos para .... una función de dominio.

Por otra parte, para Access (y en general para cualquier base de datos) ¿Qué se define como False?: SIEMPRE es el valor CERO ya sea con un solo bit (0/1) o con 50 bytes (todos a cero para False y en otro caso TRUE).

Conclusión:
0 = FALSE
<> 0 = TRUE
(no hay que dejarse engañar por el valor -1, Access lo aplica por defecto como verdadero porque hay 'menos riesgo de colisión' con los datos reales)

Tenemos un dominio y en función de datos que no tienen importancia para el caso, puede darse la circunstancia de que no devuelva resultados (no hay registros = 0 ==> False) o exista cuando menos uno (Hay registros <> 0 ==> True)

La formula:
DCount ("*","Revisiones")
.....se puede forzar la comparación:
DCount ("*","Revisiones") <> 0

Apreciaras que utilizo el asterisco, es la ambigüedad para Access (se cuentan registros, no campos o cálculos de/con campos) es un dato que solo sirve para compatibilizar las funciones de dominio y la reglas de sus tres parámetros

.. la función CUENTA (Count) devuelve el numero de registros de la consulta y Access interpretara (como en cada condicionamiento) una simple respuesta:
O se cumple la condición (es Cierto: True/Verdadero/Sí y por tanto diferente de cero)
O no se cumple la condición (es Incierto: False/Falso/No y por tanto igual a cero)

.- Si se cumple se ejecuta la acción abrir ¿formulario, informe, un mensaje ...? lo que disponga el programador

.- Si no se cumple ... propongo que no haga nada, pero puede salir un MsgBox que salude al usuario
(y que a la quinta vez le moleste por tener que cerrar una ventana emergente que no sirve para nada a efectos prácticos)

No funciono con macros y (si quieres 'aprender' ) utiliza la opción de convertir macros y ojea 'como se lo monta Access' veras que sencillo es el VBA y como puedes conseguir mas poder sobre Access si te liberas del yugo de las macros (que son buenas, pero por definición limitadas).

Por cierto ... Tú lo has conseguido (para mi estaba claro desde la ojeada al primer mensaje del hilo)
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 09/08/2020 13:07:08
Amigoooo!!!! Ahora si que si

Ya lo he conseguido, pero siempre con tu ayuda.
Cono la macro no me reconocía la consulta, lo que he hecho ha sido crear un formulario de esa consulta en concreto, la que me filtra los tractores que van a revisión, y ahora si que me funciona la macro.

Me avisa cuando hay algún tractor listo para revisión.

¡Qué alegría me has dado hoy, amigo!!

Gracias a esta web y a ti, he conseguido salir del atolladero en el que me encontraba desde hace semanas.

Cuando te salen las cosas en Access, es una maravilla, pero como se te complique algo, es odioso.

Lo repito, muchísimas gracias por tu ayuda y por tu tiempo.

Un fuerte abrazo y que tengas un buen día.

Hasta la próxima.
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 09/08/2020 18:42:12
Estaba tan contento porque parecía que ya había solucionado el problema que tenía con la comparativa para avisar de las revisiones de los tractores, cuando me encuentro con otro inconveniente. Es lo siguiente:

He creado una macro para que me aparezca el cuadro de mensaje cuando hay que enviar un tractor a revisión, pero resulta que si no hay ningún tractor, access me dice que no coinciden los tipos.

Adjunto tres imágenes para que veáis como he hecho la macro y el error que me aparece.

Para que la macro se cierre sola cuando no haya ningún tractor para ir a revisión había pensado en decirle que cuando el campo [Marca/Modelo] esté vacío, que se cierre el formulario donde deben de aparecer los tractores y, de paso, finalice la macro en sí.

¿Qué estoy haciendo mal?

Solucionando este detalle, tengo el problema finiquitado y puedo seguir trabajando.

Muchas gracias anticipadas, amigos!!!

Sin-titulo1
Sin-titulo2
Sin-titulo3
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

Verificación que no me abre un cuadro de mensaje

Publicado por Anonimo (3319 intervenciones) el 09/08/2020 19:56:28
Es normal que no coincidan los tipos, ningún 'tipo' es un Null (un Null es como mucho un incordio) y el valor Null aparece cuando se abre un formulario que tiene un origen de datos vacío y se hace referencia a un objeto que no existe (no se crean los cuadros de texto).

La forma mas sencilla de evitar estos problemas es no abrir formularios u informes que no tengan datos (es un trabajo perdido).

Infórmate de si tiene datos y de tenerlos ábrelo, de no tenerlos ignóralo ¿como? ... simplemente cuenta los registros de su origen de datos (la consulta o la tabla) un DCount devuelve ese dato y ... en fin dale un repaso a la anterior, creo que la felicidad de ver la luz al final del camino, te hace perder nuevamente el rumbo.

Haz lo mas inteligente: analiza los procesos seguidos y aprende una forma mas de hacerlo y por el camino ... aplica lo que aprendes y conoces para llegar mas lejos.

Nota:
Las funciones de dominio tienen TRES parámetros, aquí (y para las situación planteada) solo se han utilizado dos (y una de forma ambigua), si se desea conocer si hay algún tipo concreto de dato (por ejemplo cambios de aceite) pregúntaselo, deberías tener los tipos de revisión creados y si cambiar aceite es el tipo '2' pues ... aplica esa condición, un ejemplo (en base a lo publicado):

Sin condición:
DCount ("*","Revisiones")

Lo mismo con condición:
DCount ("*","Revisiones", "Tipo_revision = 2")
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
Imágen de perfil de Impaciente
Val: 81
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Verificación que no me abre un cuadro de mensaje

Publicado por Impaciente (29 intervenciones) el 09/08/2020 20:05:16
Ahora si es la definitiva!!!

Ya tengo la base de datos funcionando al 100%

Gracias a tu ayuda he podido solventar el problema con la macro.

De nuevo, no tengo palabras para poder agradecerte la ayuda que me has brindado.

Te envío un fuerte abrazo.

Hasta la próxima, porque seguro que la habrá, jajajaja.... Yo me defiendo un poco con access, pero no le saco todo el rendimiento que se le puede sacar porque no sé programar en Visual Basic.

PD:Cuando aparecieron los ordenadores Amstrad de disco, si que me hacía mis propios programas en lenguaje Basic, pero Visual Basic es diferente. Imagino que si me pongo a estudiarlo, podría utilizarlo sin ningún miedo, pero para eso necesito tiempo.
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