运行DAO Grid的旧程序出现问题。 (是的,我知道,不是我的选择) 在一个新项目中,我重新创建了这个问题,而且看起来像记录集一样,不会绑定'到Data1对象。
我在32/64位,Win7 / 8.1 / 10机器上进行了测试。 在开发机器上它工作正常。 (在VB6中和作为Exec程序)
Private Sub Command1_Click()
Dim tmpDB As Database
Dim r As Recordset
On Error Resume Next
Set tmpDB = OpenDatabase("test.mdb", 0, False)
Set r = tmpDB.OpenRecordset("Budget")
Set Data1.Recordset = r
Text1.Text = r.RecordCount 'works fine
Text2.Text = Data1.Recordset.RecordCount
If (Err.Number <> 0) Then Text2.Text = Err.Description
'Object variable or With block variable not set; on other machines
End Sub
我已检查过组件版本,注册,文件访问......一切似乎都很好。
以下是两个屏幕截图。左边是不可用的版本,右边是开发版。机器运行。 它打开一个数据库,获取记录集并对记录进行两次计数。首先来自Recordset对象,第二次来自Data1对象。最后一个不能在其他机器上工作
答案 0 :(得分:-1)
使用Data1.Refresh
要获得RecordCount,您可能需要执行MoveLast然后MoveFirst;