我有一个宏,可以从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