пятница, 18 марта 2011 г.

Пакетная обработка dbf файлов


Задача: получить информацию о количестве строк в каждом из dbf файлов в определенном каталоге используя vba.


Способ решения:



Sub ПросмотрФайловDBF(ПутьКПапкеСФайлами As String)

Dim ИмяФайла As String ' имя файла
Dim Cn As New ADODB.Connection ' соединение с файлом
Dim Rs As New ADODB.Recordset ' рекордсет

' создаю соединение
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ПутьКПапкеСФайлами & ";" _
     & "Extended Properties=dBASE IV;" ' строка соединения
Cn.Open ' открываю соединение

' задаю свойства рекордсета
Rs.CursorType = adOpenStatic
Rs.LockType = adLockOptimistic

' обрабатываю файлы
ИмяФайла = Dir(ПутьКПапкеСФайлами & "*.dbf")
Do Until ИмяФайла = "" ' перебираю файлы пока не кончатся
   Rs.Open "SELECT * FROM " & ИмяФайла, Cn ' открываю файл
   ' НАЧАЛО ОБРАБОТКИ ФАЙЛА
    Debug.Print "Файл " & ИмяФайла & " содержит " & Rs.RecordCount & " запись(ей)"   ' показываю количество записей в файле
   ' ОКОНЧАНИЕ ОБРАБОТКИ ФАЙЛА
   Rs.Close ' закрываю файл
   ИмяФайла = Dir ' перехожу к следующему файлу
Loop

End Sub

Примечания:
  • все файлы должны содержать хотя бы одну запись (иначе выдается ошибка).
  • вместо строки Debug.Print "Файл " & ИмяФайла & " содержит " & Rs.RecordCount & " запись(ей)"   ' показываю количество записей в файле можно (и нужно) использовать код для обработки файла
  • больше информации по теме , наприме,  тут

Комментариев нет:

Отправить комментарий