Visual Basic - No coinciden los datos en la expresion de criterio

Life is soft - evento anual de software empresarial
   
Vista:

No coinciden los datos en la expresion de criterio

Publicado por Daniel daniel_bidegorry1@hotmail.com (2 intervenciones) el 14/08/2014 21:57:44
Estimados.
Hace tiempo que no encuentro solucion a este problema.Cuando hago un SELECT COUNT de unos registros me dice que "no coinciden los datos en la exprecion de criterio.
La idea es que si un paciente fue atendido 6 veces en los ultimos 6 meses un label se haga rojo

Utilizo Acces, el campo Codigo_paciente es de tipo numero (entero largo de 15) .
Este es el codigo.

On Error GoTo error_Handler
Dim sSQL As String
Dim rst As New ADODB.Recordset
'' ¿ La conexión está abierta ?
If Base.State = adStateOpen Then
sSQL = "SELECT Count(*) as Total_Filas FROM Tablaconsulta WHERE [Codigo_paciente] ='" & Val(LblCodigopaciente.Caption) & "' AND Fecha BETWEEN Date()-180 AND Date();"
'' -- Ejecutar comando SQL con el método Execute
Set rst = Base.Execute(sSQL, , adCmdText)
'' -- Mostrar cantidad de registros
Label27 = rst("total_Filas")
If Label27 >= 6 Then
'Label27.BackColor = &HFF&
Else
Label27.BackColor = &HFFFFFF
End If
Set rst = Nothing
Else
MsgBox "No hay una conexion activa a la base de datos", vbExclamation
End If

PD: El select count con solo las fechas funciona bien el problema comienza al agregar el Codigo_paciente
Trate de hacerlo con un campo Dni que sea de tipo texto pero me dice " no coinciden los tipos"
sSQL = "SELECT Count(*) as Total_Filas FROM Tablaconsulta WHERE [Dni_paciente] ='" & TXTDnipaciente.Text & "' AND Fecha BETWEEN Date()-180 AND Date();"
Desde ya muchas gracias.
Saludos
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

No coinciden los datos en la expresion de criterio

Publicado por Juan Gilberto (277 intervenciones) el 15/08/2014 16:09:48
Si el campo Codigo_paciente es de tipo String entonces prueba con :
1
sSQL = "SELECT Count(*) as Total_Filas FROM Tablaconsulta WHERE [Codigo_paciente] ='" & LblCodigopaciente.Caption & "' AND Fecha BETWEEN Date()-180 AND Date();"

...si es Numerico, entoces solo quitale las comillas que encierran a LblCodigopaciente.Caption
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

No coinciden los datos en la expresion de criterio

Publicado por Daniel (2 intervenciones) el 18/08/2014 23:28:27
Muchas gracias Juan por tu tiempo, le saque las comillas y anduvo genial sos un genio.
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
Imágen de perfil de Wilfredo Patricio Castillo

No coinciden los datos en la expresion de criterio

Dim FechaAnterior as date
FechaAnterior=DAteAdd("d",-180,Now)
dim FechaActual as date
FEchaActual=Now

sSQL = "SELECT Count(*) as Total_Filas FROM Tablaconsulta WHERE [Codigo_paciente] =CInt(' " & LblCodigopaciente.Caption & ")' " & " AND Fecha BETWEEN " & "#" & FechaAnterior & "# And #" & FechaActual & "#"
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

No coinciden los datos en la expresion de criterio

Publicado por Juan Gilberto (277 intervenciones) el 17/08/2014 17:24:26
Y ese CInt pa' que lo necesitas? ... simplemente quita las comillas
Otra cosa... esta mal armada la funcion, checa la comilla fuera del parentesis final de CInt
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