Импорт данных из Access с использованием Excel VBA в порядке сортировки базы данных - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть макрос, который извлекает образец данных из 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...