Excelのvbaスクリプトに問題があります。これは、 のMySqlデータベースからの読み込みです。 SQLクエリは1つだけ レコードを返しますが、実際に空の結果セットを返します。生成されたステートメントは、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
EDIT:私のデータベース接続機能。私はそれで他のスクリプト を実行しているよう
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機能は、[OK]を接続しています。誰かが私が間違ってやっていることを見ることができれば、どんな助けでも に感謝します。
事前に感謝します。
ギャリー
問題は何ですか、私に尋ねても構わないのですか? –
あなたは "クエリは1つのレコードを返すべきです"と書いていますが、実際に何が起こったのかは言わない - 複数のレコードを返すのか、空の結果セットを返すのか?後で 'emailAddress'はデータベースに存在しない値を含んでいます。 – ain
申し訳ありませんが、sqlは空の結果セットを返します。ここでは、クライアントIDという1つのフィールドを持つレコードが1つ返されます。私はphpMyAdminを介してSQLを実行し、期待どおりに1つのレコードを受信しました。 – Garry