Страница: 1 |
Вопрос: Проблема с программным открытием файла | Добавлено: 09.02.07 15:34 |
Автор вопроса: ![]() |
Ситуация такова: есть один файл с модулем. При выполнении модуль создает файл /xls/.
Если потом заменить файл с модулем (человек скачивает новую версию с сайта, т.е. не является автором), то при попытке выполнения модуля, к-й открывает ранее созданный файл предыдущей версией, ексель расценивает это как несанкционированное открытие и выдает ошибку 1004 невозможно прочитать файл. При этом вновь создаваемые модулем файлы программно открываются. Похоже на некую безопасность в 2003 экселе, где сидит, что новый файл пытается открыть существующие. Только где я не знаю, помогите, пожалуйста. |
Ответы | Всего ответов: 5 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 36 Ответов: 326 |
Профиль | Цитата | #1 | Добавлено: 09.02.07 21:37 |
я так понимаю скачиваемый новый файл заменяет старый, поэтому выдвину предположение, что меняется имя этого файла(например: "файл.xls" "файл.XLS"![]() |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 185 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 09.02.07 22:04 |
Если я правильно понял ситуацию, то вполне возможно такое ограничение установлено в самом модуле программно. Возможно модуль просто проверяет и сравнивает собственную дату создания/сохранения с датой создания/редактирования открываемого файла. И если последний более ранний, то генерирует ошибку намеренно... Такой подход вполне оправдан, если разработчик по мере обновления версий файла с модулем вносит какие-то изменения в структуру данных и создаваемого этим модулем файла. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 36 Ответов: 326 |
Профиль | Цитата | #3 | Добавлено: 10.02.07 01:19 |
модуль просто проверяет и сравнивает собственную дату создания/сохранения с датой создания/редактирования открываемого файла.
не очень хорошая идея: пользователь может испортить структуру файла вручную, с отключенными макросами, перевести часы; и тем самым поставить под угрозу генерирования ошибки при чтении файла. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 185 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 10.02.07 10:03 |
пользователь может испортить структуру файла вручную... перевести часы; и тем самым поставить под угрозу генерирования ошибки
Но на простого обывателя такое ограничение вполне может произвести нужное впечатление. Далеко не все пользователи, способные скачать файл с сайта, имеют достаточно полное представление о атрибутах файлов, сохраняющихся на их компьютерах... Кроме того, если разработчик сам "не промах", то может разместить метку даты/времени внутри файлов, тогда никакое изменение системного времени компьютера может не помочь, а только несанкционированное изменение самих файлов... а это в свою очередь может быть истрактовано, как нарушение лицензионного соглашения или других установленных условий со своими последствиями (по крайней мере, разработчик точно "умывает руки" ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ICQ: 139655726 Вопросов: 2 Ответов: 1 |
Профиль | Цитата | #5 | Добавлено: 12.02.07 13:13 |
К вопросу о создании и открытии файла.
1.При добавлении нового клиента создаю файл этого клиента ... Workbooks.Add ... ActiveWorkbook.SaveAs FileName:=x где х = префикс+значению текстбокса /имя клиента/+ расширение.. созданный файл лежит в том же месте, где и файл управляющий. 2. При открытии из управляющего файла iFullName = ThisWorkbook.Path & Application.PathSeparator & x If Dir(iFullName) <> "" Then Workbooks.Open FileName:=iFullName End If где х = префикс+значению комбобокса /имя клиента/+ расширение.. |
Страница: 1 |
|