La Web del Programador: Comunidad de Programadores
 
    Pregunta:  3588 - CONSULTAS DE SQL DESDE VB6
Autor:  sergio berteloot
Mi pregunta se debe a que necesito hacer una consulta desde vb a través de un data control (DAO) a un campo numérico de tipo single en una bd access 97. El problema es que al hacer la consulta, donde el número lleva una coma, vb me da un error porque considera a la coma como si se tratase de un separador de argumentos. EJ:
data1.recordsource="select * from tabla1 where importe=156,85".
Si hago consultas de números enteros funciona bien, el problema surge con los números que tienen decimales.
Les agradezco desde ya la colaboración que me puedan brindar.
Saludos, Sergio Berteloot.

  Respuesta:  Reinaldo V.B.
data1.recordsource="select * from tabla1 where importe="&replace("156,85", ",",".")

esto remplaza caracteres por otros, en este caso las comas por puntos.

  Respuesta:  Fernando Ise
Yo tenia problemas similares de validacion que solucione con una funcion que le paso el numero y reemplaza la coma por el punto decimal.

Public Num$

Public Function Convertir(TextoIni$)
Dim Car$, J%,L%
L = Len(TextoIni$)
Num$ = ""
For J = 1 To L
Car$ = Mid(TextoIni, J, 1)
If Car$ <> "," Then
Num$ = Num$ & Car$
Else
Num$ = Num$ & "."
End If
Next J
End Function

La Accedo directamente si es un textbox

Convertir(TxtNum.text)
Numero = Val(num$)

o lo convierto si es numero

Texto$ = trim(str(Numero%))
Convertir(Texto$)
Numero = Val(num$)

Espero te Sirva. Mucha suerte!!

  Respuesta:  Miguel Sandro Lucero
Probá esto:

data1.recordsource="select * from tabla1 where importe=" & STR(156,85)