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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 12:06   #1
Top
Новичок
Джуниор
 
Регистрация: 29.04.2009
Сообщений: 1
По умолчанию Связь Excel и Access

Привет всем участникам форума

Прошу Вас помочь мне в следующем вопросе.
Есть задача получать различные отчёты, используя данные из базы данных Access.
Если можно подскажите, пожалуйста, подробнее как это делается на VBA.

Заранее благодарю всех
Top вне форума Ответить с цитированием
Старый 29.04.2009, 12:33   #2
winfacks
Пользователь
 
Аватар для winfacks
 
Регистрация: 25.04.2008
Сообщений: 33
По умолчанию

точно знаю что если ее (базу аццесс) подключить через Вкладку "Данные", "Подключения", то вы получите возможность выгрузки ее в ексель и обновление в вариантах: Сводная таблица, таблица данных.
Мне счас более интересно как обратных процесс сделать
Египетский бог Сет отвечал за переменные окружения.
winfacks вне форума Ответить с цитированием
Старый 29.04.2009, 14:50   #3
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от Top Посмотреть сообщение
Привет всем участникам форума

Прошу Вас помочь мне в следующем вопросе.
Есть задача получать различные отчёты, используя данные из базы данных Access.
Если можно подскажите, пожалуйста, подробнее как это делается на VBA.

Заранее благодарю всех
Чтение данных из базы Access мало чем отличается от чтения данных из любых внешних данных.
Я использую следующий код для чтения из Access/
Код:
private sub чтение()
Dim Conn As ADODB.Connection
Dim oRes As ADODB.Recordset
Dim oCmd As ADODB.Command
....

Set Conn = New ADODB.Connection
With Conn
   .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0"
   .Open 'имя_файла_Access 
End With
st = "Select * FROM 'имя_базы' WHERE 'условия' ORDER BY 'поле_сортировки'
Set oCmd = New ADODB.Command
Set oCmd.ActiveConnection = Conn
With oCmd
   .CommandText = st
   .CommandType = adCmdText
   .Execute
End With
Set oRes = New ADODB.Recordset
Set oRes.ActiveConnection = Conn
oRes.Open oCmd

.....
end sub
Юнлинг вне форума Ответить с цитированием
Старый 29.04.2009, 16:07   #4
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от winfacks Посмотреть сообщение
точно знаю что если ее (базу аццесс) подключить через Вкладку "Данные", "Подключения", то вы получите возможность выгрузки ее в ексель и обновление в вариантах: Сводная таблица, таблица данных.
Мне счас более интересно как обратных процесс сделать
Это тоже можно зделать используя такуюже процедуру что ивверху за исключением некоторых моментов.не обходимо в описании присоединения заменить слово SELECT на INSERT т.е.
Код:
st = "INSERT INTO 'имя_базы' VALUE 'приравнивание переменных'
set ADODB.Command
Set oCmd.ActiveConnection = Conn
With oCmd
   .CommandText = st
   .CommandType = adCmdText
   .Execute
End With
Вообще добавить легко. Но если база многопользовательская то возникает небольшая проблема, особенно если у базы есть автоматический ключ. Перед добавлением необходимо стать на последную запись прочитать ключ (SQL командой SELECT и командой чтения записи oRes.movelast), после чего сделать обновление (SQL команда UPDATE) - захват следующей за последней записи, и только после этого данную процедурку.
Юнлинг вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15
Связь Delphi с Access Light БД в Delphi 7 14.04.2008 18:09
Как из Delphi программно создать связь между двумя базами Access? Dimm Microsoft Office Access 6 12.01.2007 14:35
Связь базы Access через ADO Lex87 БД в Delphi 3 30.11.2006 07:38