Discussion:
Macro Access que compruebe si existe un registro en una tabla con el asistente de control de flujo de programa
(demasiado antiguo para responder)
Rodrigo Garcia
2017-10-02 16:23:27 UTC
Permalink
Hola,

Tengo una BBDD de Access 2010 únicamente con datos (sin formularos, informes ni nada de eso) en la que tengo varias tablas y ficheros vinculados que cruzo entre sí para mostrar como resultado final un conjunto de datos a enviar por correo electrónico.
Quiero hacer una macro que en función de los datos de una tabla, envíe un correo con un texto u otro, para lo cual había pensado usar la clausula "Si" de control de flujo del asistente de creación de macros.

Al poner la condición me devuelve el siguiente error:

Microsoft Access no encuetra el nombre 'Tabla' que ha especificado en la expresión. Es posible que haya especificado un control que no estaba en el objeto actual sin especificar el contexto correcto del formulario o del informe.
Para hacer referencia a un control de otro formulario o informe, anteponga al nombre del control el nombre de una colección. Este normalmente es Formularios o Informes, y el nombre del formulario o del informe al que pertenece el control. Por ejemplo, Formularios![Productos]![Unidades en existencias].

Cuando la macro para muestra la siguiente info:
Nombre de la macro: "Prueba envio correo"
Condición: [vacío]
Nombre de acción: "EstablecerVariableLocal"
Argumentos: __*L0_;[Tabla]![Campo]="valorQueBusco"
Número de error: "2482"

Mi expresión es tan simple como:

´ Tabla.Campo = "valorQueBusco"

¿Por qué el error hace referencia a formularios y a informes cuando simplemente le indico que busque un valor en una tabla que existe? ¿He de realizar el control de flujo de la macro de alguna otra forma? La tabla la he seleccionado con el asistente puesto que no hay errores por haberlo escrito mal.
¿Puede ser que las estructuras de control de flujo de programas en Access 2010 estén pensadas para hacer otra cosa?

Si fuera así, ¿alguna alternativa?
Los correos los tengo ya definidos con la acción "EnviarPorCorreoObjetoDeBaseDeDatos" que he comprobado que por sí solo, envía lo que quiero en ambos casos, solo me queda ver como consigo que envíe uno u otro en función de la condición.

Muchas gracias!
José Mª Fueyo
2017-10-03 07:13:54 UTC
Permalink
Hola
¿La tabla está accesible? ¿como accedes a ella?

Salu2,
José Mª Fueyo
Rodrigo Garcia
2017-10-03 08:28:17 UTC
Permalink
Hola José Mª,

No sé muy bien a qué te refieres con si es accesible. La tabla es un fichero vinculado con 3 registros y he comprobado que puedo abrirlo sin problemas desde Access. También puedo realizar consultas sobre el sin problemas desde la pestaña de Crear > Diseño de consulta.

Por si el hecho de que sea un fichero vinculado tuviera alguna relavancia, probé a convertirlo en tabla y ocurría el mismo error.
También he probado a cerrar el acceso y a volver a abrirlo, también lo he compactado y nada, el resultado es el mismo : /

Un saludo
Rodrigo Garcia
2017-10-03 08:36:40 UTC
Permalink
Hola José Mª,

No sé muy bien a qué te refieres con si es accesible. La tabla es un fichero vinculado con 3 registros y he comprobado que puedo abrirlo sin problemas desde Access. También puedo realizar consultas sobre el sin problemas desde la pestaña de Crear > Diseño de consulta.

Por si el hecho de que sea un fichero vinculado tuviera alguna relavancia, probé a convertirlo en tabla y ocurría el mismo error.
También he probado a cerrar Access y a volver a abrirlo, también lo he compactado y nada, el resultado es el mismo : /

Un saludo
Rodrigo Garcia
2017-10-03 08:53:05 UTC
Permalink
Aquí un ejemplo donde muestro lo que tengo en la macro, donde quiero comprobar si existe un registro con el nombre "Fichero PS" en el campo "Nombre fichero" de la tabla "Ficheros actualizados".
También pongo la tabla que puede verse que existe y que puedo abrirla.
Rodrigo Garcia
2017-10-03 08:54:29 UTC
Permalink
Perdón por spammear el hilo...Soy un desastre. Aquí la imagen:

http://es.tinypic.com/r/iqy8fb/9

Un saludo

Loading...