Access - Formulario - Buscar datos en tabla muy poblada

   
Vista:

Formulario - Buscar datos en tabla muy poblada

Publicado por Cristian (4 intervenciones) el 04/11/2014 22:07:05
Estimados,

Estoy haciendo un formulario y necesito ayuda para buscar datos en una tabla de cerca de 5000 datos (productos).
Como puedo hacer para que el usuario digite parte de la descripción del producto y se realice una búsqueda con todos los campos que coinciden? Luego pueda seleccionar el producto requerido.

Quedo atento,
Sl2
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

Formulario - Buscar datos en tabla muy poblada

Publicado por Jesús Manuel (202 intervenciones) el 05/11/2014 09:39:54
http://www.lawebdelprogramador.com/foros/Access/1466623-buscador_desplegables.html

Aquí tienes un ejemplo básico para buscar mediante un cuadro de texto y tener los resultados en un listbox

Esta hecho para un solo campo, pero puedes incluir más campos en la lista e indicar para cada uno la misma condición que tiene el campo NombreUsuario.

Adapta los nombres de tabla, campos y formularios a lo que ya tienes
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

Formulario - Buscar datos en tabla muy poblada

Publicado por Miguel (29 intervenciones) el 05/11/2014 17:11:44
Hola,
el ejemplo que propones Jesús Manuel es muy útil. Pero sabes cómo podría usarlo para buscar datos que en la tabla son hipervínculos? Porque usando el like si son datos "normales" me los encuentra, pero con hipervínculos parece que no funciona..

Saludos.
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

Formulario - Buscar datos en tabla muy poblada

Publicado por Jesús Manuel (202 intervenciones) el 06/11/2014 09:53:55
He hecho una prueba y no tengo problema con los campo hipervínculo. Partiendo del ejemplo anterior añado un campo hipervínculo a la tabla Usuarios, llamado LinkWeb y hago que la lista lstNombreUsuarios tenga ahora 2 columnas (NombreUsuario y LinkWeb)

El origen de fila del cuadro de lista es ahora:

SELECT Usuarios.NombreUsuario, Usuarios.LinkWeb FROM Usuarios WHERE (((Usuarios.NombreUsuario) Like "*" & [Formularios]![Index]![txtBuscar].[Texto] & "*")) OR (((Usuarios.LinkWeb) Like "*" & [Formularios]![Index]![txtBuscar].[Texto] & "*"));

Puedes ver que añado como origen de cada campo el valor del cuadro de texto txtBuscar, por lo que ahora cuando comienzo una búsqueda puedo hacerla sobre los dos campos de la lista.
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

Formulario - Buscar datos en tabla muy poblada

Publicado por Miguel (29 intervenciones) el 06/11/2014 10:16:58
El código que yo uso es muy parecido al tuyo, te lo comento por si ves dónde puede estar el fallo:
SELECT Todosmodelos.Fuente FROM Todosmodelos WHERE (((Todosmodelos.Fuente) Like ("*" & Formularios!busqueda_avanzada!fuen & "*")));

Donde, la tabla donde busco es Todosmodelos, el campo donde busco es Fuente. El formulario donde pregunto lo que quiero buscar es busqueda_avanzada y el cuadro de texto es fuen.
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

Formulario - Buscar datos en tabla muy poblada

Publicado por Jesús Manuel (202 intervenciones) el 06/11/2014 11:22:13
Veo el problema a partir de where:

Mi código: WHERE (((Usuarios.NombreUsuario) Like "*" & [Formularios]![Index]![txtBuscar].[Texto] & "*"));
Tú código: WHERE (((Todosmodelos.Fuente) Like ("*" & Formularios!busqueda_avanzada!fuen & "*")));


Fíjate en mi caso después del Like no hay paréntesis, por precaución el nombre del formulario y el campo de texto los tengo entre corchetes y después del campo de texto tengo .[texto] (esta parte es importante, porque recuerdo que si usaba .value tenía problemas y creo que si no indicas nada sería .value por defecto, esto último tendría que confirmarlo algún experto en access)


Si añado estos detalles a tu código:

SELECT Todosmodelos.Fuente FROM Todosmodelos WHERE (((Todosmodelos.Fuente) Like "*" & [Formularios]![busqueda_avanzada]![fuen].[texto] & "*"));


Espero que ahora si funcione.



Un consejo: para revisar código pegalo antes en un procesador de texto y aumenta el tamaño de letra, podrás ver mejor detalles de puntuación, comillas simples o dobles,..., te lo digo porque en mi caso me ayuda mucho.
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