[英]VB SQL error; Syntax error (comma) in query expression
我有一個 VBA function 返回基於 WHERE 子句的十進制值。
SELECT * FROM [tbl_break] WHERE [From] < 6,25 AND [To] >= 6,25
我收到錯誤...查詢表達式“[From] < 6,25 AND [To] >= 6,25”中的語法錯誤(逗號)。
The Tabel look like this...
From To Break
0,00 4,00 0,25
4,00 8,00 0,50
8,00 12,00 0,75
如何處理查詢語句中的小數?
Public Function CalculateBreak(Units) As Double
On Error GoTo ErrorHandler
Dim connection As Object, result As Object
Dim sql As String
sql = "SELECT * FROM [tbl_break] WHERE [From] < " & Units & " AND [To] >= " & Units
Debug.Print sql
' Connect to the current datasource of the Excel file
Set connection = CreateObject("ADODB.Connection")
With connection
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & _
"Extended Properties=""Excel 12.0 Xml;HDR=YES"";"
.Open
End With
' Run the SQL query
Set result = connection.Execute(sql)
CalculateBreak = result(2)
Debug.Print result(2)
Exit Function
ErrorHandler:
CalculateBreak = 0
Debug.Print Err.Description
End Function
該解決方案適用於整數,但我依賴於小數。
使用Str
強制使用點作為分隔符的十進制值的字符串表達式,這是 SQL 期望的:
sql = "SELECT * FROM [tbl_break] WHERE [From] < " & Str(Units) & " AND [To] >= " & Str(Units) & ""
結果:
SELECT * FROM [tbl_break] WHERE [From] < 6.25 AND [To] >= 6.25
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.