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


2 participantes

    Lentidão no Uso em Rede

    avatar
    dklst
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 07/10/2014

    Lentidão no Uso em Rede Empty Lentidão no Uso em Rede

    Mensagem  dklst 8/12/2017, 13:11

    Caros colegas, bom dia.

    Aqui na minha empresa utilizamos um Sistema de Registro de Atividades Técnicas em Access 2010 onde o mesmo está separado em FE e BE.
    O FE é distribuído entre os usuários e contém os vínculos de tabelas, consultas, módulos e etc..
    O BE possui as tabelas e fica em uma pasta em um servidor na rede.

    O acesso é realizado por diversos pontos do Brasil (máx. 20 acessos simultâneos), e em alguns deles a velocidade ou estabilidade da conexão com a rede é muito precária.
    Como os formulários possuem alguns combobox (trazendo uma lista de uma tabela) e validações de dados usando funções de domínio, nestes locais onde a conexão é mais precária o preenchimentos destes formulários fica insustentável.

    Gostaria de saber se existe alguma solução que eu possa efetuar para contornar estes problemas de infraestrutura.
    Já pensei em duas possibilidades:

    1º Fazer com que o FE copie as tabelas de configurações e deixe apenas vinculadas as tabelas de registro de dados, não associando os controles dos formulários e fazendo com que gere um novo registro no final do preenchimento do formulário via ODBC (Obviamente efetuando as devidas validações nos controles);

    2º Gerar um BD "offline" para cada usuário destes locais com rede precária (em uma pasta compartilhada) e gerar códigos para importar os dados com uma certa periodicidade.

    Conheço muito de VBA, mas pouco de Access portanto não sei se as ideias que tive fazem parte das "boas práticas" e nem sei por onde começar.

    Se alguém puder me ajudar com opiniões ou exemplos, ficaria muito grato! cheers

    Abraços,
    Marcelo Nakamura
    José Machado
    José Machado
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/09/2016

    Lentidão no Uso em Rede Empty Re: Lentidão no Uso em Rede

    Mensagem  José Machado 8/12/2017, 15:30

    Boa tarde amigo

    Para ganhar velocidade de carregamento, desvincule as tabelas e acesse-as via ADODB

    Use esse Módulo para a Conexão...

    Crie um Módulo chamado Cls_Conexao

    Depois é só instanciar o objeto da conexão nos outros módulos ou nos Formulários

    #######

    Dim connection As New ADODB.connection

    Public result_set As ADODB.Recordset

    Public data_reader As ADODB.Recordset

    Public Sub Abrir_Conexao()

    Dim provider_data_base As String
    Dim url_data_base As String
    Dim local_data_base As String
    Dim nome_data_base As String

    provider_data_base = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =" 'banco.mdb
    'ou
    provider_data_base = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source =" 'banco.accdb


    local_data_base = "pasta do local do banco de dados\"

    nome_data_base = "nome do banco de dados e a extensão "

    url_data_base = provider_data_base + local_data_base + nome_data_base

    Set Connection = New ADODB.Connection
    Connection.CursorLocation = adUseClient
    Connection.Open url_data_base
    End Sub
    Public Sub Fechar_Conexao()
    Connection.Close
    Set Connection = Nothing
    End Sub
    Public Sub Executar_Query(query As String)
    Set result_set = New ADODB.Recordset
    Abrir_Conexao
    result_set.Open query, Connection, adOpenStatic
    Set result_set = Nothing
    Fechar_Conexao
    End Sub
    Public Sub Executar_Data_Reader(query As String)
    Set data_reader = New ADODB.Recordset
    data_reader.Open query, Connection, adOpenStatic
    End Sub
    Public Sub Fechar_Data_Reader()
    data_reader.Close
    Set data_reader = Nothing
    Fechar_Conexao
    End Sub
    avatar
    dklst
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 07/10/2014

    Lentidão no Uso em Rede Empty Re: Lentidão no Uso em Rede

    Mensagem  dklst 8/12/2017, 16:22

    José,

    Obrigado pela sugestão.

    Apenas para entender melhor, então é melhor eu utilizar ADODB para efetuar a query de consulta da lista dos combobox e das funções de Domínio (Dlookup, Dcount)?
    Vi que para o combobox guardar os valores em sua lista é necessário atribuir o recordset à um array e depois atribuir ao controle, quanto a isso tranquilo.

    Esta sua sugestão é melhor do que criar um BD local para depois importar para um BD Central (o BE na rede)?

    Abraços,
    Marcelo Nakamura
    José Machado
    José Machado
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/09/2016

    Lentidão no Uso em Rede Empty Re: Lentidão no Uso em Rede

    Mensagem  José Machado 8/12/2017, 16:58

    Marcelo

    Isso mesmo, melhor desvincular e só receber o dados via ADODB desvinculado.

    Ou, criar um Banco Local e um MÓDULO com um TIMER para fazer as atualizações, pegando as informações do servidor WEB onde a conexao for lenta demais.


    Att
    José
    avatar
    dklst
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4
    Registrado : 07/10/2014

    Lentidão no Uso em Rede Empty Re: Lentidão no Uso em Rede

    Mensagem  dklst 8/12/2017, 17:59

    José.

    Obrigado! Vou tentar a primeira opção e no Load do Formulário de Entrada de Dados vou colocar as query's em ADO para carregar apenas uma vez e não sempre que eu fizer o dropdown.
    Caso não consiga, vou tentar criar um BD local e pensar em como arquitetar uma maneira de importar e consolidar para um BD na rede...

    Mais uma vez agradeço a atenção.

    De qualquer forma, acredito que vou aguardar mais alguma opnição à respeito, acredito que muitas pessoas já passaram pelo que eu estou passando no momento!

    Um grande abraço!
    Marcelo Nakamura
    José Machado
    José Machado
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/09/2016

    Lentidão no Uso em Rede Empty Re: Lentidão no Uso em Rede

    Mensagem  José Machado 8/12/2017, 18:19

    Marcelo

    Qualquer coisa, eu te ajudo nessa empreitada.


    José

    Conteúdo patrocinado


    Lentidão no Uso em Rede Empty Re: Lentidão no Uso em Rede

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 03:29