Для
Ukraina:
Как правильно заметил "Ы" - это BDE. Отключить (только для Access)/включить его можно так:
Dim wshShell As Object Set wshShell = CreateObject("WScript.Shell")
'Значение 2 - BDE отключен
wshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\BDE", 2, "REG_DWORD" 'REG_SZ REG_EXPAND_SZ REG_BINARY
'Значение 0 - BDE (если установлен)
' wshShell.RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\BDE", 0, "REG_DWORD" 'REG_SZ REG_EXPAND_SZ REG_BINARY
' MsgBox wshShell.RegRead("HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\BDE")
Set wshShell = Nothing
Но это должно быть сделано перед запуском Access, т.к. в текущем сеансе изменения не действуют. Например, запуском VBS файла.
О.Сергей |
установлен BDE, без него не зацепить фоксовые dbf ы. |
Их можно зацепить ODBC Visual FoxPro драйвером. Если текст в кодировке OEM, можно в байт со смещением 29 записать 0х65. А если битый файл - разовая ситуация, то можно отключить/включить BDE.
Для обоих:
Этот же драйвер позволяет присоединить такой файл без вопросов. Поля с неправильной датой и пустые выглядят как "0:00:00". Это зачение надо везде повторить (очистить нельзя) или заменить другой датой. Для файлов dBaseIV/5.0 с МЕМО эта метода не годится - драйвер их не видит.
Всё, что написал, - проверил.
И, наконец, вопрос: Откуда берутся такие файлы в наше время? И это у вас постоянно? :)