Извлечь, чтобы преуспеть из базы данных Access, используя VBA - PullRequest
0 голосов
/ 28 февраля 2019

По сути, я хочу извлечь один столбец из базы доступа по моему запросу в VBA.Мой пример кода ниже, ошибки не были найдены, но единственное, что работает, - это просто откройте файл Excel, в который нужно скопировать данные из доступа.

'Set db = OpenDatabase("\\location\names.mdb")
Set rs = db.OpenRecordset("select first_name from customerinfo " _
& "where datehired between #" & (DTPicker1) & "#  and #" & (DTPicker2) & "# ;")


If rs.RecordCount <> 0 Then

Dim x As Integer
Dim count As Integer
Dim PATH, file As String
PATH =("\\location\Extracted Data.xlsm")
file = Right$(PATH, Len(PATH) - InStrRev(PATH, "\"))
Workbooks.Open PATH
Workbooks(file).Activate

count = rs.RecordCount
For x = 2 To count
Workbooks(file).Sheets("extracted").Range("a" & x) = rs.Fields("first_name")

Next
End If'

У меня должно быть 3 результата для копированияв моем превосходстве.Может ли кто-нибудь помочь мне найти то, что отсутствует в моем коде?(

1 Ответ

0 голосов
/ 28 февраля 2019

Например, вы используете .RecordCount перед полной загрузкой набора записей в набор данных.Это, вероятно, возвращает 1, поскольку только 1 запись была загружена, поэтому ваш код пропускает For x = 2 To count (так как это for x=2 to 1)

Во-вторых, вы фактически не перемещаете набор записей.

Несколько лучший подход (за исключением других ошибок, которые я мог пропустить):

x = 2
Do While Not rs.EOF 'While not at the end of the recordset
    Workbooks(file).Sheets("extracted").Range("a" & x) = rs.Fields("first_name")
    x = x + 1
    rs.MoveNext 'Move to next record
Loop
...