Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
14 / 14 / 5
Регистрация: 24.02.2014
Сообщений: 84
1

Импорт данных из Access в Excel (вставка данных в лист)

30.10.2014, 13:03. Просмотров 2632. Ответов 5
Метки нет (Все метки)

Добрый день Уважаемые Гуру VBA.

Выгружаю данные из Access в Excel, для анализа загружаю таблицы Access в разные листы Excel.
Выгружаю сразу весь Recordset, не перебирая через EOF все поля. Беда в том, что использую след. строку
Visual Basic
1
Set QT1 = ActiveSheet.QueryTables.Add(rs, Range("A" & i))
, а она зараза не хочет работать, если задаю след. образом
Visual Basic
1
Set QT1 = Sheets("processes").QueryTables.Add(rs, Range("A" & i))
, приходиться через Select, что приводит к переключению между листами, не очень красиво(блымает). Можно, отключить обновление экрана, но все таки, как ссылаться на нужный лист, не выбирая его и помещать в него данные из Recordset?
Visual Basic
1
2
3
Sheets("processes").Select
  i = 1
Set QT1 = ActiveSheet.QueryTables.Add(rs, Range("A" & i))
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
Sub From_BD()
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = CreateObject("ADODB.Connection")
 
t = "H:\Depts\D_Loan_Adm\Int\STATISTICS\STATISTICS_\IQ_Keep\Micro_SLA.accdb"
cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & t & ";Jet OLEDB:Database Password=Nezabydka2014;"
 
StartUSA = Month(FormDB.TextBox1) & "/" & Day(FormDB.TextBox1) & "/" & Year(FormDB.TextBox1)
FinishUSA = Month(FormDB.TextBox2) & "/" & Day(FormDB.TextBox2) + 1 & "/" & Year(FormDB.TextBox2)
cn.Open
 
Set rs = CreateObject("ADODB.Recordset")
 
 
rs.CursorType = adOpenKeyset
 
rs.LockType = adLockOptimistic
 
rs.Open "SELECT * FROM Micro_Processes Where Start_Time > #" & StartUSA & "# and Start_Time < #" & FinishUSA & "# and Process = 'Видача кредитних коштів' order by CENTRAL_TIME;", cn
 
Sheets("processes").Select
  i = 1
Set QT1 = ActiveSheet.QueryTables.Add(rs, Range("A" & i))
QT1.Refresh
 rs.Close
cn.Close
End Sub
Спасибо!
0
Вложения
Тип файла: rar 30.10.2014.rar (383.9 Кб, 23 просмотров)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2014, 13:03
Ответы с готовыми решениями:

Вставка данных из БД Access на лист
ConnectionString = &quot;Provider=Microsoft.ACE.OLEDB.12.0; Data Source=&quot; &amp; ActiveWorkbook.Path &amp;...

Импорт данных из Excel в Базу Данных Access
Привет всем !!! Столкнулся вот с какой задачей, нужно сделать импорт в Access из данных Excel. ...

Импорт данных из Excel в БД Access
Здравствуйте. Не первый раз сталкиваюсь с проблемой импорта данных. Из готовой таблицы Excel...

Импорт данных из Excel в Access
Добрый день, очень нужна помощь. Как автоматически с помощью кода VBA (по нажатию кнопки)...

5
Заблокирован
30.10.2014, 13:30 2
И так не работает?
Visual Basic
1
2
3
4
with Sheets("processes") '.Select
  i = 1
Set QT1 = .QueryTables.Add(rs, .Range("A" & i))
end with
1
2770 / 704 / 104
Регистрация: 04.02.2011
Сообщений: 1,432
30.10.2014, 13:43 3
Присоединяюсь к совету Апострофф. Строки 9-10 последнего листинга красивей написать так:
Visual Basic
1
2
StartUSA = Format(CDate(FormDB.TextBox1), "mm/dd/yyyy")
FinishUSA = Format(CDate(FormDB.TextBox2), "mm/dd/yyyy")
1
3795 / 1242 / 335
Регистрация: 07.08.2013
Сообщений: 3,118
30.10.2014, 15:24 4
Лучший ответ Сообщение было отмечено sernik как решение

Решение

а чем вам copyfromrecordset не нравится?
Visual Basic
1
range("a1").copyfromrecordset rs
1
14 / 14 / 5
Регистрация: 24.02.2014
Сообщений: 84
30.10.2014, 15:55  [ТС] 5
Visual Basic
1
2
3
4
with Sheets("processes") '.Select
  i = 1
Set QT1 = .QueryTables.Add(rs, .Range("A" & i))
end with
Ругается ошибкой и выводит след. сообщение (вложение ошибка 1)
Visual Basic
1
2
StartUSA = Format(CDate(FormDB.TextBox1), "mm/dd/yyyy")
FinishUSA = Format(CDate(FormDB.TextBox2), "mm/dd/yyyy")
Ругается на дату, переделывает "/" на "." , возможно как то региональные настройки иначе настроены ( во вложении ошибка 2)
0
Миниатюры
Импорт данных из Access в Excel (вставка данных в лист)   Импорт данных из Access в Excel (вставка данных в лист)  
14 / 14 / 5
Регистрация: 24.02.2014
Сообщений: 84
30.10.2014, 16:03  [ТС] 6
snipe, подойдет, то что нужно!
Всем спасибо за помощь!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2014, 16:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Импорт данных из Excel в Access
Доброго времени суток, уважаемые. Промлемка такая: нужно импортировать данные из таблицы Excel в...

Импорт данных из excel в access
Доброе время суток! При создании базы данных я столкнулся с проблемой, которую пока не могу решить,...

Импорт данных из excel в БД Access
Не получается сделать кнопку на форме в access, которая смогла бы импортировать выбранный файл...

Импорт данных из Excel в Access
День добрый, уважаемое сообщество! Прошу помощи в настройке импорта данных из Excel в Access....

Импорт данных в Excel из Access
Суть вопроса в том что есть клиент базы (база данных разделена) и иксель файл который используется...

Импорт данных из Excel в Access
При импорте нескольких страниц таблицы в базу (использовалась возможность связывания) не...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.