Задача: получить информацию о количестве строк в каждом из 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
Примечания:
Способ решения:
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 & " запись(ей)" ' показываю количество записей в файле можно (и нужно) использовать код для обработки файла
- больше информации по теме , наприме, тут
Комментариев нет:
Отправить комментарий