powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проверка отктрыт ли файл эксель перед экспортом
9 сообщений из 9, страница 1 из 1
Проверка отктрыт ли файл эксель перед экспортом
    #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
Проверка отктрыт ли файл эксель перед экспортом
    #39463830
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не мучайтесь вы с TransferSpreadsheet для экспорта, используйте CopyFromRecordset из экселевской библиотеки. Так можно очень красивые отчеты с полным форматированием делать, вставлять данные в любое место и на любой лист, использовать темплейты. Работает очень быстро.
...
Рейтинг: 0 / 0
Проверка отктрыт ли файл эксель перед экспортом
    #39463833
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leprotto Можно ли добавить проверку открыт ли этот файл?

http://www.sql.ru/forum/1244026/kak-uznat-otkryta-li-kniga-excel
...
Рейтинг: 0 / 0
Проверка отктрыт ли файл эксель перед экспортом
    #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
Проверка отктрыт ли файл эксель перед экспортом
    #39463882
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев ),
авторчем "умна" ваша таблица и как она меняет диапазон при открытом файле
Экспорт при закрытом файле (первые две строки были до экспорта):
...
Рейтинг: 0 / 0
Проверка отктрыт ли файл эксель перед экспортом
    #39463885
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При открытом файле диапазон расширяется вниз и формулы в столбцах D и E протягиваются
...
Рейтинг: 0 / 0
Проверка отктрыт ли файл эксель перед экспортом
    #39463889
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев ),
авторСудя по расширению xlsm в книге используются макросы. Если они нужны только для экспорта
Нет, они нужны для другого.
По Вашему и MrShin советам буду пробовать CopyFromRecordset.
СПАСИБО ЗА ПОМОЩЬ!
...
Рейтинг: 0 / 0
Проверка отктрыт ли файл эксель перед экспортом
    #39463932
LeprottoПри открытом файле диапазон расширяется вниз и формулы в столбцах D и E протягиваются Для меня это - открытие! Много экспериментировал с выгрузкой в Ёксель, но такого эффекта не видел. Надо будет проверить на досуге.
Такое возможно, когда на листе создается таблица путем установки соединения с БД (так называемый объект QueryTable). Кстати, вид ваших заголовков наводит на мысль, что так вначале и делалось. Угадал?
ИМХО, если ваши формулы нужны для вычисления квартала и года только при выгрузке, то лучше их вычислить в запросе и не заморачиваться с предварительным открытием файла.
Тем более, что возможность выгрузки с помощью TransferSpreadsheet в открытый файл не документирована, тем более - размножение формул.
...
Рейтинг: 0 / 0
Проверка отктрыт ли файл эксель перед экспортом
    #39464019
Leprotto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ( Киев ),
Такое возможно, когда на листе создается таблица путем установки соединения с БД (так называемый объект QueryTable). Кстати, вид ваших заголовков наводит на мысль, что так вначале и делалось. Угадал?
Нет. Я сначала сделал экспорт TransferSpreadsheet, потом выделил данные и "форматировал как таблицу". Теперь экспорт получается сразу в умную таблицу.
если ваши формулы нужны для вычисления квартала и года только при выгрузке...
Неа, в топике лишь пример, как запроса, так файла эксель.
Целевое назначение файла эксель - куча всяких графиков, переключателей и кнопок под макросами. Мне удобно все это пилить с умными таблицами ))
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проверка отктрыт ли файл эксель перед экспортом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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