Buscar en el mismo cuadro combinado distintos campos.

¿Cómo puedo hacer una búsqueda en un sólo cuadro combinado que me dé los valores de distintos campos?.

1 Respuesta

Respuesta
1
Mediante código que tendrás que colocar en el evento en el cual quieres que cambie la referencia incluyes esta línea:
Forms!nombredelformulario!nombredelcontrol.ControlSource = "nombredelcampo"
Lo que si es importante es que el formulario esté basado en la misma tabla donde están todos los campos que quieres variar.
perodna per no me habreé expresado bien... Quedría poder hacer una busqueda mediante un subformulario. y que en un sólo cuadro combijnado pueda elegir distintos campos de busqueda ya sea Teléfono, Teléfono 2, Móvil o Móvil 2. o si fuera posible que estos cutro teléfono los busque en el mismo cuadro sin tener que especificar que tipo de teléfono.
También he de decirte que soy muy novato y cuando me dices un códgo entoend que es el que has escrito pero la acción a ejecutar no me la has aclarado.
Por cierto gracias por contestar tan rápido.
Saludos
Disculpa, pero fui yo quien no entendió la pregunta. Aún así, viendo ahora lo que quieres, me surgen algunas dudas:
- ¿El cuadro combinado de dónde obtiene los datos? ¿De un campo de una tabla donde tienes todos los teléfonos? Porque si los datos están en distintos campos de una tabla, necesitarás un cuadro combinado por cada campo o si insistes en tener un sólo cuadro combinado deberás tener un control de selección para especificar de cual campo quieres tomar los datos. (Un campo a la vez, al menos que hagas una consulta previa para unirlos en uno sólo).
Si los datos están en una tabla en distintos campos (Teléfono, Teléfono2, etc...) la consulta debe tener esos campos de forma individual y en las líneas de criterios colocarás la referencia (mediante el generador de expresiones) al cuadro combinado del formulario que contiene el dato. Utilizarás una referencia a este cuadro combinado por cada campo en la consulta, pero en líneas diferentes, para que la búsqueda sea Or y no AND.
Luego en el mismo formulario en vista diseño, en el evento "Al cambiar" del cuadro combinado, escribirás el código para abrir la consulta o el formulario que asocies a la consulta con el resultado de la búsqueda.
Si es la consulta:
DoCmd. OpenQuery "nombredelaconsulta"
Si es mediante formulario asociado a la consulta
DoCmd. OpenForm "nombredelformulario"
Si lo haces como propones por medio de un subformulario los campos vinculados al formulario inicial no pueden ser cambiados mientras trabajas con el formulario abierto, sólo en vista diseño y justo cuando se abre el formulario.
Buenos días Tony,
Pero no lo he acabado de entender los pasos, no te importaría decírmelo por pasos ya que no entiendo biien en que consulta poner los criterios.
Siento mi torpeza.
No hay problema, pero para ser más concreto en la explicación, dime por favor, como es la tabla donde tienes los datos (Teléfonos).
- Están todos en un mismo campo (mezclados)
- Están en campos distintos según el tipo (Teléfono, teléfono2, móvil, etc)
- Están mezclados pero diferenciados por otro campo que define el tipo.
Dependiendo de esto te puedo decir como hacerlo.
Buenas tardes tony,
- Están en campos distintos según el tipo (Teléfono, teléfono2, móvil, etc).
Ya me dirás
No lo he probado, pero se me ocurre lo siguiente:
Crea el subformulario tipo tabla, basado en la tabla donde tienes los distintos campos de teléfonos, con una columna para cada tipo.
Luego vincula, con el asistente al crear el crear eincrustar el subformulario o mediante el generador si ya tienes el subformulario hecho cada tipo de teléfono del subformulario con el control del formulario que contendrá el teléfono a buscar. Esto último lo haces en la vista diseño del subformulario en la pestaña de datos, en la línea de vincular campos principales y secundarios, con el generador es más fácil.
Si esto no resulta, te diré que la búsqueda tendrá que hacerse por código de visual de una forma un poco más compleja. Inténtalo y me dices, sino buscamos otra solución.
Buenas tardes Toni,
Tendremos que tirar de Visual Basic.
Lo he intentado pero no lo lo coge bien.
Saludos
Antes de empezar con el Visual, prueba algo que está relacionado con una solución para subformularios que me preguntaron de una situación parecida.
En la hoja de propiedades del subformulario (en la vista diseño y pinchando en el vértice izquierdo del subformulario hasta que aparezca un cuadrito negro), vas a la ficha datos y Origen del registro escribes el siguiente código SQL. Supondré que el control del formulario con el número de teléfono se llama NUMTEL y la tabla se llama CONTACTOS.
SELECT CONTACTOS.Telefono,CONTACTOS.Telefono2, CONTACTOS.Movil FROM CONTACTOS WHERE CONTACTOS.Telefono= NUMTEL OR CONTACTOS.Telefono2=NUMTEL OR CONTACTOS.Movil=NUMTEL;
Si esto no funciona pasamos directamente a la otra solución.
Genial !... Eres el mejor funciona perfecto, y es muy fácil de hacer con la consulta de access, que al poner el SQL he visto com hacerlo en la consulta de access, funciona incluso con el nombre.
No he cerrado la pregunta ( Aunque creo que faltan estrellas para la solución que me has dado. .)Porque quierO perfeccionarlo un poco más con estas dios posibilidades que me gustaría tener.
- Hacer la búsqueda con el contiene. Sé que se hace con ] Pero no sé muy bien como debe quedar reflejada en la fórmula.
- Hacerla también con dos tablas diferentes.
Es decir una Tabla Clientes que tiene el nombre de empresa y la otra como hemos hecho con contactos.
Saludos
La primera no se si te refieres a la opción Like o Como, si es eso se hace igual sustituyendo el = por Like, pero sólo funciona si el campo y el dato que buscas son del tipo String.
Lo puedes hacer con dos tablas diferentes, pero en distintos subformularios.
Si es posible puedes cerrar este tema y abrir otro con cualquier otra duda que tengas pendiente.
Hola Tony,
Tal como comenté antes has solventado a la perfección mi problema. La verdad es que ha sido mejor de lo que esperaba hacer.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas