Buscar un campo de una tabla en formulario Access

Estoy creando un formulario de Access para introducir partes de trabajo. Necesito que dichos partes estén vinculados a un expediente en particular. Por ello se debe rellenar el número de expediente en el formulario. Debido a que podría haber cientos, ¿existe alguna forma de crear un buscador por descripción de expediente?

He pensado en hacer una lista desplegable pero sería prácticamente imposible en una listado tan grande.

¿Alguna recomendación?

2 respuestas

Respuesta
2

Sin saber como tienes construida la base te diría que si tengo una tabla Expedientes

Haría una tabla Partes tipo

Con ésta construiría un formulario(da igual continuo o único) como el de la imagen donde en vez de escribir el Idexpediente lo elijo a través del Expediente(siempre es más fácil acordarse de un nombre que de un número)

Realmente el valor que te guarda es Idexpediente. En el combinado le pongo que tenga dos columnas pero de ancho 0 y 5

En mi caso la lista puede ser de cientos de resultados. Creo que no es viable esa opción.

¡Gracias! 

En Access,, por defecto, si no le dices nada en contra, los combinado vienen con Expansión automática=Si. Quiere decir que cuando escribes una letra te "acerca" a lo más próximo a ella. Por ejemplo, si escribes Al, te aparecería en negro Albania, pero si despliegas el combinado verás que detrás vienen Alemania, Afganistan, Argelia, etc. Si escribieras Ale, te pondría en negro Alemania, Ale Hop, Aleluya(cada uno con la suya), etc.

De todas formas, ayer cuando leí tu otra pregunta preparé un ejemplo de como haría(sin saber que datos usas) la base. Por eso, si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te la mando. Si lo haces, en el asunto del mensaje pon tu alias Carlos Herraez, ya que si no sé quien me escribe ni los abro.

He realizado una prueba con tus indicaciones y algo debo  estar haciendo mal porque si escribo Ale aparece lo mostrado.

Por cierto, y si es una frase y se busca por parte o partes de palabras que la contienen?

Gracias!

Supongamos que tengo el formulario

En el cuadro de texto escribo ma para que me busque aquellos países que tienen MA en su nombre

Cuando pulso Enter

Me saca aleMAnia y dinaMArca

El código del evento Después de actualizar del cuadro de texto Texto13 es

Private Sub Texto13_AfterUpdate()
Me.RecordSource = "select * from clientes where pais Like ""*""&'" & Me.Texto13 & "'&""*"""
End Sub

La tabla mostrada es un cuadro de lista? No consigo hacer que funcione.

Por cierto, te envié un mail agradeciéndote la ayuda y la BBDD enviada. Por si no te ha llegado 

No me ha llegado. Envíame lo que sea a [email protected]

Efectivamente es un cuadro de lista. Si vas a enviar algo, creo recordar que también tenías una dirección de Gmail. Ponla, ya que a Hotmail no puedo mandar nada.

Respuesta
1

Supongamos que tienes un ComboBox cuyo origen de la fila es la tabla de expedientes y que se llama IdExpediente, donde el campo dependiente és IdExpediente, pero muestras la Descripción en una segunda columna.

Creas un control de texto que actue como filtro donde el usuario entre una parte de la descripción y lo llamas, por ejemplo "Filtro"

Al evento "después de actualizar" de este control "Filtro" le añades el siguiente código:

me.IdExpediente.RowSource = "SELECT * FROM Expedientes WHERE Descipción='*" & me.filtro & "*';"

Me. IdExpediente. Requery

Ello hará que en el combo solamente te aparezcan los expedientes cuya descripción coincida, en cualquier parte de la descripción, con el texto entrado por el usuario.

Se podría sofisticar, pero en esencia esto debería funcionarte.

He estado haciendo pruebas y no consigo que haga lo que indicas. Cuando escribes "Control de texto" entiendo que es un cuadro de texto, verdad?

Parece que el campo de la tabla Expedientes donde está la descripción del expediente no se llama Descripción.

Cambia Descripción por el nombre de este campo.

Si me indicas como se llaman los campos de la tabla expedientes lo podremos asegurar

Ahí adjunto lo que solicitas y he realizado. La verdad que no soy un experto en la materia por lo que puede que algo no haya realizado correctamente según tus indicaciones. Gracias!

Veo que el código que te puse estaba mal escrito: Te puse Descipción en vez de Descripción.

Disculpa

Desgraciadamente me sigue sin funcionar. Si escribo "prueba", teniendo varias frases con "prueba" como palabra que aparece en ellas, en el filtro, despliego IdExpediente y está vacío.

El primer problema veo que ha sido superado.

Ahora estoy con una visita.

Luego te contesto.

Si me das tu email, te envío una BDD con un formulario donde esto funciona, además de alguna cosa que le he añadido.

(xxxxxx)

Gracias!

Te he mandado la BDD

Tal como dice Icue, el operador correcto es Like. Error por mi parte.

En la BDD de ejemplo está correcto.

También te he añadido un botón para limpiar el filtro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas