Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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-сайт: www.genyaa.nm.ru
 Профиль | | #2
Добавлено: 09.02.07 22:04
Если я правильно понял ситуацию, то вполне возможно такое ограничение установлено в самом модуле программно. Возможно модуль просто проверяет и сравнивает собственную дату создания/сохранения с датой создания/редактирования открываемого файла. И если последний более ранний, то генерирует ошибку намеренно... Такой подход вполне оправдан, если разработчик по мере обновления версий файла с модулем вносит какие-то изменения в структуру данных и создаваемого этим модулем файла.

Ответить

Номер ответа: 3
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #3 Добавлено: 10.02.07 01:19
модуль просто проверяет и сравнивает собственную дату создания/сохранения с датой создания/редактирования открываемого файла.

не очень хорошая идея: пользователь может испортить структуру файла вручную, с отключенными макросами, перевести часы; и тем самым поставить под угрозу генерирования ошибки при чтении файла.

Ответить

Номер ответа: 4
Автор ответа:
 GenyaA



Вопросов: 0
Ответов: 185
 Web-сайт: www.genyaa.nm.ru
 Профиль | | #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

где х = префикс+значению комбобокса /имя клиента/+ расширение..
 

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам