Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: jorkaes en 30 Agosto 2008, 18:18 pm



Título: como buscar palabras en una base de datos access?
Publicado por: jorkaes en 30 Agosto 2008, 18:18 pm
hola, tengo un problema he diseñado un programa paa guardar recistros de un archivo de mi empresa, pero solo puedo buscar los caracteres iniciales de cada registro. por ejemplo si busco polizas de seguro, escribiria pol (enter) y asi me muestra polizas de seguro, polizas vencidas, etc. todo lo que comience con pol, eso es muy sencillo pero que tal si necesito buscar seguro, al escribir segu no me mostraria poliza de seguro, alguien me podria ayudar....


Título: Re: como buscar palabras en una base de datos access?
Publicado por: byway en 31 Agosto 2008, 08:12 am
para que te muestre todos los terminos de buskeda ... ummm en este caso deberias de trabajar con los campos ..  lo mejor y recomendable seria que uses una base de datos creada en access ..

pero si kieres que te ayuden en tu problema pon parte de tu codigo para que lo vean y que puedes modificar o añadir para lo que buscas... pues como sabras hay muchas formas de hacer lo que pides pero si no se parece en nada a lo que hisiste estaras mas perdido ....

salu2.


Título: Re: como buscar palabras en una base de datos access?
Publicado por: BlackZeroX en 31 Agosto 2008, 08:25 am
SI utilisas ADO

Antes que nada deberas Aprender SQL de igual forma je zP, pero este dilema se soluciona de esta forma:

Código
  1. rs.Find "[id] like '" & txt_busca(0).Text & "'"
  2.  

Ya despues lo devuelves con txt_Salida=rs!id

Donde [id] es la columna donde buscara y like lo aproximado a llo que escribias en el textbox llamado txt_busca(0).text

ya sea que tengas estas palabras digamos:

Hola
Miguel
Juegos
Algebra
Lapiz
Babosos
Sillas
Gatos
Perror

y busques todas las palabras que contengan digamos la vocal "a"

 entonces esta linea que puse arriba deberas situarla en la primera posicion con
RS.movefirst
despues usas:
rs.find "[Palabras] like a]"  (imaginando que se llama la columna "Palabras"de nuestra bdd actualmente y despues proseguimos con devolver la pabra con:

txt_salida=rs!palabras

despues:

rs.MoveNext 'para ir a la siguiente linea y seguir buscando mas despues repetimos desde:

despues volveriamos a usar:

rs.find rs.find "[Palabras] like a]"

pero sin volver al principio esto para que no repitamos asi hasta que ya no aiga mas resultados (es como ir de fila en fila de la columna) con un bucle pratcamente seria con un bucle

aca un ejemplo sencillo
Código
  1. on error resume next ' esta linea se puede reemplazar verificando que rs.movenext no produsca un error al moverse a la siguiente fila de la bdd actual es decir verificando que aun ahyga mas filas y no nos movamos a una fila que o existe
  2. for i = 0 to 2
  3.  i=0'esto es para hacer un bucle infinito solo se sale cuando se produce un error jajaja es meor asi que un do que consume muchos recursos a mi experiencia.
  4.  rs.movefirst
  5.  rs.find rs.find "[Palabras] like a"
  6.  txt_salida=rs!palabras
  7.  rs.movenext' si se produce un error al movermos a una fila que no existe en la bdd actual producira un error
  8. next i
  9.  

hay dos formas para evitarlo una con "On error ..." y otra verificando si todavía hay filas es decir con "if then" la ultima no recuerdo como era ja. xP


Título: Re: como buscar palabras en una base de datos access?
Publicado por: Angeldj27 en 1 Septiembre 2008, 23:42 pm
Aki te va un ejemplo sencillo esta con Sql server pero la consulta Sql funciona igual en Access

Código:
SQLStrin = "%" & txtTel1.Text & "%"
    AdoLlamadas.RecordSource = "SELECT * From Llamadas WHERE Telefono_Rec like '" & Trim(SQLStrin) & "' "
    AdoLlamadas.Refresh

Asi te busca en este ejemplo un numero cualquiera en ese campo donde quiera que este y con cualquier combinacion tambien se aplica a las letras.

PS: No olvide los simbolos de porciento sin si solo le pones el primero solo lo busca en el inicio de la cadena tienes que ponerselo los dos.

Saludos....


Título: Re: como buscar palabras en una base de datos access?
Publicado por: fofolbich en 3 Septiembre 2008, 19:01 pm
ok. Gracias

esto fue lo que hice

rsconsulta.Open "Select * From " & Tabla & " where " & opt & " like '%" & UCase(Text1) & "%'" & " ORDER BY CODIGO", conexion

y listo viejo gracias ya funca como deberia ser.

les agradezco su colaboracion