Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
Chups

Как произвести экспорт данных из базы Access в Excel

01.03.2010, 07:36. Показов 3653. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть база данных access. Мне необходимо произвести экспорт всех или выбранных строк в excel. Как?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2010, 07:36
Ответы с готовыми решениями:

Экспорт данных из Access в Excel через VB 6.0
Есть программа на vb 6.0 c БД access, нужно передать данные в excel шаблон через кнопку

Как програмно из VB сделать экспорт из таблицы Access в Excel
Пример, имеется база данных Data1. связано с таблицей базы данных Access и ее (таблицу)с приложения VB я заполняю... ...

Как делается экспорт данных в Excel?
Экспорт данных в Excel... как это делается???

11
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
01.03.2010, 11:49
При помощи ADO. А к Excel получить доступ как к стандартному объекту методом GetObject(,'Excel.Appliction') или CreateObject(,'Excel.Appliction').
0
Comanche
01.03.2010, 11:55
В Экселе есть такая фенька - 'Внешние данные'. Она позволяет закачать из самых разных форматов, в т.ч. и из Аксесса. Твоя задача - просто через OLE поуправлять Экселем, чтобы он сделал выборку из внешних данных. Это требует наличия на компе Microsoft Query. Вот пример, бОльшая часть которого была просто записана макрорекордером Экселя, а потом была перенесена в VB:
Visual Basic
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
31
32
33
34
35
36
37
38
39
40
41
42
43
Sub Main()
    Dim myExcel As Object
    Const xlInsertDeleteCells = 1
'
    Set myExcel = CreateObject('Excel.Application')
'    
    myExcel.Workbooks.Add
'    
    With myExcel.ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
        'ODBC;DSN=База данных MS Access;DBQ=C:Test.mdb;DefaultDir=C:;DriverId=25;FIL=MS' _
        ), Array(' Access;MaxBufferSize=2048;PageTimeout=5;')), Destination:=Range('A1'))
'        
        .CommandText = Array( _
            'SELECT Companies.CustomerID, Companies.ManagerID, Companies.Название' & Chr(13) & '' & Chr(10) & _
            'FROM `C:Test`.Companies Companies' & Chr(13) & '' & Chr(10) & 'WHERE (Co' _
            , 'mpanies.CustomerID>=1 And Companies.CustomerID<=55)' & Chr(13) & '' & Chr(10) & _
            'ORDER BY Companies.CustomerID')
'        
        .Name = 'Запрос из База данных MS Access'
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
'    
    With myExcel
        .ActiveWorkbook.SaveAs 'C:Test.xls'
        .ActiveWorkbook.Close
        .Application.Quit
    End With
'    
    Set myExcel = Nothing
'    
End Sub
Chups
31.03.2010, 12:02
Пишу на кнопку:
Visual Basic
1
2
3
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject('Excel.Sheet')
ExcelSheet.SaveAs 'c:TEST.xls'
Создается листик.
А как кинуть в него все (!) данные из некой vozvrat.mdb ?
Обязательно ли писать запрос?
Chups
31.03.2010, 15:30
Ну помогите чайнику!!!!!!!!!!!
Comanche
01.04.2010, 19:50
Что значит ВСЕ данные из mdb-файла?
В нём может быть полсотни таблиц, дюжина запросов, форм, модулей...
Как ты себе это представляешь?!
Chups
05.04.2010, 08:46
Нет, все просто - одна база ексес и одна таблица, в которой около 20 field и несколько сотен строк.
Мне необходимо все эти данные кинуть в ексель .
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
05.04.2010, 11:10
Вот тебе пример полного контроля над Excel. Работает очень медленно если применять форматирование ячеек еще медленней, но можно оперировать любыми свойствами книг и листов, применять функции листов и т.д.

Visual Basic
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
31
32
33
34
35
36
Dim appExc As Object
Dim wBook As Object
Dim wSheet As Object
Dim excFlName$
Dim NewEXC As Boolean
 
