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]Ajuda com caixa de listagem

    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Ajuda com caixa de listagem Empty Ajuda com caixa de listagem

    Mensagem  chsestrem Ter 16 Mar 2010, 6:08 pm

    Boa tarde amigos do Forum.

    Recorro a vcs novamente para ajuda com uma caixa de listagem.

    Tenho em um formulario algumas caixa de combinação desacopladas, onde carrego elas via recordset. Ex:

    Option Compare Database

    Dim db As DAO.Database
    Private Sub comb1_GotFocus()
    Const caminho = "G:\BD_MATRIZ_be.mdb"
    Dim rs As Recordset
    Set db = OpenDatabase(caminho)
    Set rs = db.OpenRecordset("Tabela_motoristas")
    Me.comb1.RowSource = "SELECT NomeDoMotorista FROM Tabela_Motoristas" & _
    " IN '" & caminho & "' GROUP BY NomeDoMotorista ORDER BY NomeDoMotorista ; "

    End Sub

    Private Sub comb1_LostFocus()
    Me.Refresh
    db.Close
    Set db = Nothing
    Set rs = Nothing
    End Sub

    Com este metodo acima qdo as combos recebem o foco ou clico nelas elas carregam a listagem pretendida e quando perdem o foco elas fecham a conexão e liberam a memoria.

    Como no formulario o operador digita muitos lançamentos, eu possuo uma lista de lançamentos com 5 colunas que serve apenas para o operador visualizar se o lançamento está correto, em caso de erro ele popula através de uma combobox com o cód do lançamento novamente no formulario e modifica o que não está correto.

    Desculpem se fui muito extenso, mas gostaria de saber como eu posso exibir esta caixa de listagem no formulario, e manter a conexão fechada com o BD.?


    Última edição por chsestrem em Qua 17 Mar 2010, 6:28 pm, editado 2 vez(es)
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  JPaulo Qua 17 Mar 2010, 11:20 am

    Minha opinião;

    Porque você não vincula a tabela "Tabela_motoristas" a esse banco, e apenas dá um Me.Lista.Requery para estar sempre atualizada ?


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Ajuda com caixa de listagem Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Ajuda com caixa de listagem Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Ajuda com caixa de listagem Folder_announce_new Instruções SQL como utilizar...
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  chsestrem Qua 17 Mar 2010, 12:34 pm

    Bom dia JPaulo, desde já agradeço pela atenção dispensada.

    Este formulario já trabalha com tabela vinculada. Mas nesta forma a operação está muito lenta. Então resolvi modificar o formulario para ficar totalmente independente, e só conectar o banco quando necessário, tanto nas combos como nos botões. Esta lista que fica abaixo do formulario nada mais é que uma simples visualização do operador para perceber se houve algum erro nos lançamentos anteriores. O que eu realmente esperava era de abrir o formulario, carregar esta caixa de listagem e fechar o banco depois de carregada.
    Espero ter sido mais claro.

    Sds,
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  JPaulo Qua 17 Mar 2010, 12:49 pm

    Amigão entendi na perfeição;

    Mas se você carrega através de Recordset, ela nunca poderá ficar com dados se você fechar a conneção.

    Por isso eu sugeri, que você faça sim o Me.comb1.RowSource = "SELECT NomeDoMotorista FROM Tabela_Motoristas" à tabela vinculada.

    Mais rápido do que carregar por Recordset, além de não correr o risco do banco ficar corrompido se por algum motivo ele fechar e o Recordset ficar aberto.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Ajuda com caixa de listagem Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Ajuda com caixa de listagem Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Ajuda com caixa de listagem Folder_announce_new Instruções SQL como utilizar...
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  chsestrem Qua 17 Mar 2010, 1:26 pm

    Obrigado mais uma vez JPaulo,

    Resolvi fazer o seguinte, como quero que o banco

    seja aberto só quando necessário, vou importar as tabelas
    para o Front e vou fazer a replicagem no evento Carregar e
    no evento ao fechar do Form.

    Acho que seria o mais conveniente, o que vc acha?
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  JPaulo Qua 17 Mar 2010, 1:28 pm

    Perfeito amigo, faça isso e volte para nos dizer qual a performance do Banco em termos de rapidez, o fórum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Ajuda com caixa de listagem Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Ajuda com caixa de listagem Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Ajuda com caixa de listagem Folder_announce_new Instruções SQL como utilizar...
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  chsestrem Qua 17 Mar 2010, 6:22 pm

    Boa tarde JPaulo,

    Deu um pouquinho de trabalho, mas valeu a pena.

    Criei as réplicas do BD_Mestre pelas estações, e no

    Front End foi só atualizar as tabelas vinculadas.

    Ficou muito bom, o formulário que demorava pra abrir

    ficou muito rápido.

    Só tive que escrever o caminho de sincronização em cada

    máquina pois o back-end agora é exclusivo para cada um.


    Abraços,

    Charles Sestrem
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  JPaulo Qua 17 Mar 2010, 6:25 pm

    Valew pelo retorno amigo, o fórum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Ajuda com caixa de listagem Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Ajuda com caixa de listagem Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Ajuda com caixa de listagem Folder_announce_new Instruções SQL como utilizar...
    chsestrem
    chsestrem
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 463
    Registrado : 01/03/2010

    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  chsestrem Qui 18 Mar 2010, 6:38 pm

    Boa tarde JPaulo,

    fiquei fuçando na net e procurando uma alternativa aqui e
    outra ali e consegui o resultado esperado com o código abaixo:

    Private Sub Form_Open(Cancel As Integer)
    Dim db As DAO.Database
    Dim rs As Recordset
    Dim caminho As String
    caminho = "G:\BD_MATRIZ_be.mdb"
    Set db = OpenDatabase(caminho)
    Set rs = db.OpenRecordset("SELECT * from Tabela_Motoristas order by Tabela_Motoristas.NomeDoMotorista")

    Do Until rs.EOF
    Me.Refresh
    Me.lista1.AddItem rs.Fields("NomeDoMotorista").Value & ";" & rs.Fields("CPF").Value
    rs.MoveNext
    Loop

    db.Close
    Set db = Nothing
    Set rs = Nothing

    End Sub

    Ele carrega a listbox e fecha o BD, como eu queria, porém

    gostaria de saber se poderia carregar as combos da mesma forma

    com este método, ou seja no mesmo loop.

    Sds,

    Charles Sestrem

    Conteúdo patrocinado


    [Resolvido]Ajuda com caixa de listagem Empty Re: [Resolvido]Ajuda com caixa de listagem

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Sex 19 Abr 2024, 11:42 am