Я пытаюсь перенести Access 2003 (работает отлично) на Access 2007. Код, написанный в VBA, создает некоторые проблемы. Как у меня есть одна основная форма и 2 подформа. В основной форме набор записей, заданный динамическим запросом, но основанный на данных основной формы, когда я пытаюсь установить Recordset of subform, затем обращайтесь к краху 2007: &. Не могли бы вы помочь кому-нибудь узнать, почему это происходит в доступе 2007.Проблема Access Records Recordset
Public Sub LoadRecord(strRecId As String)
On Error Resume Next
Dim ctl As Access.Control
Dim strsql As String
Dim strID As String
Dim rs As ADODB.Recordset
strsql = "SELECT * from vwContractsMainForm WHERE ID = '" & strRecId & "'"
Call OLEDBConnect
Set rs = New ADODB.Recordset
With rs
Set .ActiveConnection = cnn
.Source = strsql
.CacheSize = 1
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseServer
.Open
End With
'Set the first sub form's Recordset property to the ADO recordset
Set Me.Recordset = rs '-------- this part creates the problem.
Me.UniqueTable = "tbl_contracts"
Set rs = Nothing
Set cnn = Nothing
Это поможет добавить точное сообщение об ошибке к вашему вопросу. Какова ваша объектная модель по умолчанию? Если Me.Recordset также является ADODB, тогда у вас будет проблема. – heferav
Heferav. Обратите внимание, что она заявляет о сбоях доступа. Таким образом, сообщение об ошибке отсутствует. –
Почему вы назначаете набор записей ADO для формы вместо того, чтобы просто устанавливать свойство Recordsource формы? Ничего не сказано в инструкции SQL или параметрах, которые вы устанавливаете для своего набора записей, которые указывают на необходимость какой-либо необходимости в наборе записей ADO. Знаете ли вы, что это можно сделать гораздо проще? –