2014-07-02 75 views
0

我的目標是測試一個記錄表,如果該特定記錄存在,則什麼都不做,否則做一些插入記錄。我寫了下面的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

回答

0

我一直只使用Set objRecordset = CurrentDB.OpenRecordset(strSQL2)

你可以張貼的具體錯誤消息的成功?

你可以嘗試使用DAO.recordset嗎?

0

從您發佈的內容來看,sql語句中的兩個變量實際上並沒有設置爲任何值。嘗試在msgbox中打印出strSQL2並確保它是有效的SQL。

也可以嘗試用Dim objRecordset As Recordset代替Dim objRecordset As ADODB.Recordset

0

更換

Dim objRecordset As ADODB.Recordset 

隨着

Dim objRecordset As DAO.Recordset 

由於埃文說。