我在Excel中遇到一些VBA腳本的問題,它應該是從MySql數據庫讀取的 。 SQL查詢應只返回一個 記錄,但實際返回空結果集。生成的語句在通過phpMyAdmin運行時工作正常。從MySql數據庫讀取VBA腳本的問題
這裏是我的代碼:
Function getClientId(emailAddress As String)
Dim rs As ADODB.Recordset
Dim sql As String
ConnectDB
Set rs = New ADODB.Recordset
sql = "SELECT client_id FROM clients WHERE email_address = '" & emailAddress & "' LIMIT 1"
Debug.Print sql
rs.Open sql, oConn
Debug.Print rs.RecordCount
If (rs.RecordCount = -1) Then
getClientId = Null
Else
getClientId = rs(0)
End If
rs.Close
End Function
編輯:我的數據庫連接功能。
Function ConnectDB()
On Error GoTo ErrHandler
Set oConn = New ADODB.Connection
oConn.Open "DRIVER={MySQL ODBC 5.1 Driver};" & _
"SERVER=localhost;" & _
"DATABASE=mydb;" & _
"USER=user;" & _
"PASSWORD=password;" & _
"Option=3"
'Debug.Print oConn
Exit Function
ErrHandler:
MsgBox Err.Description, vbCritical, Err.Source
End Function
ConnectDB函數連接正常,因爲我正在運行其他腳本 。如果有人能看到我做錯了什麼,那麼任何幫助 將不勝感激。
非常感謝提前。
Garry
問題是什麼,如果你不介意我問? –
你寫的「查詢應該只返回一條記錄」,但不要說實際發生了什麼 - 返回多條記錄還是返回空結果集?在後面的例子中,'emailAddress'包含數據庫中不存在的值。 – ain
對不起,sql返回一個空結果集,它應該返回一個記錄和一個字段,即客戶端ID。我已經通過phpMyAdmin運行SQL,並按預期收到了一條記錄。 – Garry