Фильтры доступа не работают с ошибкой подключения ADODB.Recordset (поставщик данных не может быть инициализирован - PullRequest
0 голосов
/ 07 ноября 2018

Мы перенесли часть нашей базы данных Access в mysql, этот фрагмент просто извлекает оператор SQL из таблицы, содержащей имена форм и операторы SQL, а затем устанавливает ее как набор записей форм

Проблема, с которой я столкнулся на данный момент, заключается в том, что, хотя скорость является огромным улучшением, интерфейс доступа не полностью функционирует, как ожидалось, обновление и фильтрация по функциям текстового доступа не работают, просто выдает ошибку (поставщик данных может не инициализируется).

Я полагаю, что это как-то связано с тем, что мы устанавливаем источник данных в форме. Есть ли что-то подобное без огромного падения производительности?

Если я просто свяжу представление из mysql с доступом и установлю источник записей форм в качестве этого представления, загрузка и фильтрация займет гораздо больше времени

Изображение здесь http://puu.sh/BXw55/fe8b01d8d0.jpg Показывает, когда возникает ошибка, при попытке использовать фильтры доступа

Вот функция:

Private Sub Command91_Click() 'Clear filters'
On Error GoTo ErrHandler
Dim oConn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim ConnStr As String
Dim strOrderBy As String

'Creating new connection, and then using ConnectString function to connect to mysql Database'
Set oConn = New ADODB.Connection
oConn.Open ConnectString

'Clears filter fields to null'
fltrDocBaseID.Value = Null
fltrDocBaseClientDocNumber.Value = Null
fltrDisciplinesID.Value = Null
fltrDocTypeID.Value = Null
fltrDocSubTypesID.Value = Null
fltrProjectID.Value = Null
FilterOn = False
fltrDocBaseTitle1.Value = Null
fltrDocBaseTitle2.Value = Null
fltrDocBaseTitle3.Value = Null
fltrDocBaseTitle4.Value = Null

'Retrieves SQL code from refreshDS(fname As String) located in Module- SQLDatasources'
strSQL = refreshRS(Me.Name)
'Creates new recordset'

Set rs = New ADODB.Recordset
'Connects to mysql database, runs strSQL and then sets page recordset'
'to the current strSQL'
With rs
    Set .ActiveConnection = oConn
    .Source = strSQL
    .LockType = adLockOptimistic
    .CursorType = adOpenKeyset
    .CursorLocation = adUseClient
    .Open
End With

Set Me.Recordset = rs
'Closes recordset and connections, This is a good practice for traffic efficiency'
rs.Close
oConn.Close
Set rs = Nothing
Set oConn = Nothing
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...