MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Compartilhe
    avatar
    EduardoPires
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 16/12/2012

    Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Mensagem  EduardoPires em 4/12/2018, 21:12

    Amigos, boa tarde. Tenho um banco de dados Access, e tanto em caso de formulários com subformulários, ou com formulários com listbox, estou passando por uma dificuldade que com a ajuda de vocês vou resolver. Toda vez que o usuário abre esse formulário, um formulário de entrega de produtos locados, com a listbox por exemplo, existe por trás da listbox uma consulta que me traz os registros das entregas da semana. Ocorre que para carregar esses registros e me trazer a tela com os filtros pré definidos, ele carrega toda a tabela do banco de dados, e a tela demora um pouco. Atualmente tem mais de 100.000 registros. Fiz um teste com uma tabela de 1.000 registros por exemplo e a performace é totalmente diferente, mesmo em rede de 20 usuários. Alugém pode me auxiliar de alguma forma, ou tem algum exemplo para postar, que eu possa carregar esse formulário com o subformulário ou a listbox, e que no momento de abrir ou de fazer algum filtro depois de aberto, não precise carregar todos os registros da tabela? Ou que carregue de uma forma que não pese tanto o formulário, pois trata-se de uma consulta Select. Então, preciso da orientação de vocês, como proceder, Uma consulta que seja mais adequada ou um código... Algo que não possa transformar a utilização da referida tela em um pesadelo.

    Agradeço a todos.

    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 22/11/2016

    Re: Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Mensagem  IvanJr. em 4/12/2018, 22:29

    Ocorre que para carregar esses registros e me trazer a tela com os filtros pré definidos, ele carrega toda a tabela do banco de dados, e a tela demora um pouco.

    Então por que já não carrega a tabela só com registros que atendam aos filtros pré definidos ao invés de toda a tabela do banco de dados?

    Outra sugestão seria já não ir carregando a listbox de "primeirona". Só carrega-la após o usuários preencher os campos de filtro e clicar em um botão que ativa o filtro e só então nesse momento ir buscar os dados na tabela do banco de dados.
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 22/11/2016

    Re: Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Mensagem  IvanJr. em 18/12/2018, 12:15

    Eduardo, como ficou seu caso? Resolveu?


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    EduardoPires
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 16/12/2012

    Re: Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Mensagem  EduardoPires em 14/1/2019, 08:49

    Ivan, obrigado pela dica. A questão é que "na origem da linha" da listbox, já fica definido a consulta que irá obedecer aos filtros, e como essa consulta fica já definida dentro da list, automaticamente carrega sem ser pelos filtros. Você pode me orientar como não precisar de deixar essa consulta na "Origem da linha" do listbox e mesmo assim me trazer os dados quando aplicado qualquer filtro imposto?
    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 22/11/2016

    Re: Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Mensagem  IvanJr. em 14/1/2019, 11:51

    Você pode alterar a propriedade RowSource (origem da linha) e só carregar a listbox no momento que achar adequado.

    Veja AS DICAS do artigo do link abaixo, em especial a dica 6
    (https)://www.usandoaccess.com.br/dicas/gerar-milhoes-registros-teste-access.asp

    obs.: remova os parênteses do https


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    Dilson
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1737
    Registrado : 11/11/2009

    Re: Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Mensagem  Dilson em 14/1/2019, 15:34

    Bom dia !

    Acrescentar que pode ser usado a cláusula LIMIT, sendo uma das melhores práticas usá-la.

    Eu faço isso constantemente, por exemplo: A tabela tem 5.000 registros. Eu carrego na ListBox somente 500 e a partir daí o usuário por meio da busca encontra o que procura e na busca uso novamente o LIMIT.




    avatar
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 410
    Registrado : 22/11/2016

    Re: Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Mensagem  IvanJr. em 14/1/2019, 20:02

    Boa, Dilson, afinal de contas os usuários não olham linha a linha quando muitos registros são retornados em uma busca, mas sim refinam mais ainda a pesquisa. Boa dica. Mas ei... LIMIT? Não seria o TOP?


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    avatar
    Dilson
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1737
    Registrado : 11/11/2009

    Re: Formulário com list box ou subformulário pesado devido a muitos registros na tabela

    Mensagem  Dilson em 14/1/2019, 23:38

    Verdade meu amigo, no vba usamos TOP ao invés de LIMIT.

    Isso é o mal de quem programa em mais de uma linguagem, confundir funções iguais de nomes diferentes. Uso LIMIT no SQL do PHP. No PHP por exemplo o uso do LIMIT é inevitável. As hospedagens fazem monitoramento das queries e aquelas que funcionam com lentidão nos são informadas e somos praticamente intimados a dar jeito e a cláusula LIMIT resolveu meu problema. Em programas Access VBA em alguma janelas abandonei a pesquisa no evento ao alterar e empreguei depois do Enter com o uso do TOP na instrução SQL e queixas de usuários por conta de lentidão na busca acabou.

      Data/hora atual: 18/1/2019, 00:00