Sub DBF_FILE()
Application.ScreenUpdating = False
' Определение имени и пути
' сохранения нового файла
A$ = ActiveWorkbook.FullName
ChDrive Mid(A$, 1, 1)
ChDir ActiveWorkbook.Path
n$ = ActiveWorkbook.Name
im$ = Mid(n$, 1, Len(n$) - 4) + ".dbf"
' Проверить наличие файла с таким именем на диске
' Если есть запросить подтверждение на его удаление
fl = True
If Dir(im$) <> "" Then
response = MsgBox("Обнаружен файл " + im$ + " Удалить его?", _
vbQuestion + vbYesNo, "Формирование файла в DBF формате")
If response = vbYes Then
Kill im$
Else
fl = False
End If
End If
If fl = True Then
' Создать файл заданной структуры
FileCopy "struct.dbf", im$
P$ = ActiveWorkbook.Path
Dim db As Database, rs As Recordset, categorycell As Range
Set db = OpenDatabase(P$, False, False, "dBASE IV")
Set rs = db.OpenRecordset(im$, dbOpenDynaset)
it = rs.Fields.Count ' определить количество полей
' переписать информацию с активного рабочего листа в файл
With ActiveSheet
j = 2 ' первая строка содержит наименования полей
If Not .Cells(j, 1) = Empty Then
Do While Not .Cells(j, 1) = Empty
rs.AddNew
For i = 0 To it - 1
' j - номер строки
' i - номер столбца
rs.Fields(i) = .Cells(j, i + 1)
Next i
rs.Update
j = j + 1
Loop
End If
End With
' Закрыть файл и завершить работу
rs.Close
db.Close
Application.ScreenUpdating = True
response = MsgBox("Создан файл " + im$, _
vbInformation, "Формирование файла в DBF формате")
End If
End Sub
ДОС-кодировка и VBA в Excel
Дело в том, что данные в dbf переносятся как и требуется в ДОС-кодировке. Но на машине заказчика все русские буквы преобразуются в вопросительные знаки.
Возможно, кто-нить сталкивался.
Помогите, плз.
Привожу текст макроса (копирайт не мой):
Цитата:
Originally posted by view
Подозреваю, что не хватает какого-то шрифта..
Подозреваю, что не хватает какого-то шрифта..
Если хочешь научиться работать с кодировками и научиться грамотно разрешать "проблемы шрифтов", раз и навсегда запомни:
- "вопросики" или "квадратики" - неверна кодовая страница
- "кракозябры" - нет шрифта
Возможен также случай, когда шрифт стоит, но нужных символов в нем нет. Тоже отображается квадратиками. Например, если зайти в русской Винде на китайский сайт и посмотреть в заголовок окна. В "нашей" Tahome нет китайских иероглифов.
Цитата:
Originally posted by Freeman
Если хочешь научиться работать с кодировками и научиться грамотно разрешать "проблемы шрифтов", раз и навсегда запомни:
- "вопросики" или "квадратики" - неверна кодовая страница
- "кракозябры" - нет шрифта
Возможен также случай, когда шрифт стоит, но нужных символов в нем нет. Тоже отображается квадратиками. Например, если зайти в русской Винде на китайский сайт и посмотреть в заголовок окна. В "нашей" Tahome нет китайских иероглифов.
Если хочешь научиться работать с кодировками и научиться грамотно разрешать "проблемы шрифтов", раз и навсегда запомни:
- "вопросики" или "квадратики" - неверна кодовая страница
- "кракозябры" - нет шрифта
Возможен также случай, когда шрифт стоит, но нужных символов в нем нет. Тоже отображается квадратиками. Например, если зайти в русской Винде на китайский сайт и посмотреть в заголовок окна. В "нашей" Tahome нет китайских иероглифов.
есть весьма неплохой класс для работы с DBF (VBA+winApi)
Цитата:
Originally posted by likhobory
есть весьма неплохой класс для работы с DBF (VBA+winApi)
есть весьма неплохой класс для работы с DBF (VBA+winApi)
Спасибо! Я попробую..
Потом сообщу о результатах :)