У меня есть макрос, который извлекает образец данных из Access. Первый столбец данных доступа [ID] отсортирован в числовом виде от 1 до конца данных. В приведенном ниже макросе вводятся данные пользователя (начальная и конечная точки) для получения образца.
Иногда возвращает данные, не отсортированные как в базе данных. Например, если я введу начальную точку 3500 и конечную точку 3,999. Первый ряд данных в Excel - от 3533 до 3627. Затем следующий ряд - от 3500 до 3532. Затем от 3628 до 3999.
Проблема постоянна в тех же начальных / конечных точках.
Я просмотрел базу данных и проблем не было.
Sub GetAccessData(StartofData As Long, EndofData As Long, WS As Worksheet, WB_Path As String)
Dim DBFullName As String
Dim Connect As String, Source As String
Dim Connection As ADODB.Connection
Dim Recordset As ADODB.Recordset
Dim Col As Long
Dim x As Long
Application.ScreenUpdating = False
'DataBase Path
DBFullName = WB_Path & "\RawData - Template.accdb"
'Open the Connection
Set Connection = New ADODB.Connection
Connect = "Provider=Microsoft.ACE.OLEDB.12.0;"
Connect = Connect & "Data Source=" & DBFullName & ";"
Connection.Open ConnectionString:=Connect
'Create a RecordSet
Set Recordset = New ADODB.Recordset
' Client-side cursor
Recordset.CursorLocation = adUseClient
With Recordset
Source = "SELECT * FROM CT_RawData WHERE [ID] BETWEEN " & StartofData & " AND " & EndofData
.Open Source:=Source, ActiveConnection:=Connection
'WS.Activate
On Error Resume Next
WS.Range("A3").CopyFromRecordset Recordset
'Sheets("Chart1").Activate
End With
End Sub