[AccessD] Date Modified

MartyConnelly martyconnelly at shaw.ca
Thu Aug 12 15:47:16 CDT 2004


If you need more detail, this gives you last write,creation and last 
access date

Option Compare Database
Option Explicit

 Private Declare Function FindFirstFile Lib "kernel32" Alias _
  "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As _
  WIN32_FIND_DATA) As Long
Private Declare Function FileTimeToLocalFileTime Lib "kernel32" _
   (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
Private Declare Function FileTimeToSystemTime Lib "kernel32" _
   (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
'get the file's datetime stamp
Private Declare Function GetFileTime Lib "kernel32" _
    (ByVal hFile As Long, lpCreationTime As FILETIME, _
    lpLastAccessTime As FILETIME, _
    lpLastWriteTime As FILETIME) As Long


 Const MAX_PATH = 260
 Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
 End Type
 Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
 End Type
 Private Type SYSTEMTIME
  wYear As Integer
  wMonth As Integer
  wDayOfWeek As Integer
  wDay As Integer
  wHour As Integer
  wMinute As Integer
  wSecond As Integer
  wMilliseconds As Integer
End Type
'used to store timestamps from GetFileTime API call
Public Type FileTimeStamps
    ftCreate As Date
    ftAccess As Date
    ftModify As Date
End Type



Sub test()
 Dim FileData As WIN32_FIND_DATA
 Dim FT As FILETIME
 Dim ST As SYSTEMTIME
 Dim lretval As Long
   FileData.cFileName = Space$(MAX_PATH)
   lretval = FindFirstFile("C:\Access files\Snapscreenform.mdb", FileData)
   Debug.Print FileData.cFileName

   Debug.Print ConvertGetFileTime(FileData.ftCreationTime)
    Debug.Print ConvertGetFileTime(FileData.ftLastAccessTime)
     Debug.Print ConvertGetFileTime(FileData.ftLastWriteTime)
     Debug.Print FileDateTime("C:\Access files\Snapscreenform.mdb")

  Debug.Print FileData.ftCreationTime.dwHighDateTime & _
    FileData.ftCreationTime.dwLowDateTime
End Sub
Private Function ConvertGetFileTime(FT As FILETIME) As Date
    'convert the low and high times to dates
    Dim lngWFD As Long
    Dim ST As SYSTEMTIME
    Dim LOCTime As FILETIME

    'convert to your time, not GMT
    FileTimeToLocalFileTime FT, LOCTime
    FileTimeToSystemTime LOCTime, ST

    ConvertGetFileTime = _
        DateSerial(ST.wYear, ST.wMonth, ST.wDay) + _
        TimeSerial(ST.wHour, ST.wMinute, ST.wSecond)

End Function

Arthur Fuller wrote:

>That will work where the scripting runtime is installed, but IME almost
>every company forbids its installation because it is so potentially
>dangerous.
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of
>paul.hartland at fsmail.net
>Sent: Thursday, August 12, 2004 4:15 AM
>To: Access Developers discussion and problem solving
>Subject: Re: [AccessD] Date Modified
>
>
>Rocky, 
>If you set a reference to Microsoft Scripting Runtime then add the
>following code: Dim fsys As New FileSystemObject Dim dtProductsCSV As
>Date Dim fProductsCSV As Object
>
>Set fProductsCSV = fsys.GetFile(FilePath & FileName) dtProductsCSV =
>fProductsCSV.DateLastModified
>
>
>
>
>
>
>Message date : Aug 12 2004, 01:53 AM
>>From : "Rocky Smolin - Beach Access Software"
>To : AccessD at databaseadvisors.com
>Copy to : 
>Subject : [AccessD] Date Modified
>Dear List:
>
>Is there a method to retrieve the Date Modified from a file?
>
>TIA
>
>Rocky Smolin
>Beach Access Software
>http://www.e-z-mrp.com
>
>--
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada






More information about the AccessD mailing list