excFlName = App.Path & 'ReportsReports.xls'
    On Error Resume Next
    
    Set appExc = GetObject(, 'excel.application')
    NewEXC = False
    If err.Number <> 0 Then
        NewEXC = True
        Set appExc = CreateObject('excel.application')
            If appExc Is Nothing Then
                MsgBox 'Error: У Вас не установлено приложение MS Excell!'
                Exit Sub
            End If
    End If
    Set wBook = appExc.Workbooks.Open(excFlName)
    Set wSheet = wBook.Worksheets(1)
 
   wSheet.Cells(1, 2).Value = rsRep.Fields('tovar_name').Value
   wSheet.Cells(1, 3).Value = rsRep.Fields('cnt_nal').Value
   wSheet.Cells(1, 4).Value = rsRep.Fields('price_out').Value
   wSheet.Cells(1, 5).Value = rsRep.Fields('pays').Value
 
   wBook.Save
   wBook.Close
   If NewEXC = True Then
      'Если мы создали экземпляр Excel, то уничтожаем его       
      appExc.Quit
   End If
   Set wSheet = Nothing
   Set wBook = Nothing
   Set appExc = Nothing
0
0 / 0 / 0
Регистрация: 16.12.2009
Сообщений: 12
06.04.2010, 11:25
Один из вариантов решения проблемы:
1. Создаешь рекордсет (ADO), тобишь выборку из твоей таблицы
2. Пользуешься стандартной функцией Excel-а для версий больше 9.

Visual Basic
1
2
3
4
5
 If Val(MyXL.Application.Version) >= 9 Then
   MyXL.Application.Range('A1').CopyFromRecordset RecordsetForExport
 else
   'вставка данных любым другим методом
 End If
0
Chups
06.04.2010, 16:39
Пишет: ActiveX component can't create object.
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
06.04.2010, 16:58
Держи! Быстрее не бывает!

В референсах надо отметить Excel чтобы не создавать объект.

Visual Basic
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
Dim xl As Excel.Application
Dim wbk As Workbook
Dim wsh As Worksheet
Dim tmpStr$
Dim rsADO As ADODB.Recordset
 
....
Здесь открытие рекордсета твоей таблицы
....
 
Set xl = New Excel.Application
Set wbk = xl.Workbooks.Add
Set wsh = wbk.Worksheets(1)
 
tmpStr = rsADO.GetString(, , Chr(9), vbNewLine)
 
'Я тестил вот на этой строке и все ок было! Лень было писать запрос к базе!
'tmpStr = 'XPraptor' & Chr(9) & 'Cool Hacker' & vbNewLine & 'AND Cool' & Chr(9) & 'Programmer!' & vbNewLine
'А GetString вернет все записи таблицы в таком же виде
xl.Visible = True
wsh.Activate
Clipboard.SetText tmpStr
wsh.Paste Destination:=wsh.Range('A2')
 
Set wsh = Nothing
Set wbk = Nothing
Set xl = Nothing
0
0 / 0 / 3
Регистрация: 28.01.2010
Сообщений: 279
06.04.2010, 17:10
Не поленился проверил на рекордсете, тут Сорри вышло! С маленьой таблой все ОК, а вот с таблой на 2000 записей и 20 полей - Out of Memory! Буду думать как усовершенствовать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2010, 17:10
Помогаю со студенческими работами здесь

Экспорт из формы Access в Excel
Здравствуйте.Нужна помощь.Не могу разобраться.В этом коде ошибка 429(КОд для экспорта одной записи в Excel из формы Access): Private...

Как сделать экспорт данных из таблицы базы данных MSSQL 2008 в Excel на php?
Добрый день. Подскажите как сделать экспорт данных из таблицы базы данных MSSQL 2008 в Excel ? P.S.: на MySQl все просто, однако...

Экспорт из базы Access в таблицу Excel с древовидной структурой
Доброго времени суток. Есть задача выгрузить прайс-лист из access в таблицу excel с древовидной структурой. Выгружать нужно в шаблон,...

Экспорт базы данных из С# в excel
Раскажите, приведите пример или скиньте что нибудь почитать по этой теме. заранее благодарю

Экспорт-импорт данных Excel-Access-Excel
Доброе время суток уважаемые форумчане. Приходит информация в экселевской таблице. Скидываю её в общую базу в Access. Для отчета...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru