Buscar palabras dentro de un texto

Estoy realizando unas prácticas y me ha surgido una gran duda.
Tengo un formulario de búsqueda de candidatos. Puedo buscar por nombre, apellidos, ciudad que residen, provincia, sueldo que quieren y conocimientos.
Bien todo bien salvo los conocimientos, que tendrá varios valores, es decir un candidato puede tener conocimientos de C, C++, Java, Java Script...
Ahora bien si yo busco a algún candidato con conocimientos de Java, me salen los candidadtos que tengan conocimientos en Java, pero si quiero delimitar más el cerco y quiero los candidatos que sepan Java y C, no me salen candidatos, ya que para que esto ocurra, tendría que buscar candidatos con C, C++, Java. Es decir, de la misma forma en la que están metidos, si vario el orden, no funciona.
Agradecería mucho cualquier ayuda. Thanks!

1 respuesta

Respuesta
1
Pues lo primero que debes indicar es como los tienes "metidos", es decir, ¿el campo "conocimientos" es un cuadro texto, donde introduces todos sus conocimientos "seguidos?. Por lo que expones supongo que sí, pero exponlo para no dar palos de ciego. Por la misma razón expón también como haces para "buscar" (Que en Access es una palabra muy amplia, ya que puede ser mediante una consulta, código, cuadro combinado en formulario, etc) y el método para que te devuelva "los que tienen conocimientos de Java".
Gracias por contestar tan rápido.
El campo conocimientos, es un cuadro de texto, si. La búsqueda la realizo desde un formulario que muestra los datos a su vez de una consulta en la que se encuentran todos los datos, y mediante el formulario "filtro" los resultados para que vayan quedando los candidatos idóneos.
Los datos en el campo conocimientos, los meto separados por ",". La sentencia que uso en el campo de conocimientos es la siguiente:
Es Nulo O Como "*" & [forms]![CandidatesSearch]![HiddKnowledge] & "*"
La misma sentencia o muy parecida la uso con los otros campos (nombre, apellidos, ciudad...) pero es en esta donde tengo el problema de meter varios datos en un orden y que solo me los muestre si lo busco en ese mismo orden, o solo un conocimiento.
Espero que con esto sea necesario para definir bien el problema que tengo, si no, intentare expresarme mejor, gracias de nuevo y un saludo!
Una manera fácil es encadenando varios "como" con un "o" o un "Y". Pero también hay otra "forma".
En la consulta crea otro campo, (columna) y pon lo siguiente:
Nz([conocimientos];"")
Debajo en criterios:
Como [forms]![CandidatesSearch]![HiddKnowledge]
De esta manera, si dejas el campo en blanco, te saldrán, los que en conocimiento este en blanco, si pones Java, te saldrán los que sólo tengan Java, pero y aquí esta lo bueno, puedes utilizar los comodines.  Si pones * te saldrán todos, si pones *Java*c*  los que tengan Java y C, aunque támbien te saldrían C++. Para solucionar eso podrías poner una regla a la hora de meter los datos en conocimientos, por ejemplo poner C siempre que se tenga, la primera.  Con eso al poner   c*  solo te saldrían esos, porque si sólo tienen C++ lo metes con dos espacios o dos guiones bajos antes __c++.
Bueno no se sí me he explicado.
Buenas, muchas gracias por la respuesta, lo malo que ahora mismo no tengo la base de datos conmigo y no puedo probar nada, el lunes cuando llegue a la empresa y lo pruebo. Una pregunta, lo de "Nz([conocimientos];"")" no entiendo muy bien cual es su función, lo he buscado por google pero me deja igual de perdido :S
Muchas gracias por la rapidez de las respuestas!
Te lo explico. Nz sirve para devolver un valor cuando el campo es nulo. Si tu realizas una consulta y un campo de los indicados es nulo el resultado de la consulta lo omite.
De esta manera no, Su sintaxis es : nz([nombredelcampo];valor si nulo) Su uso normal es por ejemplo : nz([campo_total]);0), lo que devolvería 0 si el campo_total es nulo.
En nuestro caso devuelve una cadena vacía "", que puesto de esa manera y con el Como simplemente, en el criterio, ¿hace lo que te comente que se puedan usar los valores comodines * y?, mostrar los vacíos, etc.. Es la mejor manera de buscar, y no lo encuentras en internet porque no es conocida comúnmente este uso. Es una idea de un maestro de Access (Oirausu) que yo adapto.
Por aclarar un poco más el nz. Es muy útil cuando realizas cálculos sobre varios campos. El tipico campo1 =campo2+campo3,   Si uno de los dos campos es nulo, no devuelve el resultado. Con la función nz lo pasas a 0 y hace la suma correctamente.
Muchísimas gracias, estoy ahora probándolo.
Si a la hora de buscar pongo los "*" si que busca cualquier cosa, ahora mediante vb, modificare el texto introducido por el usuario para cambiar las "," por los "*" y así funcione bien la búsqueda.
Otra pregunteja, es sobre la búsqueda también, aunque esta en cualquier campo, si en la tabla de la base de datos tengo introducidas las mismas palabras con y sin acentos (informática e informática), a la hora de buscarlo, tengo que buscar una vez con la palabra con acento, y otra vez sin acento para ver todas. El problema que veo es que no se como van a introducir los datos, si omitiendo tildes o no, si las omitieran, seria fácil, sino las omitieran también, pero como no se como las van a introducir no tengo ni idea. Si me pudieses guiar por el buen camino, te lo agradecería muchísimo.
Gracias por todo!
Pues lo más fácil es basarte en lo anterior. Si buscas:
Como "inform?tica" te sadra informatica e informática.
Oki. Muchísimas gracias por las respuestas, la rapidez con la que has respondido y toda la información prestada. Si tengo alguna otra duda, ya se a quién preguntarle je je.
Saludos y gracias por todo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas