MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Compactar pasta do BD com Winrar

    Compartilhe

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Assis em Sex 10 Abr 2015, 00:25

    Boa noite amigos

    A minha duvida é o seguinte:
    Nas linhas a vermelho uma é para a localização do Win 8 64, outra para o Windows 7 32

    Como por este código a detetar qual o Windows do sistema e ir para a linha correta da localização do Winrar.

    Sub ComprimePastaComWinRar()
    'By Piloto
       Dim FSO As Object
       Dim FromPath As String
       Dim ToPath As String
       Dim WinRarPath As String 'Localização do WinRar.exe
       Dim RarIt As String 'Instrução de linha de comando
       Dim SourceDir As String 'O diretório de origem
       Dim DestDir As String 'O diretório de destino
       Dim DestRarName As String
       Dim Dest As String 'Caminho de destino concatenado
       FromPath = Me!CaminhoEscolhido
       ToPath = Me!CaminhoEscolhido
       'inicia a criação da pasta
          Set fs = CreateObject("Scripting.FileSystemObject")
       'se a pasta existir, deleta
     
       If Right(FromPath, 1) = "\" Then
            FromPath = Left(FromPath, Len(FromPath) - 1)
       End If
       If Right(ToPath, 1) = "\" Then
           ToPath = Left(ToPath, Len(ToPath) - 1)
       End If
       Set FSO = CreateObject("scripting.filesystemobject")
       If FSO.FolderExists(FromPath) = False Then
           MsgBox FromPath & " não existe."
           Exit Sub
       End If
       'inicio da copia
       FSO.CopyFolder Source:=FromPath, Destination:=ToPath

            '*** Verifica se existe instalação do WinRar ***
        'WinRarPath = "C:\Program Files (x86)\WinRar\"  'Para Windows 8  64
         WinRarPath = "C:\Program Files\WinRar\"          'Para Windows 7  32


       If Dir(WinRarPath, vbDirectory) = "" Then
           MsgBox "O WinRar não está instaldo nesse diretorio." _
           & Chr$(13) & "Impossivel comprimir."
           Exit Sub
       End If
       SourceDir = Me.CaminhoEscolhido
        'Verifica se a Pasta tem espaços nos nomes
       If InStr(1, SourceDir, " ", vbTextCompare) <> 0 Then SourceDir = Chr(34) & SourceDir & Chr(34)
       'Letra do Drive de destino
       DestDir = Me.CaminhoEscolhido
        If Dir(DestDir, vbDirectory) = "" Then MkDir DestDir
        DestRarName = "Backup.Rar"
        Dest = DestDir & "\" & DestRarName
       If InStr(1, Dest, " ", vbTextCompare) <> 0 Then Dest = Chr(34) & Dest & Chr(34)
       RarIt = shell(WinRarPath & "WinRar.exe a -r " & Dest & " " & SourceDir, vbHide)
       MsgBox "Backup Formato WinRar criado com sucesso...", vbInformation, "Aviso"
       DoCmd.Quit
    End Sub

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  ahteixeira em Sex 10 Abr 2015, 11:37

    Bom Dia Assis,
    Tem aqui a solução: [Você precisa estar registrado e conectado para ver este link.]
    Um excelente artigo do Mestre Avelino.
    Abraço

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Assis em Sex 10 Abr 2015, 18:34

    Teixeira

    As ditas duas linhas a vermelho alterei para:

    If Len(Dir(Environ("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "") > 0 Then
    WinRarPath = "C:\Program Files\WinRar\"
    ElseIf Len(Dir(Environ("PROGRAMFILES(x86)") & "\Winrar\WinRAR.EXE") & "") > 0 Then
    WinRarPath = "C:\Program Files (x86)\WinRar\"
    End If

    E funciona nos 2 sistemas

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  ahteixeira em Sex 10 Abr 2015, 22:47

    Olá, obrigado pelo retorno
    Também poderia colocar assim no seu código:

    Código:
        If Len(Dir(Environ("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "") > 0 Then
            WinRarPath = "C:\Program Files\WinRar\"
        ElseIf Len(Dir(Environ("PROGRAMFILES(x86)") & "\Winrar\WinRAR.EXE") & "") > 0 Then
            WinRarPath = "C:\Program Files (x86)\WinRar\"
        Else
            MsgBox "O WinRar não está instaldo nesse diretorio." _
            & Chr$(13) & "Impossivel comprimir."
            Exit Sub
        End If

    e retirava o if seguinte.
    Abraço

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Assis em Sex 10 Abr 2015, 22:59

    Boas Teixeira

    Quando eu disse que funcionava nos dois sistemas, era em no Windows 7 32, com Office 2010  32, e no RunTime

    Porque;

    Com Windows 8.1 - 64 , com Office 2007  - 32 não funciona

     If Len(Dir(Environ("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "") > 0 Then ' Esta aqui funciona em Win 7 - 32 com Office 2010 - 32
           WinRarPath = "C:\Program Files\WinRar\"
       ElseIf Len(Dir(Environ("PROGRAMFILES(x86)") & "\Winrar\WinRAR.EXE") & "") > 0 Then
           WinRarPath = "C:\Program Files (x86)\WinRar\"
       Else
           MsgBox "O WinRar não está instaldo nesse diretorio." _
            & Chr$(13) & "Impossivel comprimir."
           Exit Sub
       End If

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Assis em Dom 12 Abr 2015, 17:40

    Up


    .................................................................................
    *** Só sei que nada sei ***

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  ahteixeira em Dom 12 Abr 2015, 21:30

    Olá Assis, o tópico está dado como resolvido???
    No entanto uma vez que em Windows 8.1 em 64 não dá, diga-me:
    1) Qual a pasta em que está instalado o Winrar
    2) Qual o nome do ficheiro executavel do winrar e se é 32 ou 64.
    Abraço

    Silvio
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3227
    Registrado : 20/04/2011

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Silvio em Dom 12 Abr 2015, 22:09

    Boa noite...apenas um simples pitaco....

    1- instalar o winrar para 64bits. ( de forma alguma utilizar o de 32 bits para esse fim )
    2- o mesmo ficará instalado na pasta c:\Arquivos de programa ( diferentemente do 32 bits que fica em c:\Arquivos de programas (86)) .

    3- mudar para esse:

    If Len(Dir(Environ("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "") > 0 Then
    WinRarPath = "C:\Program Files\WinRar\"
    ElseIf Len(Dir(Environ("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "") > 0 Then
    WinRarPath = "C:\Program Files \WinRar\"
    Else
    MsgBox "O WinRar não está instaldo nesse diretorio." _
    & Chr$(13) & "Impossivel comprimir."
    Exit Sub
    End If


    .................................................................................
    Caso tenha resolvido a tua duvida, coloque o tópico como resolvido.
    [Você precisa estar registrado e conectado para ver este link.]

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Assis em Seg 13 Abr 2015, 12:10

    Boa tarde Amigos

    Esta funciona em windows 7 - 32 Bits e office 2010 - 32 Bits
     
        If Len(Dir(Environ("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "") > 0 Then
        WinRarPath = "C:\Program Files\WinRar\"
        MsgBox "O WinRar não está instaldo nesse diretorio." _
        & Chr$(13) & "Impossivel comprimir."
        Exit Sub
        End If



    Esta funciona em windows 8.1 - 64 Bits e office 2007 - 32 Bits

       If Len(Dir(Environ("PROGRAMFILES(x86)") & "\Winrar\WinRAR.EXE") & "") > 0 Then
           WinRarPath = "C:\Program Files (x86)\WinRar\"
       Else
           MsgBox "O WinRar não está instaldo nesse diretorio." _
            & Chr$(13) & "Impossivel comprimir."
           Exit Sub
       End If


    Se juntar as duas assim não funciona,

    Porque ?

    If Len(Dir(Environ("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "") > 0 Then
    WinRarPath = "C:\Program Files\WinRar\"
    ElseIf Len(Dir(Environ("PROGRAMFILES(x86)") & "\Winrar\WinRAR.EXE") & "") > 0 Then
    WinRarPath = "C:\Program Files (x86)\WinRar\"
    Else
    MsgBox "O WinRar não está instaldo nesse diretorio." _
    & Chr$(13) & "Impossivel comprimir."
    Exit Sub
    End If


    .................................................................................
    *** Só sei que nada sei ***

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  ahteixeira em Seg 13 Abr 2015, 14:39

    Olá Assis, teste nas diversas maquinas e sistemas operativos e verifique o resultado
    Anexos
    testeWinRar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (22 Kb) Baixado 8 vez(es)


    Última edição por ahteixeira em Seg 13 Abr 2015, 23:11, editado 2 vez(es)

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Assis em Seg 13 Abr 2015, 16:43

    Teixeira

    O resultado é igual ..

    [Você precisa estar registrado e conectado para ver esta imagem.]


    .................................................................................
    *** Só sei que nada sei ***

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  ahteixeira em Seg 13 Abr 2015, 17:56

    Olá, então ja compreende porque não funciona.
    Como maioritariamente o sistema é instalado na unidade c: e estou convencido que aplicação não é para rolar em xp.
    Coloque o caminho directamente na verificação (dir()).
    Não use o environ.
    Abç.

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Assis em Seg 13 Abr 2015, 18:34

    Teixeira
    Assim funciona no no windows 8.1 - 64 Bits e office 2007 - 32 Bits, mas não no windows 7 - 32 Bits e office 2010 - 32 Bits

    If Len(Dir("PROGRAMFILES(x86)") & "\Winrar\WinRAR.EXE") & "" > 0 Then 'windows 8.1 - 64 Bits e office 2007 - 32 Bits
          WinRarPath = "C:\Program Files (x86)\WinRar\"
      ElseIf Len(Dir("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "" > 0 Then 'windows 7 - 32 Bits e office 2010 - 32 Bits
        WinRarPath = "C:\Program Files\WinRar\"
      Else
          MsgBox "O WinRar não está instaldo nesse diretorio." _
           & Chr$(13) & "Impossivel comprimir."
          Exit Sub
      End If

    Se inverter os If funciona no Win 7 e não no Win 8

    Conclusão:

    A parte (  ElseIf Len(Dir("PROGRAMFILES") & "\Winrar\WinRAR.EXE") & "" > 0 Then ) neste caso é ignorada ?

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  ahteixeira em Seg 13 Abr 2015, 22:56

    Olá Assis,
    Baixe de novo exemplo mensagem nº 10 e teste nas diversas maquinas e sistemas operativos.
    Abraço

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 2746
    Registrado : 06/11/2009

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  Assis em Seg 13 Abr 2015, 23:29

    Viva Teixeira

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar pasta do BD com Winrar

    Mensagem  ahteixeira em Ter 14 Abr 2015, 09:07

    Obrigado pelo retorno.
    Abraço

      Data/hora atual: Dom 04 Dez 2016, 14:14