Глюк с удалением содержимого папки и разархивированием через WShell.Run

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 между удалением и разархивированием ошибки не бывает.

Почему эта ошибка зависит от состояния поля? Ведь поле не используется в командных строках. Могу конечно подобрать задержки, заплатки, но не очень это люблю.