我在組合字段的onchange事件中使用vba代碼。代碼如下在Access 2000中缺少操作員錯誤?
Dim db As Database
Dim rs As DAO.Recordset
Dim qrystr As String
Dim cond As String
Dim qrystr_CID As String
'cond = [Forms]![PharmDrug].[Commercial drugs subform2].Form.DrugCompanyName & vbNullString
cond = Me.DrugCompany & vbNullString
'MsgBox cond
Set db = CurrentDb
If cond = vbNullString Then
' do nothing
Else
qrystr = "SELECT DrugCompanyID FROM [Drug Company] WHERE Name ='" & cond & "';"
Set rs = db.openrecordset(qrystr)
qrystr_CID = rs!DrugCompanyID
Me.DrugCompanyID = qrystr_CID
rs.Close
Set rs = Nothing
End If
這工作得很好,但在查詢表達式給出錯誤3075語法錯誤(缺少運算符)「名稱=」博士雷迪的實驗室';''
這就是如果名稱字段中的值包含像撇號等特殊字符我怎樣才能擺脫這個錯誤?
請幫我解決這個問題。
請參閱http://stackoverflow.com/q/199889/603855並考慮使用參數化查詢,而不是用「'」(兩個單引號)替換「'」(單引號)。 –
參數只有一個小問題,即數據長度超過255個字符(備註數據類型)。但是,在這種情況下它不會成爲問題。 – Fionnuala