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


    [Resolvido]Origem dos dados

    avatar
    Convidad
    Convidado


    [Resolvido]Origem dos dados Empty Origem dos dados

    Mensagem  Convidad 16/10/2011, 14:08

    Saudações!
    Gostaria da opinião dos colegas sobre a melhor maneira de trabalhar com o RecordSource de formulários num bd dividido, em relação ao tráfego na rede:
    1) Form.RecordSource = "Tabela"
    Buscar direto na tabela-base
    2) Form.RecordSource = "Consulta"
    Buscar em consulta salva no front
    3) Form.RecordSource = "SELECT ..."
    Usar instruções SQL
    4) Mais alguma opção? ...

    Agradeço a opinião de todos.
    Abraço!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Origem dos dados Empty Re: [Resolvido]Origem dos dados

    Mensagem  criquio 16/10/2011, 14:40

    Talvez uma boa opção seja carregar os dados em uma listbox ao carregar o formulário. Dessa forma, eles ficam sempre à disposição sem precisar ir novamente à tabela. Claro que isso vai depender da quantidade de registros, dos tipos de filtros, da periodicidade de atualização da tabela, etc.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidad
    Convidado


    [Resolvido]Origem dos dados Empty Re: [Resolvido]Origem dos dados

    Mensagem  Convidad 19/10/2011, 23:59

    Esta opção da caixa de listagem não tem o mesmo efeito de uma consulta?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Origem dos dados Empty Re: [Resolvido]Origem dos dados

    Mensagem  criquio 20/10/2011, 00:22

    Quando você carrega os dados na listbox usando o AddItem, você abre o recordset e logo depois fecha-o. Isso significa que os dados ficam carregados nela sem ir novamente à tabela, a não ser que você peça um Requery:

    Dim rs As Recordset ' Declara um recordset
    Set rs = DBEngine.Workspaces(0).OpenDatabase("Caminho do backend", False, False, "MS Access;PWD="SenhaDoBackEnd").OpenRecordset("NomeDatabela") ' Abre a tabela

    Me.NomeDaList.RowSource = "" ' Limpa a listbox
    Me.NomeDaList.RowSourceType = "value list" ' Declara o tipo de fonte como lista de valores

    Do While Not rs.EOF ' Enquanto não chegar no fim da tabela...
    Me.NomeDaListbox. AddItem rs!Campo1 & ";" & rs!Campo2 ' ... adicionar os campos 1 e 2
    rs.MoveNext ' Mover para o próximo registro
    Loop ' Dar um loop na tabela

    rs.Close ' Fecha a tabela
    Set rs = Nothing ' Destroi o recordset


    Observe que após preencher a listbox, fechamos a conexão com a tabela. Essa prática, dessa forma, pode não adicionar todos os registros á listbos, caso sejam muitos milhares de registros, mas para menos registros funciona bem. Outra coisa que pode ajudar, é você usar filtros ao declarar o recordset para restringir o resultado. Por exemplo, você pode carregar apenas os registros de um determinado intervalo de datas:

    Set rs = DBEngine.Workspaces(0).OpenDatabase("Caminho do backend", False, False, "MS Access;PWD="SenhaDoBackEnd").OpenRecordset("SELECT * FROM NomeDatabela WHERE Data>=#" & Me.txtDataIncial & #" And Data <=#" & Me.txtDataFinal & "#")

    Vale lembrar ainda que vez ou outra pode ser necessário dar um Requery para atualizar a listbox novos registros inseridos na tabela após o carregamento da mesma, mas o uso dela reduz bastante a ida ao Recordset, reduzindo o tráfego na rede.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidad
    Convidado


    [Resolvido]Origem dos dados Empty Re: [Resolvido]Origem dos dados

    Mensagem  Convidad 20/10/2011, 01:29

    Obrigado pela aula.
    Agora vamos ao dever de casa...

    Conteúdo patrocinado


    [Resolvido]Origem dos dados Empty Re: [Resolvido]Origem dos dados

    Mensagem  Conteúdo patrocinado


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