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


    Fechar conexão mantendo os registros na ListBox

    avatar
    Convidad
    Convidado


    Fechar conexão mantendo os registros na ListBox Empty Fechar conexão mantendo os registros na ListBox

    Mensagem  Convidad 17/4/2012, 02:27

    Boa noite pessoal!!

    Estou usando com sucesso o seguinte código disponibilizado pelo mestre Avelino Sampaio:

    Private Sub Form_Load()
    Dim bd As DAO.Database
    Dim rs As DAO.Recordset
    Set bd = OpenDatabase("c:\maestro\maestro_v3_be.accdb", False, False, ";pwd:=a1234")
    Set rs = bd.OpenRecordset("SELECT códigoDocliente FROM tblpedidos;")
    Set Me!Lista8.Recordset = rs 'O segredinho aqui é o SET no início
    End Sub

    Mas não consigo fechar a conexão e manter os dados na listbox. Para que a listbox continue carregada, a conexão tem que está aberta.
    Gostaria de saber como carregar a listbox e manter os dados após o close da conexão?
    Ficarei imensamente grato pelo apoio.
    avatar
    Convidad
    Convidado


    Fechar conexão mantendo os registros na ListBox Empty Re: Fechar conexão mantendo os registros na ListBox

    Mensagem  Convidad 17/4/2012, 04:24

    Marcos

    Acrescente as duas linhas em azul:

    Dim bd As DAO.Database
    Dim rs As DAO.Recordset

    Set bd = OpenDatabase("D:\Trabalhos\maestro\Maestro_v2_be.accdb", False, False, ";PWD=a1234")
    Set rs = bd.OpenRecordset("SELECT códigoDocliente FROM tblpedidos;")
    Set Me!Lista8.Recordset = rs 'O segredinho aqui é o SET no início

    Set bd = Nothing
    Set rs = Nothing


    Dessa maneira irá fechar a conexão e manterá os dados na listbox.

    Abraços
    avatar
    Convidad
    Convidado


    Fechar conexão mantendo os registros na ListBox Empty Re: Fechar conexão mantendo os registros na ListBox

    Mensagem  Convidad 17/4/2012, 12:30

    Olá, bom dia.
    Mesmo fazendo o que você me instruio a conexão com o banco ainda permanece aberta, pois o arquivinho laccdb continua lá.

    Mas quando eu carrego a listbox com AddItem, ela carrega, eu fecho a conexão, esvazio da meméria, e a listbox continua carregada.

    O motivo que eu mudei para esse código, é porque ouvi falar bastante que o AddItem trava, se tiver uma lista muito grande, que é o meu caso.

    avatar
    Convidad
    Convidado


    Fechar conexão mantendo os registros na ListBox Empty Re: Fechar conexão mantendo os registros na ListBox

    Mensagem  Convidad 17/4/2012, 18:44

    Realmente Marcos

    Como os dados da listbox estão atrelados ao recordset, uma vez que feche esse último,
    os dados da listbox se perdem.

    Eu contornei isso utilizando um Array.
    Veja que o exemplo abaixo, é para popular somente uma coluna da listbox, conforme o próprio exemplo postado por você.

    Código:

    Private Sub Form_Load()

    Dim bd As DAO.Database
    Dim rs As DAO.Recordset
    Dim nreg As Integer, I As Integer, x As Integer, vreg As String
    Dim regsA() As Variant
    Set bd = OpenDatabase("c:\maestro\maestro_v3_be.accdb", False, False, ";PWD=a1234")
    Set rs = bd.OpenRecordset("SELECT códigoDocliente FROM tblpedidos;")

    rs.MoveLast
    nreg = rs.RecordCount - 1
    ReDim regsA(nreg + 1)
    rs.MoveFirst
    For I = 0 To nreg
        regsA(I) = rs!códigoDocliente    ' Inicialize a matriz.
        rs.MoveNext
    Next I
    For x = 0 To nreg
     vreg = vreg & regsA(x) & ";"
    Next x

    Me!Lista8.RowSource = vreg

    rs.Close
    bd.Close
    Set rs = Nothing
    Set bd = Nothing

    End Sub

    Abraços
    avatar
    Convidad
    Convidado


    Fechar conexão mantendo os registros na ListBox Empty Re: Fechar conexão mantendo os registros na ListBox

    Mensagem  Convidad 18/4/2012, 13:28

    Muito obrigado pela resposta! E para carregar mais de uma coluna?
    avatar
    Convidad
    Convidado


    Fechar conexão mantendo os registros na ListBox Empty Re: Fechar conexão mantendo os registros na ListBox

    Mensagem  Convidad 18/4/2012, 13:37

    Bom então deverá usar Array bi - tri dimensional

    Veja sobre array e Dim na ajuda o Access e dê uma pesquisada no oráculo (google)
    que tem bastante material para estudos.

    Abraços

    Conteúdo patrocinado


    Fechar conexão mantendo os registros na ListBox Empty Re: Fechar conexão mantendo os registros na ListBox

    Mensagem  Conteúdo patrocinado


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