【发布时间】:2014-07-02 19:22:29
【问题描述】:
我的目标是测试一个表的记录,如果该特定记录存在,什么也不做,否则做一些插入记录。我编写了以下 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
我收到一个错误类型不匹配行
Set objRecordset = CurrentDb.OpenRecordset(strSQL2, dbOpenDynaset, dbSeeChanges)
tblInstrumentInterfaceLog 的架构是:
- [InstrumentInterfaceLogID] [int] IDENTITY(1,1) NOT NULL
- [InstrumentName] nvarchar NOT NULL
- [BatchID] [int] 非空
- [文件名] nvarchar NOT NULL
我只需要提供代码的帮助,为什么会出现这种类型不匹配?
【问题讨论】:
-
在哪里声明 objRecordset 变量?
-
添加了更多的声明
-
在哪里打开到 SQL 的连接?此外,您应该列出字段而不是使用
SELECT *,并且应该使用IF objRecordset.EOF测试空记录集。
标签: sql sql-server ms-access vba