Boa Tarde Amigos,
Em busca de solucionar o problema de toda fez que eu fazer uma alteração no Front End do Banco de Dados, ter que ir de maquina em maquina instalar tudo novamente, encontrei a solução nesse tópico para os meus problemas. http://maximoaccess.forumeiros.com/t368-atualizacao-do-sistema
Bom, nele encontrei os seguinte passos
1- No BE tenho uma tabela global onde um dos campos é a versão atual aqui salvo o número da última versão do FE.
2- No FE tenho também uma tabela global onde um dos campos armazena o número da versão.
3- Através de um Dlookup capturo a versão no BE.
4- Tenho um formulário de splash onde no evento ao abrir faço a comparação do versão atual salva no BE e na versão salva no FE.
5- Se a versão do FE for menor que a versão do BE então abre o aux e um Docmd.Quit para fechar o FE atual
6- o Aux copia um outro FE salvo na rede ( esse FE é a versão mais recente) e substitui o FE atual.
7- Após substituir ele executa o FE sendo que essa versão agora é a mais recente não faz novamente o processo.
8- Meu FE tem em torno de 20 Mb minha rede não é muito rápida esse processo demora em torno de 7 segundos.
9- Não há como o usuário cancelar.
Estou tentando implementar, acontece que os passos 1, 2, 3, 4 eu consegui certinho.
E consegui também, isoladamente os passos 6 e 7.
O problema é o passo 5, acontece que após ele fazer a verificação, ele deveria abrir um novo banco de dados que seria o banco de dados que ia fazer a atualização, ele até abre o banco de dados, porém, ele não fecha o atual, e isso trava tudo, pois ele não consegue copiar o arquivo, pelo menos é isso que eu acho que acontece.
Segue o código que está no Front End
Segue o código que está no Banco de Dados que irá realizar a atualização (Atualiza.accdb)
Alguém poderia me ajudar?
Em busca de solucionar o problema de toda fez que eu fazer uma alteração no Front End do Banco de Dados, ter que ir de maquina em maquina instalar tudo novamente, encontrei a solução nesse tópico para os meus problemas. http://maximoaccess.forumeiros.com/t368-atualizacao-do-sistema
Bom, nele encontrei os seguinte passos
1- No BE tenho uma tabela global onde um dos campos é a versão atual aqui salvo o número da última versão do FE.
2- No FE tenho também uma tabela global onde um dos campos armazena o número da versão.
3- Através de um Dlookup capturo a versão no BE.
4- Tenho um formulário de splash onde no evento ao abrir faço a comparação do versão atual salva no BE e na versão salva no FE.
5- Se a versão do FE for menor que a versão do BE então abre o aux e um Docmd.Quit para fechar o FE atual
6- o Aux copia um outro FE salvo na rede ( esse FE é a versão mais recente) e substitui o FE atual.
7- Após substituir ele executa o FE sendo que essa versão agora é a mais recente não faz novamente o processo.
8- Meu FE tem em torno de 20 Mb minha rede não é muito rápida esse processo demora em torno de 7 segundos.
9- Não há como o usuário cancelar.
Estou tentando implementar, acontece que os passos 1, 2, 3, 4 eu consegui certinho.
E consegui também, isoladamente os passos 6 e 7.
O problema é o passo 5, acontece que após ele fazer a verificação, ele deveria abrir um novo banco de dados que seria o banco de dados que ia fazer a atualização, ele até abre o banco de dados, porém, ele não fecha o atual, e isso trava tudo, pois ele não consegue copiar o arquivo, pelo menos é isso que eu acho que acontece.
Segue o código que está no Front End
- Código:
Private Sub Form_Open(Cancel As Integer)
Me.txtVersaoBE = Me.txtVersaoBE.ItemData(0)
Me.txtVersaoFE = Me.txtVersaoFE.ItemData(0)
If Me.txtVersaoBE.Value > Me.txtVersaoFE.Value Then
Dim strcmd As String
Dim objaccess As Access.Application
DoEvents:
Set objaccess = GetObject("C:\Users\User\Dropbox\Banco de Dados FRV\Base de Dados\Atualiza.accdb")
DoCmd.Quit
End If
End Sub
Segue o código que está no Banco de Dados que irá realizar a atualização (Atualiza.accdb)
- Código:
Private Sub Form_Open(Cancel As Integer)
On Error Resume Next
Dim CopiaSegura As Object
Dim objaccess As Access.Application
Dim PathInicial As String, PathFinal As String
PathInicial = "\\SERVIDOR\servidor\DEPARTAMENTO PESQUISA E PRODUCAO\Registro de Protocolos - BD"
PathFinal = "C:\Registro de Protocolos" 'Letra do Drive e pasta
Set CopiaSegura = CreateObject("Scripting.FileSystemObject")
CopiaSegura.CopyFile PathInicial & "\Registro de Protocolos.accde", PathFinal & "\Registro de Protocolos.accde"
DoEvents:
Set objaccess = GetObject("C:\Registro de Protocolos\Registro de Protocolos.accde")
DoCmd.Quit
End Sub
Alguém poderia me ajudar?