使用Excel VBA按数据库排序顺序从Access导入数据

时间:2018-11-15 23:23:35

标签: excel vba ms-access

我有一个宏,可以从Access中提取数据样本。 Access数据第一列[ID]从1到数据末尾按数字顺序排序。下面的宏使用用户的输入(起点和终点)来获取样本。

有时会返回未按数据库排序的数据。例如,如果我输入起点3,500和终点3,999。 Excel中的第一行数据是3533至3,627。然后,下一行是3,500到3,532。然后是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

0 个答案:

没有答案