AccessVBA에서 Access 링크 테이블의 원본 파일 업데이트 시간 확인

7410 단어 VBA액세스access

Access에서 링크 테이블의 원본 파일 업데이트 시간을 확인하는 매크로



Access에서 링크 테이블을 사용하고, 그 링크 원 파일을 다른 사람이 정기적으로 갱신해 운용하는 경우, 링크 원 파일을 보러 가지 않으면, 원 파일이 갱신 끝났는지 어떤지는 모르겠다고 생각합니다(그렇네요…?) 원래, 갱신일을 보고 판단한다고 하는 순서가 이상하다

하지만 "링크 원본 파일은 어디에 있는 거야? "등과 매번 하는 것도 싫어
1. 링크 테이블의 도착 경로,
2. 갱신일,
3. 갱신일이 1월 이내인지의 체크
에 대한 출력을 제공하는 매크로를 작성했습니다

같은 작업을 하고 있는 사람이 상당히 있는 것이 아닐까 생각하고 있습니다만, 그에 비해 넷에 코드가 구르지 않았기 때문에 업 해 보았습니다 사이트의 코드를 조합했을 뿐입니다만 )

참고 사이트:
링크 대상 데이터베이스 파일 이름을 얻는 방법?
VBA 파일을 만들거나 업데이트한 날짜와 시간을 가져오거나 수정
Access VBA : 링크 테이블의 링크 소스를 VBA로 변경하는 방법 (링크 테이블을 루프로 처리하는 부분)
Option Compare Database
Option Explicit

Sub GetLinkTableDates()
    Dim fso As Object 'FileSystemObject
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim f As Object 'File
    Dim db As DAO.Database, td As DAO.TableDef, filePath As String, msg As String
    Set db = CurrentDb
    For Each td In db.TableDefs
        If td.Connect <> "" Then 'リンクテーブルだけを処理
            filePath = Mid$(td.Connect, InStr(td.Connect, ";DATABASE=") + Len(";DATABASE="))
            msg = msg & "テーブル名:" & td.Name & vbNewLine
            msg = msg & filePath & vbNewLine
            Set f = fso.GetFile(filePath) 
            'msg = msg & "DateCreated:" & formatDate(f.DateCreated) & vbNewLine
            msg = msg & "DateLastModified:" & formatDate(f.DateLastModified) & vbNewLine & vbNewLine
            'msg = msg & "DateLastAccessed:" & formatDate(f.DateLastAccessed) & vbNewLine & vbNewLine
        End If
    Next
    MsgBox msg
    Set fso = Nothing
End Sub

Private Function formatDate(target_date As Date)
    Dim strCheck As String
    If DateAdd("m", 1, Date) < target_date Then
        strCheck = ""
    Else
        strCheck = "Check!! (1月以上前)"
    End If
    formatDate = Chr(9) & target_date & Chr(9) & strCheck
End Function

좋은 웹페이지 즐겨찾기