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]Actualizar FrontEnd em massa

    Compartilhe

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Dom 08 Jun 2014, 20:00

    Boa noite,

    Sei da existencia, mas nao sei como se faz.
    Tenho mais do que 50 frontend's a funcionar na minha empresa e sempre que altero algo no layout ou nas funcionalidades de um Frontend tenho posteriormente de copiar "50" vezes esse mesmo arquivo para cada uma das pastas. Isto acabar por ser cansativo...
    Sei que existe a possibilidade de o sistema atraves da versao apagar o aplicativo actual e copiar de outro local o novo e abrir.
    Alguem me consegue ajudar neste misterio?

    Obrigado

    toyebom
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 820
    Registrado : 18/07/2012

    Actualizar FrontEnd em massa

    Mensagem  toyebom em Dom 08 Jun 2014, 22:05

    Dizes que alteras um formulário e queres substituir o mesmo nos outros BDs? é isso?
    Se for é possivel com macro mas se for para alterar tabelas apaga todos os registos inseridos se for formulário é facil.
    Posso anexar um bd de actualização que tenho criado para os meus é só estudares como é feito.


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Dom 08 Jun 2014, 23:45

    boa noite, neste caso seria substituir todo o frontend e nao apenas um formulario, pois se alterar 5 formularios acaba por ser complicado. as penso que a tua opcao a ajuda xD

    toyebom
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 820
    Registrado : 18/07/2012

    Actualizar FrontEnd em massa

    Mensagem  toyebom em Seg 09 Jun 2014, 01:12

    Ok aqui vai o exemplo, vê como é feita a macro, tens de definir cada objecto para o local que queres.

    Crias os objectos, e acrescentas à macro, depois copia para uma pendrive ou disco, colocas a pendrive no pc que queres actualizar e abres o bd e segues as instruções que aparecem.

    Todas as bds tem de estar no mesmo caminho se não estiverem tens de colocar o caminho na macro para funcionar.
    Anexos
    Actualização_2.0.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (134 Kb) Baixado 11 vez(es)


    .................................................................................
    Gente Simples, fazendo coisas pequenas, em lugares pouco importantes, consegue mudanças extraordinárias.

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Seg 09 Jun 2014, 01:19

    Obg,

    vou verificar o que consigo fazer com o codigo.
    se entretanto encontrar a forma de substituir todo o frontend atraves da versao, irei postar aqui para que possa ajudar mais alguem Very Happy

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Qui 12 Jun 2014, 00:46

    Boa noite,

    Encontrei um codigo que me parece que seja parecido o que procuro, ainda assim estou com um problema...o processo começa bem, eleminando o arquivo, mas quando supostamente faz a substituição do mesmo, indica que o mesmo nao existe naquela pasta.
    Vou deixar o modulo e o codigo que devera estar no formulario de arranque para que possam testar e me possam ajudar no que conseguirem.

    Modulo (basFEUpdate):

    Código:
    Option Compare Database
    ' global variable for path to original database location
    Public g_strFilePath As String
    ' global variable for path to database to copy from
    Public g_strCopyLocation As String


    Public Sub UpdateFrontEnd()
    Dim strCmdBatch As String
    Dim notNotebook As Object
    Dim FSys As Object
    Dim TestFile As String
    Dim strKillFile As String
    Dim strReplFile As String
    Dim strRestart As String

    ' sets the file name and location for the file to delete
    strKillFile = g_strFilePath
    ' sets the file name and location for the file to copy
    strReplFile = g_strCopyLocation & "\" & CurrentProject.Name
    ' sets the file name of the batch file to create
    TestFile = CurrentProject.Path & "\UpdateDbFE.cmd"
    ' sets the restart file name
    strRestart = """" & strKillFile & """"
    ' creates the batch file
    Open TestFile For Output As #1
    Print #1, "Echo Off"
    Print #1, "ECHO Deleting old file"
    Print #1, ""
    Print #1, "ping 1.1.1.1 -n 1 -w 2000"
    Print #1, ""
    Print #1, "Del """ & strKillFile & """"
    Print #1, ""
    Print #1, "ECHO Copying new file"
    Print #1, "Copy /Y """ & strReplFile & """ """ & strKillFile & """"
    Print #1, ""
    Print #1, "CLICK ANY KEY TO RESTART THE ACCESS PROGRAM"
    Print #1, "START /I " & """MSAccess.exe"" " & strRestart
    Close #1
    'Exit Sub
    ' runs the batch file
    Shell TestFile

    'closes the current version and runs the batch file
    DoCmd.Quit



    End Sub

    Formulario:
    Código:
    Private Sub Form_Load()
    Dim i As Integer
    For i = 1 To CommandBars.Count
    CommandBars(i).Enabled = False
    Next i
    DoCmd.ShowToolbar "Form View", acToolbarNo
    DoCmd.ShowToolbar "Formatting (Form/Report)", acToolbarNo
    DoCmd.ShowToolbar "Ribbon", acToolbarNo
    DoCmd.NavigateTo "acNavigationCategoryObjectType"
    DoCmd.RunCommand acCmdWindowHide

    Dim strFEMaster As String
    Dim strFE As String
    Dim strMasterLocation As String
    Dim strFilePath As String

    ' looks up the version of the front-end as listed in the backend
    strFEMaster = DLookup("Numero_versao", "versao_master")

    ' looks up the version of the front-end on the front-end
    strFE = DLookup("versao", "versao_bd")

    ' looks up the location of the front-end master file
    strMasterLocation = DLookup("Localiza", "versao_master")

    ' checks for the existence of an updating batch file and deletes it if it exists
        strFilePath = CurrentProject.Path & "\UpdateDbFE.cmd"
       
        If Dir(strFilePath) <> "" Then
            Dim fs As Object
            Set fs = CreateObject("Scripting.FileSystemObject")
            fs.DeleteFile (strFilePath)
            Set fs = Nothing
        End If
           

    ' if the current database opened is the master then it bypasses the check.
    If CurrentProject.Path = strMasterLocation Then

        Exit Sub
       
    Else

    ' if the version numbers do not match and it is not the master that is opened,
    ' the database will do the update process
        If strFE <> strFEMaster Then
            MsgBox "Your program is not the latest version." & vbCrLf & _
            "The front-end needs to be updated.  The program will " & vbCrLf & _
            "now close and then should reopen automatically.", vbCritical, "VERSION NEEDS UPDATING"
           
            ' sets the global variable for the path/name of the current database
            g_strFilePath = CurrentProject.Path & "\" & CurrentProject.Name
           
            ' sets the global variable for the path/name of the database to copy
            g_strCopyLocation = strMasterLocation
           
            ' calls the UpdateFrontEnd module
           
            UpdateFrontEnd
           
        End If
       
    End If

    End Sub

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    Registrado : 29/06/2012

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  Noobezinho em Qui 12 Jun 2014, 13:00

    Olá Sardao

    Analisando o código, o que achei bem legal percebi que:

    No BE tem uma tabela chamada: versao_master
    No FE precisa criar, caso não tenha a tabela: versao_bd

    Pois são essas duas tabelas responsáveis pela verificação da versão do FE.
    Criou essas tabelas nos teus aplicativos?


    Se possível, poderia colocar o link de onde conseguiu esses códigos?

    Abraços

    Noob


    Última edição por Noobezinho em Qui 12 Jun 2014, 15:34, editado 1 vez(es)


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Qui 12 Jun 2014, 13:37

    Boas noobezinho,

    A noite irei postar o link de onde tirei essa informação para poderes ver melhor, aqui no trabalho nao tenho acesso nem sei onde o encontrei, esta no favoritos do meu PC.
    Eu criei novas tabelas e fiz a alteração necessaria no codigo e funciona as 5 maravilhas, no entanto estou com duas duvidas e gostava d e verificar convosco.

    1ª apos acabar de fazer a actualização do frontend fica um ficheiro .cmd criado ao lago do arquivo com 1K`, é possivel arranjar forma dele ser eleminado?

    2ª Na tabela das versões tenho 3 colunas, pois tenho 3 frontend diferentes e queria filtrar o DLookup, por exemplo DLookup("Numero_versao", "versao_master"; "Grupo = Assistente")
    Acontece que nada acontece e nao sei como o posso fazer...ja tentei de varias maneiras e nada...

    Alguem me podia ajudar? Very Happy

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    Registrado : 29/06/2012

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  Noobezinho em Qui 12 Jun 2014, 13:59

    Entendi Sardao

    Quanto ao ficheiro cmd. que foi criado para poder fazer a substituição dos FE.
    Lendo o algoritmo, percebi que no final do update , esse arquivo não é deletado. pretendo mudar isso.
    Para adiantar um pouco, gostaria que relacionasse  as 2 tabelas e seus campos que criou para eu poder testar aqui e assim
    ficar igual às tuas tabelas.
    Aguardo o link.

    Editando:
    Acrescente o que está em vermelho no teu código:

    DLookup("[Numero_versao]", "versao_master"; "[Grupo] = Assistente")



    Abraço

    Noob


    Última edição por Noobezinho em Qui 12 Jun 2014, 15:33, editado 1 vez(es)


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Qui 12 Jun 2014, 15:01

    Noobezinho,

    O codigo que postei inicialmente ja tem os campos das minhas tabelas de teste, so existe mais uma campo que é o Grupo.
    Nao sei se precisas de mais alguma coisa.

    Obrigado

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    Registrado : 29/06/2012

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  Noobezinho em Qui 12 Jun 2014, 15:33

    Sardao
    Testou com a modificação sugerida no código?

    Editando: o código correto é:

    DLookup("[Numero_versao]", "versao_master", "[Grupo] = 'Assistente'")

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    chsestrem
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 466
    Registrado : 01/03/2010

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  chsestrem em Qui 12 Jun 2014, 16:14

    Olá pessoal,

    eu já tinha postado um modelo de atualizador

    de front end a algum tempo aqui no repositório de exemplos

    e não sei porque sumiu.

    Segue um Modelo para estudo.

    Sds,


    .................................................................................
    Charles Sestrem
    [Você precisa estar registrado e conectado para ver este link.]

    ahteixeira
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  ahteixeira em Qui 12 Jun 2014, 16:37

    Olá a todos,

    Interessante o código, efetua através de batch file.
    Eu normalmente quando instalo uma versão FE, também costumo instalar o atalho para batch file, que normalmente copia todos os ficheiros de uma determinada localização da rede para o posto, só que a operação é efetuada pelo utilizador.
    Quando lanço uma versão nova coloco nessa pasta e aviso utilizadores para atualizar (poderia ter feito um código no login avisar de versão nova).

    Tem a desvantagem de não comparar a versão , mas a vantagem se poder ser efetuada quando o utilizador pretende.
    Quando algum utilizador tem alguma anomalia, mando logo executar atualização, por vezes resolve.
    Mas vou estudar melhor esta solução, ainda não experimentei, com esta solução o problema do FE estar aberto é resolvida.
    Não compreendo bem o que o “ping 1.1…” está a fazer, talvez para dar um delay para fechar o FE.
    Quanto ao ficheiro deixado, pode ser eliminado na próxima abertura se o nome do ficheiro fôr sempre o mesmo.

    Abraço

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Qui 12 Jun 2014, 17:44

    Boa tarde Noobessinho,

    Experimentei e ate ao momento parece estar a funcionar, mas ainda tenho de verificar melhor.
    Ainda estou é com o problema do ficheiro .cmd
    Sabes como o eleminar?

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    Registrado : 29/06/2012

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  Noobezinho em Qui 12 Jun 2014, 17:55

    Alvaro

    Quanto ao Batch criado, ele faz sim a comparação de versão.
    Quanto ao ping 1.1.1 é usado para fazer pausa no código, como se fizessemos um for... next , essa é a forma pra fazer no DOS.


    Sardao

    Quando ao ficheiro .cmd , esse é o arquivo de lote criado para fazer a substituição das versões, será deletado quando abrir a nova versão,
    como pode ver no código VBA.

    Gostei desse exemplo, muito simples e funcional.

    Abraços

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Qui 12 Jun 2014, 17:59

    Noobezinho,

    O Dlookup nao esta a funcionar... ele vai buscar sempre a informação referente a primeira alinea, mas acho que sei como ultrapassar a situação.
    Em relação ao ficheiro, no meu pc nao esta a ser eleminado nao sei pk....

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    Registrado : 29/06/2012

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  Noobezinho em Qui 12 Jun 2014, 20:15

    sardao

    Substitua essa parte do código que está no formulario:


    If Dir(strFilePath) <> "" Then
    ......Dim fs As Object
    ......Set fs = CreateObject("Scripting.FileSystemObject")
    ......fs.DeleteFile (strFilePath)
    ......Set fs = Nothing
    End If

    Por :

    If Dir(strFilePath) <> "" Then

           Kill strFilePath
         
       End If

    Teste e rotorne  Wink 

    AGORA VOU ASSISTIR O JOGO DO BRASIL X CROACIA  bounce 


    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Sex 13 Jun 2014, 12:16

    Bom dia,

    Infelizmente nao vou conseguir por o link de onde retirei esta informação visto ter ficado sem PC no dia de ontem. :S
    Em relação ao ao codigo que me envias-te para testar ainda nao tive oportunidade, ainda assim verifico que quando reabro o arquivo uma segunda vez, o ficheiro cmd desaparece. Very Happy


    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    Registrado : 29/06/2012

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  Noobezinho em Sex 13 Jun 2014, 13:36

    Sadao

    Então está resolvido, certo?

    Como não é possível deletar o arquivo batch após ele ser executado, o autor do código resolveu deletar o mesmo na abertura da aplicação Access, ou seja, o arquivo será deletado quando o usuário abrir a nova versão do Access(na realidade o próprio batch já abre a nova versão automaticamente).

    Abaraços

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

    sardao
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 313
    Registrado : 12/03/2011

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  sardao em Sex 13 Jun 2014, 15:46

    Resta-me agradecer pela ajuda e espero ter dado a conhecer um Codigo que no meu ponto de vista veio a facilitar muito o meu trabalho. Wink


    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2488
    Registrado : 29/06/2012

    Re: [Resolvido]Actualizar FrontEnd em massa

    Mensagem  Noobezinho em Sex 13 Jun 2014, 17:53

    Sadao

    Valeu pelo retorno.

    Como disse, eu gostei do código, simples e funcional.
    Sempre defendi ir pelo simples, ou seja, pra que complicar se da pra simplificar?

    Boa sorte

    Noob


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

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