Страница: 1 |
Страница: 1 |
Вопрос: Проблема с программным открытием файла
Добавлено: 09.02.07 15:34
Автор вопроса: seaserpent | ICQ: 139655726
Ситуация такова: есть один файл с модулем. При выполнении модуль создает файл /xls/.
Если потом заменить файл с модулем (человек скачивает новую версию с сайта, т.е. не является автором), то
при попытке выполнения модуля, к-й открывает ранее созданный файл предыдущей версией,
ексель расценивает это как несанкционированное открытие и выдает ошибку 1004 невозможно прочитать файл.
При этом вновь создаваемые модулем файлы программно открываются.
Похоже на некую безопасность в 2003 экселе, где сидит, что новый файл пытается открыть существующие.
Только где я не знаю, помогите, пожалуйста.
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
night-roll
Вопросов: 36
Ответов: 326
Профиль | | #1
Добавлено: 09.02.07 21:37
я так понимаю скачиваемый новый файл заменяет старый, поэтому выдвину предположение, что меняется имя этого файла(например: "файл.xls" "файл.XLS"а вообще без кода нихрена не понятно каким образом происходит открытие файла!
Номер ответа: 2
Автор ответа:
GenyaA
Вопросов: 0
Ответов: 185
Web-сайт:
Профиль | | #2
Добавлено: 09.02.07 22:04
Если я правильно понял ситуацию, то вполне возможно такое ограничение установлено в самом модуле программно. Возможно модуль просто проверяет и сравнивает собственную дату создания/сохранения с датой создания/редактирования открываемого файла. И если последний более ранний, то генерирует ошибку намеренно... Такой подход вполне оправдан, если разработчик по мере обновления версий файла с модулем вносит какие-то изменения в структуру данных и создаваемого этим модулем файла.
Номер ответа: 3
Автор ответа:
night-roll
Вопросов: 36
Ответов: 326
Профиль | | #3
Добавлено: 10.02.07 01:19
не очень хорошая идея: пользователь может испортить структуру файла вручную, с отключенными макросами, перевести часы; и тем самым поставить под угрозу генерирования ошибки при чтении файла.
Номер ответа: 4
Автор ответа:
GenyaA
Вопросов: 0
Ответов: 185
Web-сайт:
Профиль | | #4
Добавлено: 10.02.07 10:03
Но на простого обывателя такое ограничение вполне может произвести нужное впечатление. Далеко не все пользователи, способные скачать файл с сайта, имеют достаточно полное представление о атрибутах файлов, сохраняющихся на их компьютерах...
Кроме того, если разработчик сам "не промах", то может разместить метку даты/времени внутри файлов, тогда никакое изменение системного времени компьютера может не помочь, а только несанкционированное изменение самих файлов... а это в свою очередь может быть истрактовано, как нарушение лицензионного соглашения или других установленных условий со своими последствиями (по крайней мере, разработчик точно "умывает руки".
Номер ответа: 5
Автор ответа:
seaserpent
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
где х = префикс+значению комбобокса /имя клиента/+ расширение..