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

3 participantes

    Front End Access no servidor

    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    Front End Access no servidor Empty Front End Access no servidor

    Mensagem  rg3915 8/1/2014, 17:31

    Existe algum problema (talvez de performance) em deixar uma cópia do FE no servidor para cada usuário e colocar apenas o link de cada um na máquina local?

    Ou seja, eu teria no servidor uma instância do FE para cada usuário:

    FE_Joao.accdb
    FE_Pedro.accdb
    FE_Maria.accdb
    E na máquina de cada um deles, um link:

    FE_Joao_atalho
    FE_Pedro_atalho
    FE_Maria_atalho
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1037
    Registrado : 23/04/2013

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  Uilson Brasil 8/1/2014, 17:40

    Amigo,

    Em um cliente tenho um sistema que funciona + ou - assim. Entretanto em lugar de usuário foi feito grupos de usuários e todos os usuários ligados aos grupos acessa a mesma base de dados.

    Não tive problemas relacionados a isso em nenhum momento.

    Grupos de Usuários:
    Comercial, Operacional e Financeiro.


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  rg3915 8/1/2014, 17:57

    Minha dúvida não é em relação a base de dados e sim em relação a camada Front End, onde ficam os formulários e relatório.
    Eu queria colocar ele tb no servidor, mas uma cópia pra cada um, entendeu?
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1037
    Registrado : 23/04/2013

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  Uilson Brasil 8/1/2014, 18:11

    Você está pensando em colocar no concentrador e não na estação de trabalho?


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  rg3915 9/1/2014, 02:32

    Sim. E deixar um link pra cada um.
    Será que vai ficar mais lento?
    Quais seriam os problemas?
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1037
    Registrado : 23/04/2013

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  Uilson Brasil 9/1/2014, 11:48

    Amigo,

    Com certeza ficará mais lento.
    Pois toda vez que o usuário for acessar terá que utilizar da rede e a lentidão irá depender da velocidade de sua rede. Principalmente na abertura e ao fechar o sistema você notará o quanto ficará mais lendo.

    O ideal seria realizar um teste para verificar.


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    avatar
    halmeida
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 90
    Registrado : 07/08/2011

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  halmeida 22/1/2014, 01:44

    Amigo, utilizo onde trabalho o back end no servidor e uma cópia do front end em cada estação de trabalho. Desta forma não tenho tido problemas. Só para constar, já verifiquei situações onde mais de 50 estações funcionando ao mesmo tempo e roda tranquilo.

    Talvez você queira optar por utilizar o front end no servidor para quando houver alguma alteração nos formulários, não precisar substituir um por um em todas as máquinas da empresa. O que fiz foi criar uma rotina de verificação da versão do form. Se a versão for diferente, ele fecha o form e abre um BD criado somente pra atualizar a versão. Assim evito andar pela empresa atualizando nos micros de cada um.
    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  rg3915 22/1/2014, 02:40

    halmeida, como se faz isso? Esse script que voce falou?
    avatar
    halmeida
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 90
    Registrado : 07/08/2011

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  halmeida 22/1/2014, 04:01

    A primeira coisa a fazer é criar uma tabela no back end com o número das versões. No front end, insira um campo (pode ser oculto) desvinculado com a o número da versão atual. Em seguida coloque no evento ao carregar do primeiro formulário uma consulta que compara esse campo com o último registro da tabela de versões do back end. Se as versões forem diferentes passa pra segunda rotina.

    A segunda rotina consta em abrir um outro BD (que deve estar em cada máquina de cada usuário). Este arquivo serve somente pra copiar o seu front end de algum lugar (no meu caso coloco sempre as atualizações de forms junto com o back end no servidor) para o micro do usuário.

    Para evitar problemas de caminho em cada micro, criei uma pasta dentro da unidade C:\meuBD. Assim quando o BD de atualização roda, ele copia o novo front end do servidor para o micro do usuário, sobrescrevendo o front end desatualizado.

    O trabalho maior foi somente na instalação em cada micro, que tive que fazer manualmente em cada uma das estações.

    O problema que eu tive foi ao tentar colar um atalho na área de trabalho de cada micro no momento das atualizações. Devido a restrições de perfil de usuário, não foi possível. Mas contornei essa situação copiando o atalho no momento da instalação. Importante saber que o nome do seu BD não deve ser alterado para não perder o vínculo com o atalho e com os códigos.
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1037
    Registrado : 23/04/2013

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  Uilson Brasil 22/1/2014, 11:03

    Amigos,

    Utilizo um conceito semelhante. Entretanto trabalho com uma tabela também no front-end - idêntica a do back-end.

    Quando faço uma atualização tenho uma pequena ferramenta dentro do diretório do próprio aplicativo para realizar esse tratamento - Veja Aqui .

    Após o tratamento disponibilizo uma cópia no servidor para download.

    Quando a estação de trabalho inicio o sistema é aberto um formulário oculto com os dados das duas tabelas do front e back, aí é realizada a comparação de versões. Se a versão da estação for diferente da versão do back-end é chamado um outro aplicativo que realiza a atualização de forma automatizada.

    Vejam como funciona Aqui


    Qquer dúvida estou a disposição.


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    rg3915
    rg3915
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 119
    Registrado : 17/06/2013

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  rg3915 22/1/2014, 11:37

    Pessoal, acho que ficou meio complicado, mesmo lendo as dicas do halmeida e vendo o video do Uilson Brasil ainda não sei como fazer isso de fato.
    avatar
    halmeida
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 90
    Registrado : 07/08/2011

    Front End Access no servidor Empty Re: Front End Access no servidor

    Mensagem  halmeida 25/1/2014, 04:02

    Vamos lá... passo a passo.

    Você tem seu banco de dados principal que está dividido em front end (uma cópia em cada micro dos usuários) e back end (salvo em um servidor). Desta forma cada usuário acessa o back end através de seu front end.

    No formulário de abertura do seu front end (como utilizo formulário de login, este é o primeiro formulário que abre no meu BD) você vai inserir um textbox (invisível). Vamos chamar este campo de "VersaoAtual". Na folha de propriedades, item Valor Padrão, coloque o número da versão mais atual, por exemplo "1.0".

    Então temos um campo no formulário de abertura chamado "VersaoAtual" com valor padrão "1.0".

    Agora, no seu arquivo back end que está no servidor, crie uma tabela com o número das versões. Por exemplo tabela "Controle_Versoes", com dois campos, um "NumeroVersao" e outro "DataVersao". Nesta tabela é importante que somente você, o desenvolvedor, tenha acesso, pois é aqui que ficarão listadas todas as versões do programa.

    De volta no front end, no mesmo formulário inicial, insira mais um textbox, vinculado à tabela "Controle_Versoes" no campo "NumeroVersao". Vamos dar o nome do textbox para "NumeroVersao".
    Em seguida insira o seguinte código no evento ao carregar:
    Código:

    if Me.NumeroVersao <> Me.VersaoAtual then
    'código disponível no site do maximoaccess. Aqui você irá abrir outro banco que possui as linhas de comando para atualizar a versão do soft.
    Dim strcmd As String
    Dim objaccess As ACCESS.Application
    'Indique o caminho do arquivo que fará a atualização do seu sistema
    strcmd = SysCmd(acSysCmdAccessDir) & "\msaccess.exe " & "c:\Atualizador.accdb"
    Call Shell(strcmd, vbNormalFocus)
    DoEvents:
    Set objaccess = GetObject("c:\Atualizador.accdb")
    'DoCmd.Quit ' para fechar o banco accdb que chamou o outro.
     
    O código acima abre outro banco se a versão do textbox "NumeroVersao" for diferente de "VersaoAtual".

    A próxima etapa é cria o arquivo que fará a atualização. É importante que este arquivo fique junto ao front end do seu banco de dados principal em cada micro do usuário. Ele foi citado no código acima: "Atualizador.accdb". Crie um novo BD e um formulário que deverá carregar ao abrir o BD. Neste formulário insira o seguinte código no evento ao carregar:

    Código:

    On Error GoTo trataerro

    Dim fso
    Dim file As String
    Dim dfol As String
        
        ' nome do arquivo que já está na nova versão
        file = "\\Caminho do Arquivo Principal no Servidor\ArquivoPrincipal.accdb"
        
        'Caminho da nova versão no micro do usuário. Importante padronizar, por exemplo, em C:\PastaDoProjeto\.
        dfol = "C:\PastaDestinodoArquivo\"

        Set fso = CreateObject("Scripting.FileSystemObject")
        
        'Verifica se o arquivo a ser copiado existe
        If Not fso.FileExists(file) Then
            MsgBox "Não foi localizado o arquivo para Atualização! Tente mais tarde!", vbExclamation, "Erro"
                
        Else
            'Copia o arquivo da nova versão do servidor para o micro do usuário
            fso.CopyFile (file), dfol, True 'true para subrescrever o arquivo se existir.
        
        MsgBox "Atualizado com sucesso!", vbInformation, "Sucesso"

        End If

    trataerro:

    MsgBox "Erro. Descrição: " & Err.Description & "Número: " & Err.Number


    Toda nova versão do BD que você criar, disponibilize no servidor e insira na tabela "Controle_Versoes" a última versão que o sistema se encarregará do restante.

    Agora acho que ficou mais explicado. Qualquer dúvida pergunte.

      Data/hora atual: 26/11/2022, 19:55