Uso de variables en select vb a Mysql

Vengo a solicitar su ayuda, Please. Explico.
Tengo Un formulario en el que mediante unos texbox hago (o pretendo hacer) los filtros de una consulta a un bd MySql.
"Select call_Id as `ID Llamada, start_date as `fecha inicio`
From `call`
where start_date>='2008/07/15'
and start_date <='2008/07/15'
and start_time >='00:00'
and start_time<='23:59:59'
and ani=" & Vani & "
order by call_id desc ", cnn, adOpenKeyset, adLockOptimistic
Bien ahora Vani es una variable declarada y que tiene el siguiente codigo:
Dim Vani As String
If txtAni <> "" Then
Vani = txtAni
Else
Vani = "?????"
End If
Pues bien lo que necesito es que cuando el txtAni sea distinto a "" vacío la variable Vani tome el valor de txtAni (eso me funciona bien), pero cuando la condición sea verdadera, o sea el txtAni este vacío necesito que la variable Vani me permita seleccionar todos los registros del campo ani de la bd. O sea que haga como si le dijera "traeme todos los registros". ¿Hay alguna forma de hacer esto?

1 respuesta

Respuesta
1
Es sencillo solo debes cambiar la linea donde concantenas tu variable, hazlo de la siguiente manera:
and start_date <='2008/07/15'
and start_time >='00:00'
and start_time<='23:59:59'
and ani Like" & Vani & " %
Order by call_id desc ", cnn, adOpenKeyset, adLockOptimistic
de manera que si le mandas un valor vacio al like te mostrara todos los datos, no olvides siempre de pones el signo de porcentaje.
Luisihno18
  mmm no me funciona, me da un error la mysql. Lo hice tal cual me indicas, también lo´intenté cargándolo en la condición Else de la variable,
please
Ok lo logré
Lo que hice fue declare otra variable
Dim Vani As String
Dim Vani2 As String
Vani2 = "ani="
La ocupé  en el Then para agregar  el nombre del campo a  consultar
If txtAni <> "" Then
Vani = Vani2 + txtAni
Else
Vani = "ani Like '%'"
End If
and start_date <='2008/07/15'
and start_time >='00:00'
and start_time<='23:59:59'
and " & Vani & "
order by call_id desc ", cnn, adOpenKeyset, adLockOptimistic 
 y en la condición del where solo llamo  la variable Vani
No se si es lo más elegante o correcto pero funciona
Si tienes alguna porpuesta mejor se agradece
Sorry pero la sintaxis correcta es la siguiente:
and start_date <='2008/07/15'
and start_time >='00:00'
and start_time<='23:59:59'
and ani Like '" & Vani & " %'"
Como veras el like al ir concatenado con el signo de porcentaje debe ir entre comillas simples, a continuación te pongo un ejemplo de como seria el query utilizando like en MySQL, te recomiendo que siempre construyas tu consulta en el MySQLy el mismo texto lo concatenes en un string:
MySQL:
select * from user
where host='localhost'
and user like '%'
VB:
dim sSQL as string
sSQL="select * from user "
sSQL=sSQL & "where host='localhost' "
sSQL=sSQL $ "and user like ' " & vani & " %' "
Muchas Gracias
  La verdad es que finalmente no funcionó tal cual me lo indicaste, pero sin dudac sin tu ayuda no habría logrado armar el código
  Muchísimas gracias, ha sido de mucha ayuda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas