Problemas con sql

Hola. Tengo el siguiente problema:
He hecho una aplicación para conectar con una base de datos access y todo funciona correctamente cuando lo que quiero buscar son todos los registros de una tabla o unos en concreto siempre y cuando le ponga el parámetro directamente en la consulta SQL es decir, cuando le pongo SELECT... WHERE DNI=11111111. Ahora bien, cuando lo que quiero hacer es que el parámetro sea el valor que se introduce en una caja de texto no me funciona. Se los pongo así: SELECT...WHERE DNI=FORM1.TEXT1.TEXT ¿Qué es lo que hago mal?

3 respuestas

Respuesta
1
Lo que pasa es que una cosa es una cadena y otra un objeto
Porque la sentencia sql es texto y el textbox es un objeto
Esto se haría conctenando
Ejemplo:
"SELECT * FROM tabla WHERE campo = " & txtValor.text
esto si son numeros
si son caracteres se usa LIKE en lugar de = y % en lugar de *
ejemplo
"SELECT * FROM personas where nombre LIKE '" & variable & "%'"
esta consulta... si variable=JUAN
Devolvería
Juan
Juana
Juancho
Juancito
Etc
Si necesitas alguna aclaración no dudes en preguntar
Respuesta
1
Depende de como estés ejecutando la sentencia de búsqueda, la forma tradicional que utilizo es la siguiente:
dim sQuery as string
sQuery = "Select * from mitabla where DNI=" & form1.text1.text
Si se trata de un campo alfanumérico:
sQuery = "Select * from mitabla where DNI='" & form1.text1.text & "'"
Respuesta
1
Lo que parece estar mal es que introduces FORM1. TEXT1.TEXT en la cadena de texto, en vez de anexar su valor. La cadena SQL deberías construirla así:
Dim lStr As String
lStr = "Select * From TABLA Where DNI='" & FORM1.TEXT1.TEXT & "'"
Observa además que he puesto el valor de Text1 entre comillas simples, puesto que para campos alfanuméricos deber ser así.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas