Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Cotinuo error al hacer consulta SQL desde VB

Estas en el tema de Cotinuo error al hacer consulta SQL desde VB en el foro de Visual Basic clásico en Foros del Web. Hola otra vez a todos... Si no fuera realmente urgente no los molestaría, pero necesito, por favor, que alguien me oriente sobre, cómo solucionar el ...
  #1 (permalink)  
Antiguo 02/06/2005, 13:28
 
Fecha de Ingreso: abril-2005
Mensajes: 25
Antigüedad: 19 años
Puntos: 0
Cotinuo error al hacer consulta SQL desde VB

Hola otra vez a todos...
Si no fuera realmente urgente no los molestaría, pero necesito, por favor, que alguien me oriente sobre, cómo solucionar el siguiente mensaje de error: "No coinciden los tipos de datos en la expresión de criterios". el código que genera error es:

Set cn = New ADODB.Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Archivos de programa\Microsoft Visual Studio\VB98\AEntregaFinal\Analiza.mdb;Persist Security Info=False"
cn.Open

Set rsCuenta = New ADODB.Recordset
rsCuenta.Open "SELECT COUNT(Info) AS Cont FROM Buffer WHERE Info='1' AND Hora BETWEEN Hora=Hor1 AND Hora=Hor2", cn, adOpenDynamic, adLockOptimistic

Lo que busco hacer, es obtener del campo Info el conteo de los elementos que valgan 1, comprendidos entre HoraIni y HoraFin. HoraIni y HoraFin son valores que se obtienen de sendos ComboBox y se comparan en la búsqueda con el campo hora.
La comparación Hora = Hor2 es correcta o se hace algo como Hora = 'HoraIni.Text', o algo así...???
Porfa ayudenme!!! Esto me tiene dando vueltas como loca.

A quien me atienda positivamente MUCHAS GRACIAS!!!!
  #2 (permalink)  
Antiguo 02/06/2005, 13:47
Avatar de reel  
Fecha de Ingreso: febrero-2004
Ubicación: Managua, Nicaragua
Mensajes: 496
Antigüedad: 20 años, 3 meses
Puntos: 1
Me parece que estás utilizando BETWEEN de forma incorrecta.

La sictaxí es más o menos así:

campo BETWEEN varlo1 AND valor2

Yo siempre lo utilizo de esa forma.

Saludes
__________________
Leer es Saber, REEL.
Mi Blog
  #3 (permalink)  
Antiguo 02/06/2005, 14:14
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
Eje!!! es verdad... la sintaxis del between esta incorrecta
  #4 (permalink)  
Antiguo 02/06/2005, 15:07
Avatar de robertonavarro  
Fecha de Ingreso: octubre-2004
Mensajes: 72
Antigüedad: 19 años, 6 meses
Puntos: 1
¿Que tipo de dato almacena tu campo Info de tu tabla? Si es tipo numérico debes poner el valor de Info en tu consulta sin comillas, es decir: Info=1 .
Eso explicaría porqué no coinciden los tipos de datos.
Puede ser otra cosa, pero primero revisa bien eso

Otra posible causa de error es la forma en la que usas las variables Hora1 y Hora2. Estas variables tienen un valor mientras se encuentren en el contexto de una instrucción de VB, mientras que si las incluyes dentro de la cadena que forma tu consulta carecen de valor; de tal forma que debes hacer una concatenación con la cadena de tu consulta para que conserven su respectivo valor.
Por ejemplo:
"SELECT COUNT(Info) AS Cont FROM Buffer WHERE Info='1' AND Hora BETWEEN Hora=#" & Hor1 & "# AND Hora=#" & Hor2 & "#"

nota: las almohadillas (#) son para validar el tipo de dato Hora, suponiendo que ese sea el tipo de dato que almacenan

Última edición por robertonavarro; 02/06/2005 a las 15:19
  #5 (permalink)  
Antiguo 02/06/2005, 15:14
Avatar de S-Virus  
Fecha de Ingreso: enero-2004
Mensajes: 112
Antigüedad: 20 años, 3 meses
Puntos: 0
Estoy de acuerdo

El Between no lo usas correctamente. Es como dice Reel
__________________
DISEÑADOR WEB MULTIMEDIA :: STUDIOFLASH
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:56.