MaximoAccess

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

Obrigado

Administração do MaximoAccess

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 100%

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

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

    Mensagem  brunoluizmaia em 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 100%

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

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

    Mensagem  ahteixeira em 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 100%

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

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

    Mensagem  brunoluizmaia em 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 100%

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

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

    Mensagem  brunoluizmaia em 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 100%

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

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

    Mensagem  ahteixeira em 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
    http://www.maximoaccess.com/t913-fso-filesystemobject-para-manipularmos-arquivos

    Abraço


    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

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

    Mensagem  brunoluizmaia em 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 100%

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

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

    Mensagem  ahteixeira em 24/5/2019, 14:11

    cheers

    Conteúdo patrocinado

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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 16/9/2019, 01:51