MyTetra Share
Делитесь знаниями!
Перелинковка таблиц
16.03.2019
23:43
Текстовые метки: access, Link
Раздел: !Закладки - VBA - Access - Link

Все вроде бы получилось. Код работает для перелинковки различных типов фалов (txt, xls). Если есть вопросы или критика буду рад ответить.

Function UpdateLinks()
Dim varFileName As String
Dim stCurLink As String
Dim DB As DAO.Database
Dim tdf As DAO.TableDef
Dim CurConnect As String
Dim rt As Recordset

varFileName = GetBufferFolder 'обзор папок виндузы
Set DB = CurrentDb
For Each tdf In DB.TableDefs
    If tdf.Name Like "АналитикаСубконто2" Then
        stCurLink = Right(tdf.Connect, Len(tdf.Connect) - InStrRev(tdf.Connect, ":") + 2)
    End If
Next tdf
Set rt = DG.OpenRecordset("SD", 2)
Do While Not rt.EOF
If rt!Database Like "*.*" Then
    If Left(rt!Database, InStrRev(rt!Database, "\") - 1) Like stCurLink Then
        If Dir(varFileName & Dir(rt!Database)) > "" Then
        CurConnect = DG.TableDefs(rt!Name).Connect
        DG.TableDefs(rt!Name).Connect = Left(CurConnect, InStr(CurConnect, ":") - 2) & _
           varFileName & Dir(rt!Database)
            DG.TableDefs(rt!Name).RefreshLink
        End If
    End If
Else
    If rt!Database Like stCurLink Then
        If Dir(varFileName & Replace(rt!ForeignName, "#", ".")) > "" Then
        CurConnect = DG.TableDefs(rt!Name).Connect
        DG.TableDefs(rt!Name).Connect = Left(CurConnect, InStr(CurConnect, ":") - 2) & _
           Left(varFileName, Len(varFileName) - 1)
            DG.TableDefs(rt!Name).RefreshLink
        End If
    End If
End If
rt.MoveNext
Loop

End Function

Function DG() As Database
Set DG = DBEngine(0)(0)
End Function

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования