MS Access и DBF файлы

loader-ua
Дата: 15.11.2009 23:08:16
Товарищи!
Будьте добры помочь в таком вопросе.
Имеется база данных в dbf файлах. При чем организована так, что на каждый месяц имеется отдельная папка, где находятся база данных по месяцу.
Каким образом организовать подключение к отдельным dbf файлам в этой базе, чтобы можно было выбирать определенные месяцы.
Спасибо
ё
Дата: 15.11.2009 23:21:47
а ДБФ - какой?
и в чем должно выражатся "подключение"?

можно, в зависимости от выбранного месяца,
генерировать в коде запросы к соответствующему каталогу
'CurrentDb.Execute "SELECT * INTO имя_таблицы FROM имя_файла_dbf IN 'C:\Temp' 'dBase IV;'"
CurrentDb.Execute "SELECT * INTO имя_таблицы FROM имя_файла_dbf IN '" & MyPath & "' 'dBase IV;'"
klen_
Дата: 16.11.2009 08:20:41
loader-ua
на каждый месяц имеется отдельная папка
меняйте значение переменной pth1
в общем вариантов несколько, вот один из них
Public Sub Link_DBF()
On Error GoTo err1
    Dim nam1 As String:     nam1 = "имя dbf файла"  ' без расширения
    Dim pth1 As String:     pth1 = Access.CurrentProject.Path
    Dim dbf1 As String:     dbf1 = pth1 & "\" & nam1 & ".dbf"
    
    If TableExist(nam1) Then DoCmd.DeleteObject acTable, nam1
    
    DoCmd.TransferDatabase acLink, "dBase III", pth1, acTable, nam1 & ".dbf", nam1
    Exit Sub
err1:
    MsgBox Err.Description
End Sub

Function TableExist
+
Function TableExist(ByVal TableName As String) As Boolean
    TableName = LCase(TableName)
    TableExist = False
    For i = 0 To Application.CurrentData.AllTables.Count - 1
        If LCase(Application.CurrentData.AllTables.Item(i).Name) = TableName Then
            TableExist = True
            Exit For
        End If
    Next i
End Function
loader-ua
Дата: 16.11.2009 08:41:08
ё
а ДБФ - какой?
и в чем должно выражатся "подключение"?

имел ввиду следующее. создавать таблицу из тех dbf, которые были выбраны. В папке каждого месяца нужны для отчета два dbf файла. Причем для разных отчетов нужны разные месяцы. Поэтому, как мне видится, при запуске access по условию создавалась бы таблица с нужным месяцами
F
Дата: 16.11.2009 11:07:40
А зачем у вас dbf новый на каждый месяц создается?
loader-ua
Дата: 16.11.2009 11:38:01
F
А зачем у вас dbf новый на каждый месяц создается?

Видимо в том был глубокий смысл, раз так разработчик сделал.
loader-ua
Дата: 16.11.2009 11:39:39
klen_

в общем вариантов несколько, вот один из них[src vba]Public Sub Link_DBF()...

Подскажите куда помещать сей код
klen_
Дата: 16.11.2009 12:25:39
Можно на форме создать кнопку и поместить эти процедуры в модуль формы.
И так вызывать. (немножко переделал Link_dbf(). Опять-таки как вариант.
Private Sub Кнопка0_Click()
    Link_DBF "C:\2009\09", "basa123"
    Link_DBF "C:\2009\09", "trpr2"
    Link_DBF "C:\2009\09", "some21"
End Sub
klen_
Дата: 16.11.2009 12:27:17
осталось только уточнить формат dbf
loader-ua
Дата: 16.11.2009 13:43:59
klen_
Можно на форме создать кнопку и поместить эти процедуры в модуль формы.
И так вызывать. (немножко переделал Link_dbf(). Опять-таки как вариант.
Private Sub Кнопка0_Click()
    Link_DBF "C:\2009\09", "basa123"
    Link_DBF "C:\2009\09", "trpr2"
    Link_DBF "C:\2009\09", "some21"
End Sub


в моем случае

Кнопка0_Click()
Link_DBF "C:\01", "base1"
Link_DBF "C:\02", "base2"
Link_DBF "C:\03", "base3"
End Sub

как эти dbf слить в одну таблицу.
PS есть ли команда на удаление таблицы при выходе из access