powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Vba экспорт в excel используя recordset
7 сообщений из 7, страница 1 из 1
Vba экспорт в excel используя recordset
    #37917585
frz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frz
Гость
Подскажите, как нибудь можно выгрузить с помощью 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
Vba экспорт в excel используя recordset
    #37917766
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Vba экспорт в excel используя recordset
    #37919393
frz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frz
Гость
кладовщик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
Vba экспорт в excel используя recordset
    #37919528
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frz, как-то так
Код: vbnet
1.
2.
records_count=Лист1.Range("A" & (Lastrow)).CurrentRegion.rows.count
Лист1.Cells(1, Lastrow+records_count).value="Это первая пустая ячейка после выгрузки рекордсета"
...
Рейтинг: 0 / 0
Vba экспорт в excel используя recordset
    #37919907
кладовщик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
Vba экспорт в excel используя recordset
    #37922551
frz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
frz
Гость
комплектовщик,
подскажите пожалуйста как сделать чтобы названия полей не выгружались, если рекордсет пустой?
...
Рейтинг: 0 / 0
Vba экспорт в excel используя recordset
    #37923479
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
frz,

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


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