powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RecordSet в Excel файл
11 сообщений из 11, страница 1 из 1
RecordSet в Excel файл
    #32275845
kat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
kat
Гость
Скажите, пожалуйста, как выборку данных поместить на лист рабочей книги Excel? Коннект такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim cn As ADODB.Connection
Dim rst As New ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open  "DSN=myDSN;UID=mylogin;PWD=mypassword;" 

rst.Open  "SELECT * FROM logistic.users users" , cn, adOpenKeyset, adLockOptimistic

Do Until rst.EOF
    For Each fld In rst.Fields
        Debug.Print fld.Value &  ";" ;
    Next
    Debug.Print
    rst.MoveNext
Loop
rst.Close
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32275896
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
без всяких циклов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
  Dim appExcel As Excel.Application
  Dim wb As Excel.Workbook
  Dim wSh As Excel.Worksheet
  Dim objPivotCache As Excel.PivotCache

  Dim cn As ADODB.Connection
  Dim rst As New ADODB.Recordset
  Set cn = New ADODB.Connection
  cn.Open  "DSN=myDSN;UID=mylogin;PWD=mypassword;" 

  rst.Open  "SELECT * FROM logistic.users users" , cn, adOpenKeyset, LockOptimistic

  Set appExcel = New Excel.Application
  appExcel.Visible = False
  Set wb = appExcel.Workbooks.Add
  Set wSh = wb.Worksheets( 1 )
  With wSh.QueryTables.Add(rst, Destination:=wSh.Range( "A1" ))
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod =  0 
    .PreserveColumnInfo = True
    .Refresh BackgroundQuery:=False
  End With
  appExcel.Visible = True
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32276415
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такой метод CopyFromRecordset.
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32277022
kat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
kat
Гость
Есть такой метод CopyFromRecordset
где? у какого объекта?

Dim objPivotCache As Excel.PivotCache
а зачем это здесь и где оно дальше используется?

With wSh.QueryTables.Add(rst, Destination:=wSh.Range("A1"))
на это говорит "Invalid procedure call or argument" :((, хотя в VBA так работало.
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32277034
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CopyFromRecordset Method


Copies the contents of an ADO or DAO Recordset object onto a worksheet, beginning at the upper-left corner of the specified range. If the Recordset object contains fields with OLE objects in them, this method fails.

Syntax

expression.CopyFromRecordset(Data, MaxRows, MaxColumns)

expression Required. An expression that returns a Range object.

Data Required Void. The Recordset object to copy into the range.

MaxRows Optional Variant. The maximum number of records to copy onto the worksheet. If this argument is omitted, all the records in the Recordset object are copied.

MaxColumns Optional Variant. The maximum number of fields to copy onto the worksheet. If this argument is omitted, all the fields in the Recordset object are copied.

Remarks

Copying begins at the current row of the Recordset object. After copying is completed, the EOF property of the Recordset object is True.


CopyFromRecordset Method Example

This example copies the field names from a DAO Recordset object into the first row of a worksheet and formats the names as bold. The example then copies the recordset onto the worksheet, beginning at cell A2.

For iCols = 0 to rs.Fields.Count - 1
ws.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
Next
ws.Range(ws.Cells(1, 1), _
ws.Cells(1, rs.Fields.Count)).Font.Bold = True
ws.Range("A2").CopyFromRecordset rs
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32278326
kat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
kat
Гость
CopyFromRecordset Method
big-duke, спасибо, все отлично получилось
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32531249
mucks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как переместить в эксель сортированный рекордсет ?
Метод CopyFromRecordset сортировку не сохраняет.
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32531509
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CopyFormRecordset вставляет то что лежит в курсоре
Возможно ваш курсор не поддерживает сортировку
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32532107
mucks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В гриде отображаются сортированные данные, но в эксель они попадают несортированные.
...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32532684
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А грид их может сам сортировать через клиентский курсор.
Я для курсора ставил сл. параметры
CursorType = adOpenDynamic
CursorLocation = adUseClient
LockType = adLockOptimistic

...
Рейтинг: 0 / 0
RecordSet в Excel файл
    #32619227
Фотография Farkhod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как кинуть в эксель отфильтрованный рекордсет в гриде ?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RecordSet в Excel файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]