错误:用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

我只需要帮上所提供的代码,这是为什么类型不匹配的发生?

+0

你在哪里声明objRecordset变量? –

+0

添加了更多的声明 – VictoriaJay

+0

请参阅开放记录集部分http://www.classanytime.com/mis333k/sjdaoadorecordsets.html – TMNT2014

我一直只使用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 

由于埃文说。