我有一個程序,它將從數據庫(MS Access 2007)中找到一個記錄,其中含有一個錯誤:查詢表達式中的語法錯誤'%1%'的名字出錯'VB6查找問題使用SQL(MS Access 2007)
這是我的代碼:
Dim find As String
find = txtfind.Text
If txtfind.Text <> "" Then
Set rs = db.OpenRecordset("SELECT * from records WHERE firstname like '*'" & find & "'*")
If rs.EOF = True Then
MsgBox "No Record Found!", vbCritical + vbOKOnly, "Error"
Else
Text1 = rs(0)
Text2 = rs(1)
Text3 = rs(2)
Text4 = rs(3)
End If
If Not rs Is Nothing Then
Set rs = Nothing
Else
rs.Close
End If
End If
是不是訪問通配符'*'而不是'%'? – 2011-04-06 09:17:44
這樣:''從記錄WHERE firstname'*'「&find&」'*「'的SELECT *將產生'SELECT *從記錄WHERE firstname like'*'1''。我相信它應該是''SELECT *從記錄WHERE名字像'*「&find&」*'「'(注意我刪除了一個** **並且改變了另一個的位置)。 – ssarabando 2011-04-06 09:31:48
你在'WHERE'子句中防範SQL注入嗎?請參閱http://stackoverflow.com/questions/512174/non-web-sql-injection/515150#515150 – onedaywhen 2011-04-06 15:08:30