В памяти, в режиме ожидания -Один, отключенный набор записей ADO

Я запускаю этот код в подчиненной форме таблицы данных, когда моя форма загружается, и я не получаю никаких сообщений об ошибках или разрывах кода. Мой файл debug.print показывает, что набор записей rs заполнен 2131 записями, как и должно быть, но моя форма показывает одну строку с именем #? в каждой области. Свойства источника элемента управления в моих элементах управления наверняка соответствуют именам полей, которые я перечислил выше. RS - это переменная уровня формы, и я не закрываю ее и не устанавливаю ничего, пока форма не закроется.

Есть идеи, что я делаю не так?

Set rs = New ADODB.Recordset
rs.Fields.Append "TimesUsed", adInteger
rs.Fields.Append "strWorkType", adVarWChar, 150
rs.Fields.Append "DateLastUsed", adDate
rs.Fields.Append "SelectedYN", adBoolean
Set rs.ActiveConnection = Nothing
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.Open

Dim sSQL As String
sSQL = "MyComplicated SQL Statement Ommitted from this SO Question"

Dim r As DAO.Recordset
Set r = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbSeeChanges)
If Not (r.EOF And r.BOF) Then
    r.MoveFirst
    Dim fld
    Do Until r.EOF = True
        rs.AddNew
        For Each fld In r.Fields
            rs(fld.Name) = r(fld.Name).value
        Next
        rs.Update
        r.MoveNext
    Loop
End If
r.Close
Set r = Nothing
Debug.Print rs.RecordCount '2131 records
Set Me.Recordset = rs

Итак, я только что прочитал это на сайте MSDN.:

Набор записей должен содержать одно или несколько полей с уникальным индексом, например первичный ключ таблицы.

(Примечание :Эта информация кажется ошибочной в данном контексте.)

5
задан HK1 5 May 2012 в 14:49
поделиться