VBA Access - Função para saber se existe um arquivo.

Tudo bem que seja uma função básica, mas com sua utilidade.

Esta função retorna True se não houver um arquivo com o nome que você passar, mesmo que esteja escondido ou seja um arquivo de sistema.

Assume o diretório atual, se você não incluir um caminho.

Retorna False se o nome do arquivo for uma pasta, a menos que você passe True para o segundo argumento.

Retorna False para qualquer erro, por exemplo: nome de arquivo inválido, a permissão foi negada, o servidor não foi encontrado.

Procura um arquivo chamado nFile.accdb na pasta de dados: ExisteArquivo ("C: \ Data \ nFile.accdb")

Procura um arquivo chamado nFile.txt em um servidor de rede: ExisteArquivo ("\ \ MyServer \ MyPath \ nFile.txt")

Verifique se há um arquivo ou pasta no servidor com o nome Bernardes: ExisteArquivo ("\ \ MyServer \ Bernardes", True)

Verifica a pasta do banco de dados atual para um arquivo chamado A&A-InAnyPlace.xlsx: ExisteArquivo (TrailingSlash (CurrentProject.path) & "A&A-InAnyPlace.xlsx")

Function ExisteArquivo (ByVal strFile As String, Optional bFindFolders As Boolean) As Boolean     Dim lngAttributes As Long

    'Inclui arquivos read-only (somente leitura), hidden (escondidos), e system (de sistema).     Let lngAttributes = (vbReadOnly Or vbHidden Or vbSystem)

    If bFindFolders Then         Let lngAttributes = (lngAttributes Or vbDirectory) 'Inclui pastas.     Else         Do While Right$(strFile, 1) = "\"             Let strFile = Left$(strFile, Len(strFile) - 1)         Loop     End If

    ' Se Dir() retornar alguma coisa, é porque existem arquivos.     On Error Resume Next     Let FileExists = (Len(Dir(strFile, lngAttributes)) > 0) End Function

Function TrailingSlash (varIn As Variant) As String     If Len(varIn) > 0 Then         If Right(varIn, 1) = "\" Then             Let TrailingSlash = varIn         Else             Let TrailingSlash = varIn & "\"         End If     End If End Function
 
Twitter: @officespecialis              @brzexceldevelop              @brzaccessdevel André Luiz Bernardes A&A - WORK, DON´T PLAY! http://al-bernardes.sites.uol.com.br/ bernardess@gmail.com

Nenhum comentário:

Postar um comentário

diHITT - Notícias