Filtrar por varios campos

Recientemente me mandaron a hacer un programa que se encargara de filtrar aquellos datos que cumplan ciertas condiciones, es decir, que me disminuyera la lista y mostrara solo registros que coincidan en los campos que yo elijo. El problema que tengo es que solo puedo hacerlo a través de un solo campo, estoy utilizando un ListView. De verdad no conosco mucho sobre SQL asi que les dejo el codigo a ver en que me pueden ayudar
SQL = "SELECT * FROM Personas Where " & _
Campo & " like '" & txtSearch & _
"%' order by " & OrderByCampo & " " & Orden

1 respuesta

Respuesta
1
Espero te sirva mis respuesta.
Te sugiero instales phpmyadmin, que te permitirá conectar a una base de datos del tipo SQl y a la vez, tener una interfaz que te permita hacer diferentes tareas de manera asistida.
Luego de hacerlo, te aparecerá el código empleado por PhpMyadmin para ello.
Una de sus funciones suele ser el de "Buscar", donde pones en el campo lo que deseas buscar (puedes utilizar comodines también) y a continuación en que campos de la tabla en la que te encuentras deseas hacer la búsqueda.
Podrás de esta manera saber y aprender el código par aesto en particular u otra cosa que se te presente en el futuro.
Para utilizar PhpMyadmin, necesitas un servidor web con PHP
Puedes visitar http://marcalmo.homeip.net/phpmyadmin/ para ver mi servidor web en casa y disponible desde internet.
Hola la verdad que no te entendí mucho :-¿ES te puedes explicar un poco mejor? Disculpame es que no conoscno mucho del tema. O también me serviría si me modifica el código sql así no tendré que agregar nuevas cosas que de verdad no manejo
No me queda muy claro quien te encarga esto, si es que no entiendes mucho del tema.
Lo que te sugería antes, es un programa que te permite ir haciendo cosas sin saber demasiado.
De todas maneras tendrás que ver algo de como es el SQL, ya que es un lenguaje, que si bien no es difícil de aprender y entender, necesitas un mínimo de conocimiento.
Léete este tutorial al menos, para ir entendiendo un poco, como funciona.
http://www.desarrolloweb.com/manuales/9/
Por lo otro no me aportas mucho dato. Supongo que tienes una base de datos, con una estructura de tablas con sus campos.
Luego quieres hacer un programa, pero tampoco se en que lenguaje ni como pretendes acceder a la base de datos. Voy a suponer que deseas hacerlo vía web.
Por lo tanto te sugiero emplees para esto, PHP, ya que es un lenguaje sencillo de aprender.
Con esto tendrías que tener una interface web, (léase página web), donde irás rellenando campos y luego un botón enviar, para que le inyecte el código a la base de datos, que no sé, como te digo si está en tu ordenador, en un servidor de la empresa o en internet.
Apórtame estos datos y seguimos hablando:
Sistema operativo
Tipo de Servidor (web, local, etc.)
Si es servidor web, de que tipo (Apache, IIS, etc)
Nombre de la base de datos(si son varias, todos los nombres)
Usuario con todos los privilegios de la base de datos(si son varias las bases de datos y distintos los usuarios, todos también)
De momento no tocaremos las contraseñas
Ubicación de la base de datos (localhost, IP, web, etc.)
Nombre de la/s tabla/s de cada base (si fueran varias)
Estructura de la o las tabla/s (nombrede campos, tipo, longitud, etc.)
Lenguaje o método deseado para la inyección SQL
Datos cargados
Espero tus novedades.
Saludos
PD:¿Tienes qué hacerlo en SQL? En Excel puedes tener unatabla de estas características y filtrarla según el criterio que apuntas de una manera mucho más sencilla.
He creado una base de datos llamada prueba con una tabla personas y le he puesto unos datos:
Para verlos:
Mysql>USE prueba
Aquí seleeciono la base de datos (fíjate que no pongo el punto y coma final, ya que USE, no lo demanda)
mysql> SELECT * FROM personas;
Aqui me lista todo debido al comodín '*', podrás ver los nombres de los campos también.
+------------+---------+-----------+
| ID | Nombre | Apellido |
+------------+---------+-----------+
| pers-00001 | Juán | Pérez |
| pers-00002 | Roberto | Calcaño |
| pers-00003 | Javier | Dominguez |
| pers-00004 | Silvia | Domingo |
| pers-00005 | Silvia | Miranda |
| pers-00006 | José | Domingo |
+------------+---------+-----------+
Ahora bien a tu pregunta: Por ejemplo quiero listar todos los apellidos 'Domingo'
mysql> SELECT * FROM personas WHERE apellido='Domingo';
+------------+--------+----------+
| ID | Nombre | Apellido |
+------------+--------+----------+
| pers-00004 | Silvia | Domingo |
| pers-00006 | José | Domingo |
+------------+--------+----------+
2 rows in set (0.00 sec)
O podemos pedirlo nos liste solo los nombres que coincidan con 'Silvia', pero que solo aparezca el campo 'Nombre'
mysql> SELECT Nombre FROM personas WHERE Nombre='Silvia';
+--------+
| Nombre |
+--------+
| Silvia |
| Silvia |
+--------+
2 rows in set (0.00 sec)
Como verás solo se lista el campo 'Nombre' de los registros que coincide con 'Silvia'
Hola amigo gracias por tu ayuda me sirvió mucho, he decidió seguir tu consejo y realizar el trabajo en excel; allí me parece más simple y al nivel del uso que se le va a dar a la aplicación que no están avanzado. Voy a leer ese tutorial para conocer más del tema de SQL y así la próxima vez que se me presente un problema similar saber como resolverlo.
Muchísimas gracias por tu ayuda!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas