Print side | Luk vindue

FileExists

Udskrevet fra: Dansk Access Forum
Kategori: Hjælp til Access
Forum navn: VBA / Makro
Forum beskrivelse: Spørgsmål vedr. den programmeringsmæssige del af Access
Web-adresse: https://www.accessforum.dk/forum_posts.asp?TID=83
Udskrevet den: 29-04-2024 kl. 04:42


Emne: FileExists
Besked fra: frederik
Emne: FileExists
Posteringsdato: 04-05-2016 kl. 10:41

Hej,

 

Jeg har lånt noget kode (VB) på nettet der tjekker om en fil findes på en given sti…

 

FileExists('F:\acad\ARKE\E54\000-199\354E024B.dwg') – funktionen returner sand hvis den findes.

 

Men hvordan kan jeg lave den sti variabel…. Vil gerne kunne referere til en sti på formularen… …, og så lade funktionen tjekke om den er gyldig....

/Frederik
-------------------------------------
Function FileExists(ByVal strFile As String, Optional bFindFolders As Boolean) As Boolean
'Purpose: Return True if the file exists, even if it is hidden. 'Arguments: strFile: File name to look for. Current directory searched if no path included. ' bFindFolders. If strFile is a folder, FileExists() returns False unless this argument is True. 'Note: Does not look inside subdirectories for the file. 'Author: Allen Browne. http://allenbrowne.com June, 2006.
    Dim lngAttributes As Long

'Include read-only files, hidden files, system files.
    lngAttributes = (vbReadOnly Or vbHidden Or vbSystem)

    If bFindFolders Then
        lngAttributes = (lngAttributes Or vbDirectory) 'Include folders as well.
    Else
'Strip any trailing slash, so Dir does not look inside the folder.
        Do While Right$(strFile, 1) = "\"
            strFile = Left$(strFile, Len(strFile) - 1)
        Loop
    End If

'If Dir() returns something, the file exists.
    On Error Resume Next
    FileExists = (Len(Dir(strFile, lngAttributes)) > 0)
End Function

Function FolderExists(strPath As String) As Boolean
    On Error Resume Next
    FolderExists = ((GetAttr(strPath) And vbDirectory) = vbDirectory)
End Function

Function TrailingSlash(varIn As Variant) As String
    If Len(varIn) > 0 Then
        If Right(varIn, 1) = "\" Then
            TrailingSlash = varIn
        Else
            TrailingSlash = varIn & "\"
        End If
    End If
End Function

 

 




Svar:
Besked fra: hkh
Posteringsdato: 04-05-2016 kl. 11:04
"Men hvordan kan jeg lave den sti variabel…. Vil gerne kunne referere til en sti på formularen"

Hvad mener du med det?
Hvilken formular?

Du kommer til at forklare hvad du ønsker og hvad problemet er, ellers er det ikke nemt at komme med vejledning.

-------------
Hans


Besked fra: frederik
Posteringsdato: 04-05-2016 kl. 11:21
Hej igen,
 
jeg har oprettet et eksempel her, så er det lidt lettere at forklare:
 
https://dl.dropboxusercontent.com/u/51624320/FileExists.accdb" rel="nofollow - https://dl.dropboxusercontent.com/u/51624320/FileExists.accdb
 
Det jeg gerne vil er, at udskifte stien her: FileExists('F:\acad\ARKE\E54\000-199\354E024B.dwg')
 
med en sti som ligger i samme formular hvor funktionen kaldes, og som er variabel...(beregnes ud fra andre felter på formularen)
 
fx: FileExists('[variabel_sti]')
 
Håber det letter forståelsen af problemet....
 
/Frederik


Besked fra: hkh
Posteringsdato: 04-05-2016 kl. 11:34
Hvis det skal være din knap der udløser undersøgelsen om filen eksisterer kan det gøres med en hændelsesprocedure på knappen.

Det er blot at kalde FileExists med indholdet af variabel_sti i en IF Then Else sætning

Private Sub Kommandoknap0_Click()
    If FileExists(variabel_sti) = True Then
        msgbox"Filen: " & variabel_sti & " findes!"
    Else
        msgbox"Filen: " & variabel_sti & " findes ikke!"
    End If
End Sub



-------------
Hans


Besked fra: hkh
Posteringsdato: 04-05-2016 kl. 12:02
Hvis ikke ovenstående er hvad du søger, eller du behøver yderligere hjælp så prøver du bare igen.

-------------
Hans



Print side | Luk vindue