|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.06.2012, 15:15 | #1 |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Таблицы Access в Листы Excel дописать код
Здравствуйте Уважаемые программисты!
Есть файл-база с таблицами в Access (например, Таблица1, Таблица2 и т.д.). Код приведенный ниже (находится в активной книге Excel) позволяет из файла Access в активную книгу Excel импортировать данные этих таблиц предварительно создав Листы Excel с именами равными именам таблиц Access. Private Sub Workbook_Open() Dim Database As DAO.Database Dim rs As DAO.Recordset Dim Filename As String Dim tb As DAO.TableDef Dim Sheet As Worksheet Dim wkbk As Excel.Workbook Dim wksht As String Dim i As Integer Dim xl As New Excel.Application Filename = "БазаДанных.mdb" If Dir(ThisWorkbook.Path & "\" & Filename) <> "" Then Set Database = DAO.OpenDatabase(ThisWorkbook.Path & "\" & Filename, True, True) End If xl.DisplayAlerts = False With wkbk For Each tb In Database.TableDefs If Left(tb.Name, 4) <> "MSys" Then Set rs = Database.OpenRecordset(tb.Name, dbOpenDynaset) wksht = tb.Name Sheets.Add after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = wksht Sheets(wksht).Range("A1").CopyFromR ecordset rs End If Next tb End With xl.DisplayAlerts = True rs.Close xl.Quit Set wkbk = Nothing Set xl = Nothing Set rs = Nothing Set Database = Nothing End Sub Подскажите пожалуйста, как добавить в данный код проверку совпадения имен существующих в книге Листов с именами выгружаемых таблиц Access, т.е. если в активной книге Excel существует Лист и он совпадает по своему имени с именем любой таблицы Access, то новый лист (с именем таблицы Access) не создавать. Заранее спасибо. |
27.06.2012, 15:28 | #2 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Этот кусок
Код:
Код:
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
27.06.2012, 19:39 | #3 | |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Цитата:
Подскажите пожалуйста, как исправить появление ошибки "Error in loading dll" в строке: For Each tb In Database.TableDefs? |
|
27.06.2012, 21:24 | #4 | |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Цитата:
|
|
27.06.2012, 22:24 | #5 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
> Я попробовала изменить код как Вы сказали (только изменила If Err на If Not Err ...
Супер! Теперь условие выполняется ВСЕГДА (долго объяснять, почему). Может, есть СКРЫТЫЕ листы с такими именами?
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
28.06.2012, 07:21 | #6 | |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Цитата:
Код работает и добавляет Листы с именами таблиц Access, но если такие Листы уже есть в книге Excel, то повторно они не должны добавляться - это пока у меня не получается сделать. |
|
28.06.2012, 07:44 | #7 | |
Форумчанин
Регистрация: 22.02.2010
Сообщений: 325
|
Цитата:
Я попробовала на другом компьютере - все работает. Пока не знаю почему не работает на моем компьютере. Спасибо! |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
из таблицы access в лист excel | alexandrsurgut | Microsoft Office Access | 1 | 15.02.2012 04:02 |
Из таблицы access создать лист Excel | ольгаг | Microsoft Office Excel | 6 | 01.02.2012 13:20 |
Таблицы StringGrid в разные листы Excel | Marina8 | Общие вопросы Delphi | 4 | 21.12.2011 17:58 |
Импорт таблицы из Access в Excel | Callika | Microsoft Office Excel | 6 | 17.03.2011 22:10 |