错误:用SQL语句打开记录集MsAccess
问题描述:
我的目标是测试一个记录表,如果该特定记录存在,则什么都不做,否则做一些插入记录。我写了下面的SQL语句,试图检索特定的记录错误:用SQL语句打开记录集MsAccess
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
我在该行
Set objRecordset = CurrentDb.OpenRecordset(strSQL2, dbOpenDynaset, dbSeeChanges)
得到一个错误类型不匹配为tblInstrumentInterfaceLog的模式是:
- [InstrumentInterfaceLogID] [int] IDENTITY(1,1)NOT NULL
- [InstrumentName] nvarchar NO牛逼NULL
- [BatchID] [INT] NOT NULL
- [文件名]为nvarchar NOT NULL
我只需要帮上所提供的代码,这是为什么类型不匹配的发生?
答
我一直只使用Set objRecordset = CurrentDB.OpenRecordset(strSQL2)
你可以张贴的具体错误消息的成功?
你可以尝试使用DAO.recordset吗?
答
从您发布的内容来看,sql语句中的两个变量实际上并没有设置为任何值。尝试在msgbox中打印出strSQL2并确保它是有效的SQL。
也可以尝试用Dim objRecordset As Recordset
代替Dim objRecordset As ADODB.Recordset
。
答
更换
Dim objRecordset As ADODB.Recordset
随着
Dim objRecordset As DAO.Recordset
由于埃文说。
你在哪里声明objRecordset变量? –
添加了更多的声明 – VictoriaJay
请参阅开放记录集部分http://www.classanytime.com/mis333k/sjdaoadorecordsets.html – TMNT2014