2

我有一个通过 ADODB 连接到 SQL 数据库的访问数据库。访问表视图的记录集是通过以下方法中的记录集属性设置的。该方法是从 Form_Load 函数中调用的,用于查看它的表单。通过主表单上的选项卡访问该表单。

不幸的是,记录集似乎没有在机器之间正确更新。在一台机器(Access 2010)上它可以正常加载。在第二个(Access 2010)上,它仅将第一行加载为 Name?。有时,如果我自己打开表单,然后打开选项卡,我可以让它加载到第二台机器上。

任何帮助,将不胜感激。提前致谢!

Function LoadTblEmployeesADOtoForm()

Dim sqlStr As String

 Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim p As ADODB.Property
    Const ConnStr = "PROVIDER=SQLOLEDB;Server=SERVER;Database=DB;User ID=ID;Password=PWD;"
    Set cn = New ADODB.Connection
    cn.Open ConnStr

    Set rs = New ADODB.Recordset
    With rs
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockPessimistic

        'SELECT
        sqlStr = "SELECT * FROM tblEmployees ORDER BY NetworkID"

        Debug.Print sqlStr

        .Source = sqlStr

        Set .ActiveConnection = cn
        .Properties("Preserve on Abort") = True
        .Properties("Preserve on Commit") = True
    End With
    'cn.BeginTrans
    rs.Open

    Debug.Print rs.RecordCount
    Dim temp As Integer

     Set Form_frmManagetblEmployees.Recordset = rs


    cn.Close


    Set rs = Nothing


End Function
4

1 回答 1

2

当表单用作子表单时,不能引用:

 Set Form_frmManagetblEmployees.Recordset = rs

但是,Me 将同时适用于表单和子表单,因此:

 Set Me.Recordset = rs
于 2013-02-19T20:10:46.940 回答