CopyFromRecordset копирует только 65535 строк? - PullRequest
0 голосов
/ 17 октября 2018

Я пишу некоторый код в MS Access VBA.

У меня есть запрос MS Access с 110 000 строк, и я пытаюсь скопировать их в электронную таблицу Excel, но когда я вызываю

xlWorksheet.Range ("A2"). CopyFromRecordset rs

Он переносит только 65535 строк.Есть ли способ сделать его портом по всему набору?

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Если вы используете Excel 2003 или более раннюю версию, 65 535 - это жесткое ограничение.Если у вас Excel 2007 или новее, есть так много способов сделать это.Вот одна версия бесчисленных способов сделать это.

Sub ExportDataToExcel()
   Dim conn As ADODB.Connection
   Dim myRecordset As ADODB.Recordset
   Dim strConn As String

   strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\your_path_here\Northwind.mdb"

   Set myRecordset = New ADODB.Recordset

   FocusRow = ActiveCell.Row
   With myRecordset
       .Open "SELECT * FROM YourTable WHERE ID=" & Worksheets("Sheet1").Range("A2").Value, _
         strConn, adOpenKeyset, adLockOptimistic

      .Fields("ID").Value = Worksheets("Sheet1").Range("A" & FocusRow).Value
      .Fields("FName").Value = Worksheets("Sheet1").Range("B" & FocusRow).Value
      .Fields("LName").Value = Worksheets("Sheet1").Range("C" & FocusRow).Value
      .Fields("Address").Value = Worksheets("Sheet1").Range("D" & FocusRow).Value
      .Fields("Age").Value = Worksheets("Sheet1").Range("E" & FocusRow).Value
      .Update
      .Close
   End With
   Set myRecordset = Nothing
   Set conn = Nothing
End Sub
0 голосов
/ 18 октября 2018

Используемый вами файл Excel имеет формат .xls, скорее всего, или любой другой несовместимый.со следующего раза измените формат файла Excel и попробуйте снова.

...