所以我有这个代码用于设置公共函数的阶段:
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。我不确定是否应将此作为答案发布,因为我仍然不知道为什么必须这样做。