无法在其他计算机上使用DAO Grid运行Exec

时间:2015-11-13 20:31:18

标签: ms-access vb6 dao

运行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对象。最后一个不能在其他机器上工作

我注意到客户端计算机上的exec没有创建ldb文件。但是可以在Recordset中访问数据 enter image description here

1 个答案:

答案 0 :(得分:-1)

使用Data1.Refresh

要获得RecordCount,您可能需要执行MoveLast然后MoveFirst;