SQL - Convertendo casas decimais


Os comandos SQL utilizam a nomenclatura inglesa e como você já deve saber os ingleses utilizam o ponto decimal e não a virgula para casas decimais. Em consequência devemos converter a vírgula para ponto em comandos SQL.

Para fazer a conversão usamos uma função - ConverteDecimal - que converte a vírgula para ponto. Abaixo temos duas versões da função :

Versão para VB5:

Private Sub Form_Load()
   Dim Valor As Double
   Valor = 205.25
    sql = " SELECT * From Pedidos Where Preco >= " & ConverteDecimal(Valor)
End Sub

 
Function ConverteDecimal(Valor As Double)
      Dim ret As String
      ret = Format(Valor)
      If InStr(ret, ",") <> 0 Then
           Mid(ret, InStr(ret, ","), 1) = "."
      End If
      ConverteDecimal = ret
 End Function

 

Versão para VB6: ( usamos a função replace)

Private Sub Form_Load()
   Dim Valor As Double
   Valor = 205.25
    sql = " SELECT * From Pedidos Where Preco >= " & ConverteDecimal(Valor)
End Sub

 
Function ConverteDecimal(Valor As Double)
      Dim ret As String
      ret = Format(Valor)
      If InStr(ret, ",") <> 0 Then
           ret = Replace(ret, ",", ".")
      End If
      ConverteDecimal = ret
 End Function

 

E é só ...


José Carlos Macoratti