Visual Basic - consulta sql + LIKE

Life is soft - evento anual de software empresarial
   
Vista:

consulta sql + LIKE

Publicado por molek (20 intervenciones) el 09/12/2008 18:36:40
Buenos dias, realizo una consulta SQL y no se como agregarle variables u objetos.
tengo el objeto llamado txtcedula para los registros q comienzan con 7

select * from usuarios where cedula like 'txtcedula' <---no funciona

Ademas me gustaria saber tambien como hago la consulta para cualquier registro que tenga al menos un 7 no solo al inicio del numero
gracias por la colabora
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 sql + LIKE

Publicado por igor (633 intervenciones) el 09/12/2008 21:41:17
Claro que no te funciona, te explico por qué. Con tu consulta SQL estás diciendo:

"SELECT * FROM usuarios WHERE cedula LIKE 'txtcedula'"

Que traducido es:

SELECCIONA todos los registros (*) DESDE la tabla usuarios DONDE cedula SEA IGUAL a "txtcedula".

Pero ningún valor de cedula tiene escrito el texto "txtcedula".

Lo que debemos poner es:

"SELECT * FROM usuarios WHERE cedula LIKE " & txtcedula.text

Que traducido es:

SELECCIONA todos los registros (*) DESDE la tabla usuarios DONDE cedula SEA IGUAL a 7 (valor).

Si te fijas estamos generando una cadena de texto en donde incluimos el valor de txtcedula en ese momento. Es diferente a incluir en la cadena el texto "txtcedula".

Espero que te sirva para entender SQL.

Un saludo.
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 sql + LIKE

Publicado por Jimmy Torres (134 intervenciones) el 09/12/2008 22:52:30
Lo explicado anteriormente es cierto pues debes referirte a la propiedad Text del Textbox llamado txtcedula y no al nombre del textbox, recuerda siempre utilizar las propiedades de cada control, pero esto no termina de responder a tu duda, si deseas conseguir cualquier registro por ejemplo que tenga un 7 te sería util saber esto:

Con la sentencia LIKE puedes hacer esto:

1) "Select * from usuario where cedula like '%7'" : esto buscará todos los registros que empiecen con '7'.

2) "Select * from usuario where cedula like '7%'" : esto buscará todos los registros que terminen con '7'.

3) "Select * from usuario where cedula like '%7%'" : esto buscará todos los registros que tengan '7'.

Saludos!!
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 sql + LIKE

Publicado por Jimmy Torres (134 intervenciones) el 09/12/2008 23:20:15
Cabe destacar que para que puedas hacer lo anterior en Visual Basic debes tomar en cuenta para incluir variables dentro de las consultas debes tomar en cuenta su tipo de dato...

Por ejemplo si deseas incluir una variable numerica seria así:

Dim edad As Integer

edad = 20

"Select * from usuarios where edad = '" & edad & "'"

recuerda: 1ero comilla simple ('), luego comilla doble ("),operador segun el tipo de datos:

& --> Para numerico y date
+ --> Para String

luego la variable, luego operador segun tipo, luego cierras comilla doble (") y luego cierras comilla simple (')

De modo que para que puedas utilizar la instrucción LIKE con anteriormente te lo indiqué en código de Visual Basic deberías incluir en el string de la consulta las variables de la siguiente manera:

El + aquí es para concatenar cadenas

Para el caso de que txtcantidad.Text sea igual a "7":

"Select * from usuarios where cedula like '%" + txtcedula.Text + "'" : esto para los que comienzan con "7"

Y estarías diciendo: "Select * from usuarios where cedula like '%7'"

"Select * from usuarios where cedula like '" + txtcedula.Text + "%'" : esto para los que terminan en "7"

Y estarías diciendo: "Select * from usuarios where cedula like '7%'"

"Select * from usuarios where cedula like '%" + txtcedula.Text + "%'" : esto para los que tienen "7"

Y estarías diciendo: "Select * from usuarios where cedula like '%7%'"

Y si deseas que sea igual a 7 sería:

"Select * from usuarios where cedula like "' + txtcedula.Text + "'"

Y estarías diciendo: "Select * from usuarios where cedula like '7'"

Saludos!!
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 sql + LIKE

Publicado por Flores Matias (1 intervención) el 14/06/2016 03:41:07
Muchas Gracias Jimmy Torres :

Tenia el siguiente problema, al buscar un articulo con el lector de barras y no usaba los signo + entre la variable donde guardaba el codigo leia el lector me buscarba el primero que encontra parecido pero no el exacto. Lo comento por si a alguien le pasa lo mismo, el Like para que funcione solemente la cadena completa y exacta es como puso Jimmy Torres :

1
"Select * from usuarios where cedula like "' + txtcedula.Text + "'" 

Mi codigo es :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim co1 As String
co1 = Text1.Text
 
Set rec = base.OpenRecordset("Select * from productos where cbarra like " + co1 + "")
 
If Not rec.EOF Then
  rec.MoveFirst
      ListView2.ListItems.Clear
 
      Set NUEVOITEM = ListView2.ListItems.Add(, , rec!id, 0, 0)
          NUEVOITEM.SubItems(1) = UCase(rec!DETALLE)
          NUEVOITEM.SubItems(2) = UCase(rec!stock)
          NUEVOITEM.SubItems(3) = FormatCurrency(rec!pventa)
End If
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 sql + LIKE

Publicado por molek (20 intervenciones) el 10/12/2008 15:07:52
Compañeros muchas gracias por la colaboración.
La sentencia SQL que utilizo actualmente y me funciona es la siguiente:

1
"select * from usuarios where cedula like '%" & txtcedulausuarioup.text & "%'"

Pruebo la siguiente y me funciona igual de bien:
1
"select * from usuarios where cedula like '%" + txtcedulausuarioup.text + "%'"

Cuando se inicializa el objeto con un valor no me funciona, me funciona luego cuando le agrego un valor en tiempo de ejecucion (le meto un valor numerico a la cajita de texto :) )
La base de datos que utilizo es SQL server 2000 el campo cedula de la tabla usuarios es tipo integer o entero.
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 sql + LIKE

Publicado por victor alfonzo victor229016@gmail.com (4 intervenciones) el 20/08/2016 02:26:35
hola yo tengo el mimo problema pero mi primari key es integer y no me funciona la consulta

"SELECT * FROM Pacientes WHERE Num_historia LIKE " & txtnumero.text

Que traducido es:

SELECCIONA todos los registros (*) DESDE la tabla usuarios DONDE cedula SEA IGUAL a 7 (valor).

porfa agradeceria su ayuda de ante mano muchas gracias atentamente victor
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