Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 20:54   #1
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
Восклицание смена кодовой страницы dbf на "866" в VBA (Excel 2003)

Обрыл весь инет, но не нашел как сменить кодовую страницу dbf на "866" в VBA... Помогите пожалуйста с данной проблемой.

Последний раз редактировалось xamillion; 01.11.2010 в 20:25.
xamillion вне форума Ответить с цитированием
Старый 01.11.2010, 20:33   #2
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Поясню подробнее... В общем пакую DBF следующим образом:

Код:
Private Sub Pack_DBF()

Dim db_Connection As ADODB.Connection
Dim connString As String
Set db_Connection = New ADODB.Connection
connString = "Provider=Microsoft OLE DB Provider for Visual FoxPro;Data Source=C:\Temp; "
db_Connection.Open connString
db_Connection.Execute "PACK DBF C:\1\MyFile.dbf "

db_Connection.Close
Set db_Connection = Nothing

End Sub
как сюда кодировку-то вставить?
xamillion вне форума Ответить с цитированием
Старый 01.11.2010, 21:00   #3
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Могу только подогнать самописный конвертор DBF из кодировки в кодировку
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 01.11.2010, 21:25   #4
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
Сообщение от doober Посмотреть сообщение
Могу только подогнать самописный конвертор DBF из кодировки в кодировку
спасибо... буду рад любой помощи... а в чем он написан?
xamillion вне форума Ответить с цитированием
Старый 01.11.2010, 21:36   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

А это будет часть из той проги,что писал ранее
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 01.11.2010, 22:38   #6
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Только осторожно,он перезаписывает файл
Вложения
Тип файла: rar Convert DBF to DBF.rar (24.4 Кб, 20 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 01.11.2010, 23:16   #7
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

спасибо... немного неудобный вариант... будем думать как из vba... придумаю - отпишусь, да и Вы не стесняйтесь )))
xamillion вне форума Ответить с цитированием
Старый 09.11.2010, 21:07   #8
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

ну подскажите, а то
db_Connection.Execute "DO CPZERO C:\1\MyFile.dbf, 866 "
не работает
xamillion вне форума Ответить с цитированием
Старый 09.11.2010, 23:07   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

xamillion
1) могу написать простенькую консольную Win32 программу, которая делает то же самое, что DO CPZERO ....

2) мне кажется, что можно написать код чисто на VBA
там какая-никая, но работа с бинарными файлами есть.
Вы же знаете, где хранится кодовая таблица в заголовке DBF файла? Это всего навсего один байтик по смещению 29 (десятичное) или 0x1D (hex)
для 866 таблицы этот байт должен быть 101 (десятичное) или 0x65 (hex)

пример работы с бинарным файлом на VBA можно посмотреть, например, здесь Binary File

не сдавайтесь, и всё получится.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.11.2010, 00:23   #10
xamillion
Форумчанин
 
Аватар для xamillion
 
Регистрация: 30.09.2008
Сообщений: 138
По умолчанию

Цитата:
xamillion
1) могу написать простенькую консольную Win32 программу, которая делает то же самое, что DO CPZERO ....
это наверное самый приемлемый вариант - запустить ее с параметрами из VBA попроще наверное... если Вам нетрудно, то я только за... если долго то не берите в голову - чего-нибудь придумаю

Цитата:
2) мне кажется, что можно написать код чисто на VBA
там какая-никая, но работа с бинарными файлами есть.
Вы же знаете, где хранится кодовая таблица в заголовке DBF файла? Это всего навсего один байтик по смещению 29 (десятичное) или 0x1D (hex)
для 866 таблицы этот байт должен быть 101 (десятичное) или 0x65 (hex)
Ну это наверное слишком для этого

Цитата:
не сдавайтесь, и всё получится.
дык... так и не приходится сдаваться - еще поборемся...
xamillion вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
изменение кодовой страницы dbf-файла (foxPro) Ks2010 БД в Delphi 19 13.08.2010 11:33
EXCEL.VBA. Макрос "точной" копии документа xАлексейx Фриланс 5 12.07.2010 22:17
Перевод "пространственных" координат в "экранные" , смена перспективы , вращение. vedro-compota Общие вопросы Delphi 6 08.06.2010 21:59
VBA for Excel "Операция над элементами со списка" b1otekk Помощь студентам 0 26.05.2010 23:13
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? Unior Microsoft Office Excel 2 01.03.2009 02:42