Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2011, 00:09   #1
eutelg
Пользователь
 
Регистрация: 18.08.2011
Сообщений: 24
По умолчанию access vba

Здравствуйте!
Я тут полазил по разным форумам насчет моей проблемы. надо сказать, что решения есть. однако, возможно здесь мне подскажут более элегантное

суть простая: в access есть 3 млн записей. необходимо создать в vba excess макрос, который бы делал запрос в эксес и экспортировал результат запроса в excel в виде отдельного файла.

Заранее спасибо!
eutelg вне форума Ответить с цитированием
Старый 19.08.2011, 00:33   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

По форуму поискать вера не позволяет.
Примеров много
Код:
Sub Go_Junior()
Const sCn1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Dim cn As ADODB.Connection, rs As ADODB.Recordset
Dim sCon As String, sSql As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
    sCon = sCn1 + "C:\DOCUMENTS AND SETTINGS\alex\Рабочий стол\mybd.mdb"
    cn.Open sCon
    
    If Not cn.State = 1 Then Exit Sub

 sSql = "SELECT книги.название " + _
    "FROM книги ;"
    rs.Open sSql, cn, adOpenStatic, adLockReadOnly
      range.("A1")CopyFromRecordset rs
rs.Close:   cn.Close
Set cn = Nothing:   Set rs = Nothing
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 19.08.2011, 00:41   #3
eutelg
Пользователь
 
Регистрация: 18.08.2011
Сообщений: 24
По умолчанию

через recordset? понятно, но сам запрос в access здесь не делается только импорт существующего
eutelg вне форума Ответить с цитированием
Старый 19.08.2011, 00:44   #4
eutelg
Пользователь
 
Регистрация: 18.08.2011
Сообщений: 24
По умолчанию

получается надо сначала сделать запрос в access, таем перейти в excle и запустить макрос. имя в макросе должно соответствовать имени запроса, иначе будет ошибка. идея в том, чтобы либо через access vba выгрузить в нужную книгу excel - там дальше свой макрос, либо с помощью excel vba сформировать полный запрос в базе аксес и выгрузить в excel.
eutelg вне форума Ответить с цитированием
Старый 19.08.2011, 01:26   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

какая разница откуда запрос посылать.
Можно в access выполнить запрос .создать файл Excel,и скопировать на лист
Можно с Excel тоже самое сделать
Макрос можно выполнить в Excel,или в access
Анализ,обработка данных Недорого

Последний раз редактировалось doober; 19.08.2011 в 01:29.
doober вне форума Ответить с цитированием
Старый 19.08.2011, 01:56   #6
eutelg
Пользователь
 
Регистрация: 18.08.2011
Сообщений: 24
По умолчанию

вы не поняли: запрос - это термин access его сначала надо сделать, создать (создание -> конструктор запросов), а уже потом экспортировать в excel или сделать такой запрос из базы access по параметрам (например: дата рождения, город и т.д.) и импортировать в excel
eutelg вне форума Ответить с цитированием
Старый 19.08.2011, 03:52   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

нет это Вы не поняли...
запрос - это термин не access, а способ получения данных из базы данных (и из базы access в частности)
у эrселя есть компонент MSQuery, позволяющий формировать текст запроса и получать данные из баз данных.
Это можно проделать в ручном режиме, можно управлять процессом с помощью макроса.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.08.2011, 10:25   #8
eutelg
Пользователь
 
Регистрация: 18.08.2011
Сообщений: 24
По умолчанию

все верно, но как это реализуется в вашем коде? я не вижу как раз этого запроса по параметрам, только обращение к базе данным и выгрузка в excel
eutelg вне форума Ответить с цитированием
Старый 19.08.2011, 12:58   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

я тут никаких кодов не публиковал, а вот Сергей написал Вам:
Цитата:
sSql = "SELECT книги.название " + _
"FROM книги ;"
а это что? не запрос? (ключевое слово SELECT)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 19.08.2011, 13:09   #10
eutelg
Пользователь
 
Регистрация: 18.08.2011
Сообщений: 24
По умолчанию

Цитата:
я тут никаких кодов не публиковал
да, сорри. перепутал
Цитата:
sSql = "SELECT книги.название " + _
"FROM книги ;"
где формирование самого запроса по конкретным параметрам: дата рождения и т.п. или эта строчка угадывает все мои мысли насчет того какие пеараметры мне надо задать при формировании запроса?
eutelg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Access - ADO dvl41 Microsoft Office Access 2 10.05.2011 19:40
МАССИВЫ В VBA ACCESS ALYSA Помощь студентам 0 24.05.2010 14:38
Проблема в vba access jigy Microsoft Office Access 7 29.04.2010 12:32
Функции на VBA в Access Verano naranjo Microsoft Office Access 0 23.04.2010 11:05
VBA + ms ACCESS Dr.AgoN Microsoft Office Access 1 19.03.2009 10:23