Страницы: 1
RSS
Отследить обращение к книге из другой программы
 
К одному из листов книге xl 2016 через связанный сервер идет запрос из внешней программы (например, из студии sql). Можно ли это отследить программно, в этой книге?
 
если запрос только считывает данные - никак не отследить
у объектов Excel (приложение, книга, лист) нет событий, отслеживающих чтение данных с листа
хотя, на 100% не уверен

если же запрос может изменить хоть одну ячейку, - то это отследить несложно
 
Цитата
Игорь написал: то это отследить несложно
тут бабушка надвое сказала. Если это запрос из другой программы: вполне вероятно, что макросы и надстройки будут отключены, кроме COM. Что значительно сокращает шансы на возможность отслеживания изменений в принципе.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Запрос на чтение. Сформулируем вопрос иначе: как сделать так, чтобы Excel мог отследить, что с него собираются читать данные? Т. е. программа, которая будет выполнять Select, перед этим (и после этого) сообщила это в Excel.
 
Так читать, или
Цитата
lucas написал:
выполнять Select,
?
 
Внешняя программа будет читать данные из книги, выполняя свою инструкцию  Select через связанный с книгой sqi-сервер, а до и после ее выполнения она должна сделать нечто (скажем, обновит контрольную ячейку), что инициирует выполнение, соответственно, двух макросов в этой книге. Например, так. Если, конечно, нет лучших вариантов.
 
Доброе время суток.
Цитата
lucas написал: удет читать данные из книги, выполняя свою инструкцию  Select
А это не принципиально на самом деле с какой целью внешний процесс открыл файл. Если поспрашивать Google об этом как узнать какой процесс открыл файл через wmi, максимум что худо бедно полезное нашлось по этому вопросу Delphi - get what files are opened by an application - вы действительно хотите с таким кодом разбираться?
Думаю, что вам стоит пересмотреть алгоритм получения данных с листа и реакцию на это книги.
Страницы: 1
Читают тему
Наверх