Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Vba экспорт в excel используя recordset / 7 сообщений из 7, страница 1 из 1
15.08.2012, 13:46
    #37917585
frz
frz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vba экспорт в excel используя recordset
Подскажите, как нибудь можно выгрузить с помощью recordset таблицу mssql целиком, включая названия полей?

Мой вариант выгружает только сами записи
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub aa()
Dim cnPubs As ADODB.Connection
Dim rst As ADODB.Recordset
Set cnPubs = New ADODB.Connection
Set rst = New ADODB.Recordset
Dim strConn As String
Dim sqltbz As String

strConn = "PROVIDER=SQLOLEDB.1;"
strConn = strConn & "DATA SOURCE=local;INITIAL CATALOG=bd_ex;"
strConn = strConn & " INTEGRATED SECURITY=sspi;"
cnPubs.Open strConn

rst.ActiveConnection = cnPubs
rst.Open "SELECT * FROM NewPki501"
Lastrow = Cells(Rows.Count, 3).End(xlUp).Row
Lastrow = Lastrow + 1
Лист1.Range("A" & Lastrow).CopyFromRecordset rst

cnPubs.Close
Set rst = Nothing
Set cnPubs = Nothing
End Sub



нашел в инете такое решение, но у меня не заработало почему-то

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
iRowsCount = rst.RecordCount
If iRowsCount > 0 Then
    iFieldsCount = rst.Fields.Count
        For i = 1 To iFieldsCount
            Cells(Lastrow, i).Value = rst.Fields(i - 1).Name
        Next

    i = Lastrow + 1
    Do Until rst.EOF
        For j = 1 To iFieldsCount
            Cells(i, j) = rst(j - 1)
        Next j
    rst.MoveNext
    i = i + 1
    Loop
End If
...
Рейтинг: 0 / 0
15.08.2012, 14:39
    #37917766
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vba экспорт в excel используя recordset
frz, нужно сначала "выгрузить" названия полей
Код: vbnet
1.
2.
3.
For сol = 0 To rst.Fields.Count - 1
           Cells(Lastrow, 1 + сol).Value = rst.Fields(сol).Name
Next


, а потом выгрузить сами записи при помощи
Код: vbnet
1.
Лист1.Range("A" & (Lastrow+1)).CopyFromRecordset rst
...
Рейтинг: 0 / 0
16.08.2012, 13:57
    #37919393
frz
frz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vba экспорт в excel используя recordset
кладовщикfrz, нужно сначала "выгрузить" названия полей
Код: vbnet
1.
2.
3.
For сol = 0 To rst.Fields.Count - 1
           Cells(Lastrow, 1 + сol).Value = rst.Fields(сol).Name
Next


, а потом выгрузить сами записи при помощи
Код: vbnet
1.
Лист1.Range("A" & (Lastrow+1)).CopyFromRecordset rst



Спасибо, помогло.
А как перейти на первую пустую строку после добавления записей
Лист1.Range("A" & (rst.RecordCount + Lastrow +1)).Select не работает
...
Рейтинг: 0 / 0
16.08.2012, 14:58
    #37919528
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vba экспорт в excel используя recordset
frz, как-то так
Код: vbnet
1.
2.
records_count=Лист1.Range("A" & (Lastrow)).CurrentRegion.rows.count
Лист1.Cells(1, Lastrow+records_count).value="Это первая пустая ячейка после выгрузки рекордсета"
...
Рейтинг: 0 / 0
16.08.2012, 18:01
    #37919907
Vba экспорт в excel используя recordset
кладовщикfrz, как-то так
Код: vbnet
1.
2.
records_count=Лист1.Range("A" & (Lastrow)).CurrentRegion.rows.count
Лист1.Cells(1, Lastrow+records_count).value="Это первая пустая ячейка после выгрузки рекордсета"


Выше описка. Правильно
Код: vbnet
1.
Лист1.Cells(Lastrow+records_count, 1).value="Это первая пустая ячейка после выгрузки рекордсета"
...
Рейтинг: 0 / 0
20.08.2012, 09:49
    #37922551
frz
frz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vba экспорт в excel используя recordset
комплектовщик,
подскажите пожалуйста как сделать чтобы названия полей не выгружались, если рекордсет пустой?
...
Рейтинг: 0 / 0
20.08.2012, 18:20
    #37923479
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Vba экспорт в excel используя recordset
frz,

проверьте сначала rst.EOF
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Vba экспорт в excel используя recordset / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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