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

    [Resolvido]Formulário demora Abrir

    avatar
    Convidado
    Convidado


    [Resolvido]Formulário demora Abrir Empty Formulário demora Abrir

    Mensagem  Convidado 26/7/2013, 22:02

    Boa Noite !

    Tenho um formulário com duas listbox e alguns outros controle (Combox (4) e Caixa de texto(2))

    As listbox são carregadas com dados de uma consulta via VBA RecordSet.
    Mas Por algum motivo esse formulário em especifico demora muito pra abrir (uns 20 a 30 segundos).


    O que pode estar tardando essa abertura deste formulário ?


    Obrigado !
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  Dilson 27/7/2013, 18:57

    Sua tabela tem muitos registros ? quantos ?

    Esse modo de carregamento pelo vba pode demorar se usar o método AddItem.

    Já experimentou carregar diretamente pela origem da linha na aba dados da listbox usando os recursos nativos do access ?



    avatar
    Convidado
    Convidado


    [Resolvido]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  Convidado 28/7/2013, 03:06

    Obrigado Dilson pela resposta !


    "Sua tabela tem muitos registros ? quantos ?"
    uns 1500 registros.
    Mas nao acredito que essse seja o problema até porque tenho outros formulario que contem lisbox tbm carregado com dados dessa mesma tabela e nao tenho esse problema.


    "Esse modo de carregamento pelo vba pode demorar se usar o método AddItem."
    Eu carrego a ListBox da seguinte forma,

    Dim DB As DAO.Database
    Dim Ws As DAO.Workspace
    Dim strSelect As String

    Set Ws = DBEngine.Workspaces(0)
    Set DB = Ws.OpenDatabase(CaminhoBanco & "\MeuBanco.accdb", False, False, "Ms Access;PWD=***")

    strSelect = "Select * from MinhaConsulta"

    Set Me!LisBx_EquipRetidos.Recordset = DB.OpenRecordset(strSelect)
    Me!LisBx.ColumnCount = 17
    Me!LisBx.ColumnWidths = "1cm;0,9cm;1,5cm;1,1cm;0cm;0cm"
    Me!LisBx.Requery

    "Já experimentou carregar diretamente pela origem da linha na aba dados da listbox usando os recursos nativos do access ?"


    Sim Ja tentei carregar usando os recursos nativos do access e mesma coisa.

    Alguma ideia ?


    Última edição por Rafael_Jr em 28/7/2013, 14:26, editado 1 vez(es)
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  Dilson 28/7/2013, 03:34

    Muito pouco registro mesmo, esse realmente não é.

    Eu deduzo que colocou somente parte do código, pois não vi o fechamento do recordset.

    Já depurou seu código pelo vba ?
    avatar
    Convidado
    Convidado


    [Resolvido]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  Convidado 28/7/2013, 14:28

    Dilson,

    Essa questão de fechar o RecordSet era uma outra duvida tbm, nesse mesmo codigo acima se eu coloco DB.Close depois de Me!LisBx.Requery a listbox nao preenche fica tudo em branco.

    Quanto a depuração do COdigo ja fiz tbm e ele passa normalmente por todas as linhas sem travar.


    Como fecho o recordset nesse exemplo que postei ? DB.Close ?


    Obrigado !

    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]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  criquio 28/7/2013, 14:49

    Dando um pitaco, o Recordset deve ser fechado depois de ter sido utilizado. Você não pode abri-lo e fecha-lo antes que o serviço a que o mesmo se propõe tenha sido executado. Só ao final é que você o fecha:
    Código:
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset(...

            Preenche listbox ou combo ou campos ou o que mais precisar fazer com os dados da tabela ou consulta

    rs.Close
    set rs = Nothing


    .................................................................................
    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
    Convidado
    Convidado


    [Resolvido]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  Convidado 28/7/2013, 15:16

    Bom dia Criquio,

    Eu estava fazendo assim...

    Sub PreencherList()


    Dim DB As DAO.Database
    Dim Ws As DAO.Workspace
    Dim strSelect As String

    Set Ws = DBEngine.Workspaces(0)
    Set DB = Ws.OpenDatabase(CaminhoBanco & "\MeuBanco.accdb", False, False, "Ms Access;PWD=***")

    strSelect = "Select * from MinhaConsulta"

    Set Me!LisBx_EquipRetidos.Recordset = DB.OpenRecordset(strSelect)
    Me!LisBx.ColumnCount = 17
    Me!LisBx.ColumnWidths = "1cm;0,9cm;1,5cm;1,1cm;0cm;0cm"
    Me!LisBx.Requery


    DB.Close
    Set DB = Nothing

    End Sub


    E dessa forma formulário abre em branco sem registro.
    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]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  criquio 28/7/2013, 19:26

    Dê uma pesquisada no fórum por "conexão banco externo". Veja no vídeo do link na minha assinatura ↓abaixo↓ dicas para melhorar as pesquisas no fórum antes.


    .................................................................................
    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
    Convidado
    Convidado


    [Resolvido]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  Convidado 28/7/2013, 20:35

    Criquio e Dilson Obrigado pela ajuda !

    Criquio com sempre aprendendo muito com você.

    Depois de pesquisar encontrei em um topico na qual voce cita uma forma de fecha o banco e percebi onde eu estava errando, eu estava criando variavel desnecessaria e como eu trabalho com tabelas vinculadas nao tinha bastava usar o "CurrentDb.OpenRecordset" (Me corrige se eu estiver errado)

    http://maximoaccess.forumeiros.com/t11968-resolvidorecordset-entendendo?highlight=fechar+recordSet
    Veja ..

    Eu estava fazendo isso...

    Sub PreencherList()
    Dim DB As DAO.Database
    Dim Ws As DAO.Workspace
    Dim strSelect As String

    Set Ws = DBEngine.Workspaces(0)
    Set DB = Ws.OpenDatabase(CaminhoBanco & "\MeuBanco.accdb", False, False, "Ms Access;PWD=***")

    strSelect = "Select * from MinhaConsulta"

    Set Me!LisBx_EquipRetidos.Recordset = DB.OpenRecordset(strSelect)
    Me!LisBx.ColumnCount = 17
    Me!LisBx.ColumnWidths = "1cm;0,9cm;1,5cm;1,1cm;0cm;0cm"
    Me!LisBx.Requery
    End Sub


    E agora dessa forma conseguir fechar a conexão.

    Sub PreencherList()
    Dim rs As DAO.Recordset
    Set rs =CurrentDb.OpenRecordset("Select * from MinhaConsulta")
    Set Me!LisBx_EquipRetidos.Recordset = DB.OpenRecordset
    Me!LisBx.ColumnCount = 17
    Me!LisBx.ColumnWidths = "1cm;0,9cm;1,5cm;1,1cm;0cm;0cm"

    rs.close
    set rs = nothing

    End Sub
    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]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  criquio 29/7/2013, 13:06

    Grato pelo retorno. O fórum agradece.


    .................................................................................
    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.


    Conteúdo patrocinado


    [Resolvido]Formulário demora Abrir Empty Re: [Resolvido]Formulário demora Abrir

    Mensagem  Conteúdo patrocinado


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