Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RecordSet в Excel файл / 11 сообщений из 11, страница 1 из 1
25.09.2003, 17:01
    #32275845
kat
kat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
Скажите, пожалуйста, как выборку данных поместить на лист рабочей книги 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
25.09.2003, 17:39
    #32275896
Hibernate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
без всяких циклов:
Код: 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
26.09.2003, 10:29
    #32276415
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
Есть такой метод CopyFromRecordset.
...
Рейтинг: 0 / 0
26.09.2003, 16:09
    #32277022
kat
kat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
Есть такой метод CopyFromRecordset
где? у какого объекта?

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

With wSh.QueryTables.Add(rst, Destination:=wSh.Range("A1"))
на это говорит "Invalid procedure call or argument" :((, хотя в VBA так работало.
...
Рейтинг: 0 / 0
26.09.2003, 16:14
    #32277034
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
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
29.09.2003, 14:20
    #32278326
kat
kat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
CopyFromRecordset Method
big-duke, спасибо, все отлично получилось
...
Рейтинг: 0 / 0
24.05.2004, 17:38
    #32531249
mucks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
Как переместить в эксель сортированный рекордсет ?
Метод CopyFromRecordset сортировку не сохраняет.
...
Рейтинг: 0 / 0
24.05.2004, 21:54
    #32531509
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
CopyFormRecordset вставляет то что лежит в курсоре
Возможно ваш курсор не поддерживает сортировку
...
Рейтинг: 0 / 0
25.05.2004, 12:14
    #32532107
mucks
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
В гриде отображаются сортированные данные, но в эксель они попадают несортированные.
...
Рейтинг: 0 / 0
25.05.2004, 15:20
    #32532684
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordSet в Excel файл
А грид их может сам сортировать через клиентский курсор.
Я для курсора ставил сл. параметры
CursorType = adOpenDynamic
CursorLocation = adUseClient
LockType = adLockOptimistic

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


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