Varios campos combinados como filtros

Espero que el año haya empezado con buen pie.
Mira... A ver si me puedes aclarar una duda que tengo.
Yo quiero hacer un formulario en el que existan varios campos combinados que me sirvan de filtro, de tal manera que cuando pinche en uno se filtren los datos por ese campo y cuando pinche en otro se filtren por el suyo. Ejemplo: Formulario con 5 campos combinados: Empresa, Empleados, Situaciones, Material, Ventas. Pincho en Empresa y selecciono Telefónica, y se me filtran todos los registros de Telefónica, Pincho en Empleados y se me presentan todos los empleados de Telefónica, Pincho en Antonio, y se me presentan los datos de Antonio, y así sucesivamente.
He intentado hacer filtros con código en el evento después de actualizar de los campos combinados, pero sorpresivamente no me selecciona ningún dato a pesar de que me los presenta.
También podría ser un filtro parametrizable que se ejecute al seleccionar un botón y se quitara al seleccionarlo, pero no consigo obtener resultados de todas las pruebas que he hecho, incluso partiendo de cero.
Me gustaría que me ayudaras o me explicaras como hacerlo, si puedes.
Respuesta
1
Con lo de aplicar el filtro en el evento que se produce cuando cambias un valor, vas bien, pero posiblemente no lo estés haciendo bien.
¿Me puedes copiar una de las funciones que usas? Así le hecho un vistazo y te digo lo que no haces bien.
Te lo aclaro posteriormente, porque ahora si que tengo un problema y necesito resolverlo cuanto antes.
Necesito que al dar en un botón se genere automáticamente un informe en formato pdf.
Hasta ahora se ha generado como SnapShot mediante una macro y no ha habido problemas, pero no encuentro la manera de conseguir que se genere como pdf. Omagino que tendré que cargar algo en Access o escribir un procedimiento que me facilite el acceso a una impresora virtual, pero me da pánico utilizar otro programa para que se imprima algo que está en red.
En fin, si me puedes ayudar te lo agradeceré enormemente. Lo de los campos combinado como filtros lo vemos más adelante.
Muchas Gracias
Con access no puedes generarlo como Pdf, lo más fácil que puedes hacer es lo de la impresora que te genere el Pdf, aunque necesitas una aplicación de generación de pdfs.
Vale, ya he caído en que tendré que llamar a una impresora virtual.
No import, todos la tienen instalada, pero ¿Cómo llamo a la impresora virtual para que se ejecute desde Access?
He probado a crear una macro que ejecute un archivo exe, que es el que tiene la impresora virtual (CPWSave.exe), y le he dado la ruta, pero no lo abre.
¿Tu sabes como puedo hacerlo?
He intentado también meterle un control ActiveX que corresponda con algo de pdf, pero tampoco.
Debes generar un listado e imprimirlo por la impresora virtual, al imprimir por el conversor a Pdf, te genera en algún sitio lo que has impreso en formato pdf (no se en que directorio te lo deja), pero cuando averigües esto, solo tienes que cogerlo de donde te lo deje. De todas formas, mira la ayuda del control a ver como funciona, lo único seguro es que debas imprimir por la impresora que genera el conversor.
El fichero .exe que tienes debe ser el que te crea la impresora, y seguro que si lo ejecutas pasándole parámetros (mira la ayuda) puedes hacer que te genere la impresora con el nombre que quieras, así te aseguras del nombre que va a tener.
Solo tienes que lanzar el listado contra la impresora que has creado.
Vale, buena idea.
Lo que ocurre es que tendría que parametrizar la impresora para unos 197 ordenadores.
Eso es impsoble. Bueno... Imposible no hay nada, pero bastante difícil.
El exe. Del que dispongo es el ejecutable que lanza la impresora virtual. Lo que quiero es que cuando le peguen al botón, se abra la impresora virtual presentando el informqe que he preparado, pero no se como lanzarlo, ya que no es una aplicación Access. Sería mediante un fichero bat o algo así. ¿Sabes cómo se genera un bat? El código que hay que ponerle. Ya se que con el Bloc de Notas se puede escribir un bat, pero ¿qué hay que poner para que el sistema reconozca los comandos?
Gracias por tu ayuda.
El bat es un fichero de texto plano, lo único que debes poner es en cada linea lo que ejecutarías desde MsDos.
Otra opción que tienes es desde código de visual basic hacer un shell, y le pasas como parámetro el exe (con todo el path) y si quieres ponerle el nombre de la impresora, así no necesitas hacer un bat.
Ej:
shell "C:\impresoraPdf.exe"
No me funciona, me da un mensaje diciendo que este no es un programa de Microsoft.
Private Sub Comando0_Click()
Shell "C:\Archivos de programa\Acro Software\CutePDF Writer\CPWSave.exe"
End Sub
Evidentemente Acrobat no es de Microsoft, y supongo que por aquí viene el problema.
Debería funcionarte, yo lo he probado con un exe mio y si que funciona.
Copia el texto que has puesto (C:\Archivos de programa\Acro Software\CutePDF Writer\CPWSave.exe) en el ejecutar que tienes en el botón de inicio a ver si allí te funciona o te da un error
Me da este mensaje:
This program must be used with Cute Pdf Writer
¿Qué impresora virtual utilizas tu?
El problema es el programa que usas
Yo he trabajado con el Pdf creator, aunque no se si exite una versión de uso gratis
Con el pdf creator, puedes ejecutar un exe que te crea la impresora con el nombre que quieras, así la creas con un nombre fijo e imprimes sobre la impresora con ese nombre
Vale, muchas gracias. Me ha servidfo de gran ayuda y sobre todo se nota que sabes.
Por cierto, Alex, perdona que te de la lata pero te copio la última pregunta que he hecho.
Te prometo que cuando acabe con esto, te recompensaré, aunque sea con una cena.
Hola, necesito saber como realizar la siguiente operación.
En un botón de formulario, o bien en un evento "al abrir" de un informe se ejecutará una consulta que captura datos de dos tablas, obteniendo unas cantidades que ya figuran en una de las tablas.Esa consulta no hará más que aportar los datos para que se ejecute una función, es decir, no quiero que se presenten los datos de la consulta, sino que los almacene en memoria para después realizar una función.
"año nacimiento"= 1990
"año actual"= 2009
"nombre" = pepe
"edad"= 25
"estatura"= 170
"desviación"= 20
Quiero hacer una función que compare la edad y la estatura de pepe y si la desviación es mayor de un 20% (en la fórmula se dividirá la desviación entre 100 para convertirla a %) que me presente un mensaje. Cada persona puede tener una desviación diferente. La consulta seleccionará el nombre y los datos de esa persona y los años a comparar. Gracias por vuestra ayuda es urgente.Por favor estoy apuradísima.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas