我的目标是测试一个表以获取记录,如果该特定记录存在,则不执行任何操作,否则执行一些插入记录。我编写了以下SQL语句来尝试检索特定记录
Update: Dim strSQL2 As String
Dim objRecordset As ADODB.Recordset
Dim BatchID As Long
Dim instrumentName As String
strSQL2 = "SELECT * FROM tblInstrumentInterfacelog " & _
"WHERE BatchID = " & BatchID & " " & _
"AND InstrumentName = '" & InstrumentName & "'"
Set objRecordset = CurrentDb.OpenRecordset(strSQL2, dbOpenDynaset, dbSeeChanges)
If objRecordset.RecordCount > 0 Then
Else
"logic to insert record"
End if
我在第
行收到错误 type MismatchSet objRecordset = CurrentDb.OpenRecordset(strSQL2, dbOpenDynaset, dbSeeChanges)
tblInstrumentInterfaceLog的架构是:
我只需要提供代码的帮助,为什么会出现这种类型不匹配?
答案 0 :(得分:0)
我一直使用Set objRecordset = CurrentDB.OpenRecordset(strSQL2)
您可以发布特定的错误消息吗?
您可以尝试使用DAO.recordset吗?
答案 1 :(得分:0)
根据您发布的内容,您的sql语句中的两个变量实际上并未设置为任何内容。尝试在msgbox中打印出strSQL2,并确保它是有效的SQL。
同时尝试将Dim objRecordset As ADODB.Recordset
替换为Dim objRecordset As Recordset
。
答案 2 :(得分:0)
替换
Dim objRecordset As ADODB.Recordset
使用
Dim objRecordset As DAO.Recordset
正如埃文所说。