Я запускаю этот код в своей подчиненной форме, когда моя форма загружается, и я не получаю никаких сообщений об ошибках или разрывов кода. Мой debug.print показывает, что Recordset rs заполнен 2131 записями, как и должно быть, но моя форма показывает одну строку с #Name? в каждом поле. Свойства источника управления на моих элементах управления, безусловно, соответствуют именам полей, которые я перечислял выше. RS - это переменная уровня формы, и я не закрываю ее или не устанавливаю ее ничего, пока форма не закрывается.В памяти, в автономном режиме, отключен ADO Recordset
Любая идея, что я делаю неправильно?
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
ОК, так что я просто прочитал this on the MSDN site:
Набор записей должен содержать одно или несколько полей, которые однозначно индексируются, такие как основного ключа таблицы.
(Примечание: Эта информация, как представляется, ошибочным в этом контексте.)
Это небольшой стол (4 поля). Но я думаю, что мне никогда не приходилось разрабатывать для предприятия, поэтому я привык тянуть большие объемы данных (10 000 записей, а иногда и больше) в представления таблиц. С Gigabit Ethernet и быстрыми жесткими дисками на нашем сервере у меня нет никаких претензий от моих пользователей, хотя мы используем DAO с ODBC Linked Tables. Итак, я не оправдываю свой подход настолько, насколько я просто говорю, что «пока» на самом деле он работает очень хорошо. – HK1