Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проверка отктрыт ли файл эксель перед экспортом / 9 сообщений из 9, страница 1 из 1
01.06.2017, 13:44:13
    #39463808
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка отктрыт ли файл эксель перед экспортом
Всем привет!
Пытаюсь наладить экспорт в эксель. Нюанс в том, что файл должен быть открыт, т.к. экспорт идет в "умную" таблицу и при закрытом файле она не меняет диапазон.
Написал код, который корректно работает только если целевой файл закрыт.
Можно ли добавить проверку открыт ли этот файл?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub testExport()
  Dim dbPath As String, exOrder As String
  Dim appExcel As Object
  Dim wbkExcel
  
  dbPath = Application.CurrentProject.Path
  exOrder = dbPath & "\Квартальный отчет.xlsm"
  
  Set appExcel = CreateObject("excel.application")
  appExcel.Visible = True
  Set wbkExcel = appExcel.Workbooks.Open(exOrder)
 
  Call DoCmd.TransferSpreadsheet(acExport, acSpreadsheetTypeExcel12Xml, _
                   "qExport", exOrder, True, "exSumViolations")
  
End Sub
...
Рейтинг: 0 / 0
01.06.2017, 14:12:41
    #39463830
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка отктрыт ли файл эксель перед экспортом
Да не мучайтесь вы с TransferSpreadsheet для экспорта, используйте CopyFromRecordset из экселевской библиотеки. Так можно очень красивые отчеты с полным форматированием делать, вставлять данные в любое место и на любой лист, использовать темплейты. Работает очень быстро.
...
Рейтинг: 0 / 0
01.06.2017, 14:14:53
    #39463833
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка отктрыт ли файл эксель перед экспортом
Leprotto Можно ли добавить проверку открыт ли этот файл?

http://www.sql.ru/forum/1244026/kak-uznat-otkryta-li-kniga-excel
...
Рейтинг: 0 / 0
01.06.2017, 14:34:21
    #39463852
Проверка отктрыт ли файл эксель перед экспортом
Код: vbnet
1.
2.
3.
4.
 Set wbkExcel = GetObject(exOrder) 'Открывает или находит открытый файл 
 Set appExcel = wbkExcel.application
 appExcel.Visible = True
 wbkExcel.Windows(1).Visible = True

Но вы лучше расскажите, чем "умна" ваша таблица и как она меняет диапазон при открытом файле. Судя по расширению xlsm в книге используются макросы. Если они нужны только для экспорта, то ваше решение неправильной. Нужно всю обработку выполнять в процедуре выгрузки.
К тому же TransferSpreadsheet предполагает выгрузку в новый или закрытый файл, хотя в некоторых случаях умеет и в открытый. Если уже открывать файл перед выгрузкой, то и выполнять ее лучше методом Excel-я CopyFromRecordset.
...
Рейтинг: 0 / 0
01.06.2017, 15:18:13
    #39463882
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка отктрыт ли файл эксель перед экспортом
Анатолий ( Киев ),
авторчем "умна" ваша таблица и как она меняет диапазон при открытом файле
Экспорт при закрытом файле (первые две строки были до экспорта):
...
Рейтинг: 0 / 0
01.06.2017, 15:19:48
    #39463885
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка отктрыт ли файл эксель перед экспортом
При открытом файле диапазон расширяется вниз и формулы в столбцах D и E протягиваются
...
Рейтинг: 0 / 0
01.06.2017, 15:22:37
    #39463889
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка отктрыт ли файл эксель перед экспортом
Анатолий ( Киев ),
авторСудя по расширению xlsm в книге используются макросы. Если они нужны только для экспорта
Нет, они нужны для другого.
По Вашему и MrShin советам буду пробовать CopyFromRecordset.
СПАСИБО ЗА ПОМОЩЬ!
...
Рейтинг: 0 / 0
01.06.2017, 16:04:55
    #39463932
Проверка отктрыт ли файл эксель перед экспортом
LeprottoПри открытом файле диапазон расширяется вниз и формулы в столбцах D и E протягиваются Для меня это - открытие! Много экспериментировал с выгрузкой в Ёксель, но такого эффекта не видел. Надо будет проверить на досуге.
Такое возможно, когда на листе создается таблица путем установки соединения с БД (так называемый объект QueryTable). Кстати, вид ваших заголовков наводит на мысль, что так вначале и делалось. Угадал?
ИМХО, если ваши формулы нужны для вычисления квартала и года только при выгрузке, то лучше их вычислить в запросе и не заморачиваться с предварительным открытием файла.
Тем более, что возможность выгрузки с помощью TransferSpreadsheet в открытый файл не документирована, тем более - размножение формул.
...
Рейтинг: 0 / 0
01.06.2017, 17:25:43
    #39464019
Leprotto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка отктрыт ли файл эксель перед экспортом
Анатолий ( Киев ),
Такое возможно, когда на листе создается таблица путем установки соединения с БД (так называемый объект QueryTable). Кстати, вид ваших заголовков наводит на мысль, что так вначале и делалось. Угадал?
Нет. Я сначала сделал экспорт TransferSpreadsheet, потом выделил данные и "форматировал как таблицу". Теперь экспорт получается сразу в умную таблицу.
если ваши формулы нужны для вычисления квартала и года только при выгрузке...
Неа, в топике лишь пример, как запроса, так файла эксель.
Целевое назначение файла эксель - куча всяких графиков, переключателей и кнопок под макросами. Мне удобно все это пилить с умными таблицами ))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проверка отктрыт ли файл эксель перед экспортом / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]