2

ADODB 経由で SQL データベースに接続するアクセス データベースがあります。アクセス テーブル ビューのレコードセットは、以下のメソッドのレコードセット プロパティを介して設定されます。このメソッドは、表示可能なフォームの Form_Load 関数から呼び出されます。フォームには、メイン フォームのタブからアクセスします。

残念ながら、レコードセットはマシン間で正しく更新されていないようです。1 台のマシン (Access 2010) では問題なく読み込まれます。2 番目 (Access 2010) では、最初の行のみを Name? として読み込みます。フォームを単独で開いてからタブを開くと、2 番目のマシンにロードできる場合があります。

どんな助けでも大歓迎です。前もって感謝します!

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 に答える