MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Deletar pasta com subpastas e arquivos

    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Deletar pasta com subpastas e arquivos Empty [Resolvido]Deletar pasta com subpastas e arquivos

    Mensagem  brunoluizmaia 24/5/2019, 09:48

    Boas,

    Mais uma vez venho recorrer aos mestres do Access e VBA.

    No projeto, quando excluir o registro também quero excluir a  pasta. Já utilizava a rotina abaixo, porém depois que troquei a rotina para criar subpastas  e arquivos para dentro desta pasta a rotina parou de funcionar.

    Código:

        Dim Pasta As String
        Dim numcrtl As String
        Dim nummld As String
        Dim nmclt As String
              
        numcrtl = Form_Documento_Controlo.Num_Doc_Controlo.Value
        nummld = Form_Documento_Controlo.NumeroMolde.Value
        nmclt = Form_Documento_Controlo.NomeCliente.Value
      
        Pasta = "\\2425FS01\Jobs\DB_Sis_Fabrico_em_teste\" & numcrtl & "-" & nummld & "-" & nmclt
        
        RmDir (Pasta) 'Exclui pasta

        If MsgBox("Este procedimento irá excluir este registro definitivamente ? ", vbYesNo + vbQuestion, "Aviso") = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.SetWarnings True
        Else
        End If


    Já tentei desta forma também e não obtive êxito.

    Código:

        Dim Pasta As String
        Dim numcrtl As String
        Dim nummld As String
        Dim nmclt As String
        Dim fso As Object
        
         If MsgBox("Este procedimento irá excluir este registro definitivamente ? ", vbYesNo + vbQuestion, "Aviso") = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.SetWarnings True
        Else
        End If
        
        numcrtl = Form_Documento_Controlo.Num_Doc_Controlo.Value
        nummld = Form_Documento_Controlo.NumeroMolde.Value
        nmclt = Form_Documento_Controlo.NomeCliente.Value
      
        Pasta = "\\2425FS01\Jobs\DB_Sis_Fabrico_em_teste\" & numcrtl & "-" & nummld & "-" & nmclt
        
        
        Set fso = CreateObject("Scripting.FileSystemObject")
        If fso.DeleteFolder(Pasta) Then ' Deleta pasta pelo FSO
        Else
        RmDir Pasta ' Se não excluir via FSO deleta a pasta de forma forçada
        End If
        Set fso = Nothing

    Cumprimentos.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7283
    Registrado : 15/03/2013

    [Resolvido]Deletar pasta com subpastas e arquivos Empty Re: [Resolvido]Deletar pasta com subpastas e arquivos

    Mensagem  ahteixeira 24/5/2019, 10:45

    Olá,

    Olhando para o primeiro código da dúvida, verifique se a pasta está vazia.

    Abraço
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Deletar pasta com subpastas e arquivos Empty Re: [Resolvido]Deletar pasta com subpastas e arquivos

    Mensagem  brunoluizmaia 24/5/2019, 10:55

    Bom dia!

    A pasta não estará vazia, porque na criação eu crio subpastas e insiro fotos. Como a pasta será sequencial com o mesmo numero de documento preciso que ela seja deletada caso o registo seja deletado.
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Deletar pasta com subpastas e arquivos Empty Re: [Resolvido]Deletar pasta com subpastas e arquivos

    Mensagem  brunoluizmaia 24/5/2019, 11:38

    Resolvido!

    Obrigado à todos!

    O código abaixo.

    Código:
    Private Sub btn_excluir_Click()
        On Error Resume Next
           
        Dim Pasta As String
        Dim numcrtl As String
        Dim nummld As String
        Dim nmclt As String
     
        Dim fso As Object
       
       
        numcrtl = Form_Documento_Controlo.Num_Doc_Controlo.Value
        nummld = Form_Documento_Controlo.NumeroMolde.Value
        nmclt = Form_Documento_Controlo.NomeCliente.Value
     
        Pasta = "\\2425FS01\Jobs\DB_Sis_Fabrico_em_teste\" & numcrtl & "-" & nummld & "-" & nmclt
       
       
     
        Set fso = CreateObject("Scripting.FileSystemObject")
        If fso.DeleteFolder(Pasta) Then ' Deleta pasta pelo FSO
        Else
        RmDir Pasta ' Se não excluir via FSO deleta a pasta de forma forçada
        End If
        Set fso = Nothing
     
        If MsgBox("Este procedimento irá excluir este registro definitivamente ? ", vbYesNo + vbQuestion, "Aviso") = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.SetWarnings True
        Else
        End If
       

     DoCmd.RunCommand acCmdRecordsGoToNew
     
    End Sub


    Cumprimentos

    Bruno Nunes
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7283
    Registrado : 15/03/2013

    [Resolvido]Deletar pasta com subpastas e arquivos Empty Re: [Resolvido]Deletar pasta com subpastas e arquivos

    Mensagem  ahteixeira 24/5/2019, 11:53

    Olá Bruno,

    Obrigado por partilhar a solução, existe muitas formas de obter o resultado pretendido.

    Continuando no exemplo 1 e caso algum membro tenha a mesma duvida...
    Então como verificou era necessário estár a pasta vazia antes de chamar o RmDir

    Para apagar a pasta (com base no seu exemplo) seria colocar assim antes da chmado do RmDir:
    Código:
    Kill Pasta &"\*.*"

    Para dúvidas de como usar o "FSO" é só ver este exemplo desde 2010 do nosso grande JPaulo
    https://www.maximoaccess.com/t913-fso-filesystemobject-para-manipularmos-arquivos

    Abraço


    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    Registrado : 24/04/2019

    [Resolvido]Deletar pasta com subpastas e arquivos Empty Re: [Resolvido]Deletar pasta com subpastas e arquivos

    Mensagem  brunoluizmaia 24/5/2019, 12:49

    ahteixeira, Agradeço, Pela dica do FSO e o Kill antes do RmDir.

    Garanto que irei usar quando precisar novamente.

    Abraços.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7283
    Registrado : 15/03/2013

    [Resolvido]Deletar pasta com subpastas e arquivos Empty Re: [Resolvido]Deletar pasta com subpastas e arquivos

    Mensagem  ahteixeira 24/5/2019, 14:11

    cheers

      Data/hora atual: 25/7/2021, 03:09