SQL - Consulta avanzada con ADO

 
Vista:

Consulta avanzada con ADO

Publicado por Andres M (2 intervenciones) el 30/12/2008 05:16:11
(Visual Basic 6 - ADO MS Access)
Hola a todos estoy haciendo un programa para un centro médico el cual almacena pacientes y posteriormente debe crear "sesiones medicas" según las atenciones que reciba el paciente. Bueno lo de registrar pacientes no hay problema eso ya esta, el problema me surge al tener que buscar un paciente para una cita medica en un solo textbox, ya que con el usuario del programa puede suceder:
poner solo un nombre , los dos, un apellido los dos, el nombre completo, en orden , en desorden , igualmente pueden buscar por en numero de documento (que es lo mas fiable rápido y sencillo, pero existen pacientes que por x o y motivo no conocen su respectivo numero de documento, por lo cual no puede ser la única opción, en fin múltiples opciones existen.

Mi pregunta es como hago para buscar en toda la tabla pacientes en cualquiera de los casos anteriormente mencionados partiendo desde un textbox o dos ( previamente mediante una rutina de código he separado del text box cada palabra existente en este
ejemplo:
textbox1 = "Juan camilo suarez restrepo"
separo cada nombre

La tabla pacientes la he distribuido nombre1, nombre2, apellido1, apellido2
en el ejemplo anterior simplemente busco con un sentencia SQL o un bucle campo cada campo registro por registro correspondiente al dato deltextnombre1 -> nombre1 deltextapellido1 -> apellido1

El problema viene cuando por ejemplo la enfermera al buscar al mismo individuo del ejemplo anterior escribe "juan suarez", efectivamente el programa separa las dos palabras pero como hago para que las busque en TODA la tabla sin tener que hacer bucles sucesivos de busqueda es decir palabra1 en nombre1db balabra 2 en nombre1db y as i sucesivaemnte ya que eso tomarí amucho tiempo para una table de la base de datos que contendrá mas de 1000 registros
otro ejemplo para pensar si con el mismo individuo pone "suarez juan", entonces no puedo poner a buscar en orden de nombre1 nombre2 apellido1 apellido2

Espero me ayuden a encontrar una solución con el formato de solo un textbox
ya que la salida fácil es para cada nombre y cada apellido un textbox y busco segun esten llenos......pero no quiero hacer eso ya que con el metodo de uno solo aprendo mas ya que no soy profesional pero me defiendo ...gracias... espero sus respuestas
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

RE:Consulta avanzada con ADO

Publicado por Christian Calvo (21 intervenciones) el 30/12/2008 05:25:52
No olvides suscribirte a los fotos de www.rdba.com.mx!!

Access es un motor un poco limitado y sinceramente no conozco mucho de el, sin embargo yo lo resolveria así:

Texto = Juan Suarez

Separo palabras en mi codigo visual basic, te recomiendo la funcion split.

hago un select dinamico con el numero de condiciones = alnumero de palabras

select * from tablapacientes
where charindex(palabra1,Campo1+campo2+campo3+campo4) > 0
and charindex(palabra2,Campo1+campo2+campo3+campo4) > 0
and ... etc etc.

No se si en access exista el CHAINDEX que es la funcion equivalente en visual basic a INSTR

lo que estas haciendo es:

Buscar la palabra "JUAN" en la cadena "Juancamilosuarezrestrepo"

ahi te regresaria valor = 1 porque empieza en el primer caracter.

Buscar la palabra "SUAREZ" en la cadena "Juancamilosuarezrestrepo"

ahi te regresa el valor = 11

como ambas condiciones son > 0 entonces el registro es ese
aunque tambien te regresaria los pacientes con el nombre de Juan francisco perez Suarez" ya que tambien cumple aunque no sea la persona buscada.
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

RE:Consulta avanzada con ADO

Publicado por Christian Calvo (21 intervenciones) el 30/12/2008 05:29:38
Si la solucion que te escribi no es entendible y tienes más problemas escribeme a [email protected] y con gusto te echo la mano para que salga como lo quieres, no es nada complicado.!!!
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

RE:GRACIASConsulta avanzada con ADO

Publicado por Andres M (2 intervenciones) el 30/12/2008 05:58:18
Gracias Christian estare en contacto por mail contigo voy a intentar lo q me has dicho cualquier duda te comento.... gracias por las respuestas
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