Bladimir
Дата: 20.11.2009 17:02:51
Есть проблемма с разархивированием.
Форма, есть поля ввода, поля ввода не влияют на формирование командных строк удаления из временной директори и разархивирования туда архива.
Упрощенная последовательность кода:
удаляю все из временной директории:
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder PathTgetTmp, True 'удаляю все папки из временной директории
fso.DeleteFile PathTgetTmp, True 'удаляю все файлы из временной директории
Set fso = Nothing
разархивирование архива в ТМП:
Set WShell = CreateObject("WScript.Shell")
ErrCode = WShell.Run(ExeRar & " x " & FileRar & " " & PathTgetTmp, 5, True) 'запускаем и ждем окончания работы
Set WShell = Nothing
В нормальном случае ErrCode =0, бывает завершение с кодом 259. Что за код не смог найти.
Варианты:
1. открытие формы с записями, по кномпке удаление всего из TMP, разархивирование архива в ТМП. ErrCode =0, все нормально.
2. редактирование поля (фокус остается в поле!), по кномпке удаление всего из TMP, разархивирование архива в ТМП. ErrCode =259. При этом файлы разархивируются.
3. редактирование поля, переход на соседнее поле (не запись), по кномпке удаление всего из TMP, разархивирование архива в ТМП. ErrCode =0, все нормально.
4. повтор действия после ошибки (без редактирования поля) проходит без ошибки.
4. при вставке msgbox между удалением и разархивированием ошибки не бывает.
Почему эта ошибка зависит от состояния поля? Ведь поле не используется в командных строках. Могу конечно подобрать задержки, заплатки, но не очень это люблю.