运行时' 13'数据类型不匹配

时间:2017-03-15 13:29:56

标签: sql vba ms-access type-mismatch

所以我有这个代码用于设置公共函数的阶段:

Private Sub OrderMatbtn_Click()
   Dim strSQL As String
   Dim lngPartID As Long
   Dim db As Database
   Dim rs As Recordset
   Dim lngEstID As Long
   Dim dblQty As Double

   'Set the Estimate ID to the current Estimate
   lngEstID = Me.EstID

   'Open the Estimate detail as a recordset filtered on lngEstID
   Set db = CurrentDb()
   Set rs = db.OpenRecordset("SELECT tblEstDtl.PartID, tblEstDtl.Qty, " _
          & "tblEstDtl.EstID FROM tblEstDtl " _
          & "WHERE tblEstDtl.EstID = " & lngEstID)

'The rest of the code

我在Set rs行上收到数据类型不匹配错误。我检查了tblEstDtl.EstId并将其设置为Long。我的错误是db.OpenRecordset的某种方式吗?我是VBA的新手。任何帮助将不胜感激。

编辑Set rs = db.OpenRecordSet似乎有问题,因为即使我使用简单的字符串:

Set rs = db.OpenRecordset("SELECT tblEstDtl.* FROM tblEstDtl;")

它仍然给我同样的错误。

编辑2我改变了我的声明,看起来像这样:

Dim strSQL As String
Dim lngPartID As Long
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim lngEstID As Long
Dim dblQty As Double

添加DAO。到db和rs。我不确定是否应将此作为答案发布,因为我仍然不知道为什么必须这样做。

0 个答案:

没有答案