NAO REPETIR OS RECORDSETS
tenho o seguinte codigo:
Set conn = New Connection
conn.CursorLocation = adUseClient
conn.Open CN
Dim Recordset1 As New ADODB.Recordset
Dim Recordset2 As New ADODB.Recordset
Dim Recordset3 As New ADODB.Recordset
Dim Recordset4 As New ADODB.Recordset
Recordset1.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
Recordset2.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
Recordset3.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
Recordset4.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
frm.ID.Text = Recordset1("ID")
frm.nome.Text = Recordset2("nome")
frm.bi.Text = Recordset3("bi")
frm.telefone.Text = Recordset4("telefone")
Recordset1.Close
Recordset2.Close
Recordset3.Close
Recordset4.Close
Set conn = Nothing
Set Recordset = Nothing
Gostaria de saber como faço para utilizar um unico Recordset, e n repetir isto td...
é q ja me disseram q esta n é a forma mais correcta
Obrigado
Set conn = New Connection
conn.CursorLocation = adUseClient
conn.Open CN
Dim Recordset1 As New ADODB.Recordset
Dim Recordset2 As New ADODB.Recordset
Dim Recordset3 As New ADODB.Recordset
Dim Recordset4 As New ADODB.Recordset
Recordset1.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
Recordset2.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
Recordset3.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
Recordset4.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
frm.ID.Text = Recordset1("ID")
frm.nome.Text = Recordset2("nome")
frm.bi.Text = Recordset3("bi")
frm.telefone.Text = Recordset4("telefone")
Recordset1.Close
Recordset2.Close
Recordset3.Close
Recordset4.Close
Set conn = Nothing
Set Recordset = Nothing
Gostaria de saber como faço para utilizar um unico Recordset, e n repetir isto td...
é q ja me disseram q esta n é a forma mais correcta
Obrigado
Reyad
Como, pelo visto, todos estão na mesma tabela DADOS, é só alterar para:
Não tem motivo para abrir 4 Recordsets, além disto o ideal seria um nome para o RecordSet, poderia ser rsTemp indicando que é temporário e local.
Ainda, não declare e instancie, isto ocosionará problemas no Encerramento/Destruição do objeto, ele permanecerá na memória, altera para:
SE tiver dúvidas ainda, coloque o trecho que não entendeu
Até Breve
[s92]
Como, pelo visto, todos estão na mesma tabela DADOS, é só alterar para:
frm.ID.Text = Recordset1("ID").value
frm.nome.Text = Recordset1("nome").value
frm.bi.Text = Recordset1("bi").value
frm.telefone.Text = Recordset1("telefone") .value
Não tem motivo para abrir 4 Recordsets, além disto o ideal seria um nome para o RecordSet, poderia ser rsTemp indicando que é temporário e local.
Dim Recordset1 As ADODB.Recordset
Set RecordSet1 = New ADODB.RecordSet
....
....
....
....
....
'Após ter usado, encerre e destrua
RecordSet1.CLOSE
Set RecordSet1 = Nothing
Ainda, não declare e instancie, isto ocosionará problemas no Encerramento/Destruição do objeto, ele permanecerá na memória, altera para:
SE tiver dúvidas ainda, coloque o trecho que não entendeu
Até Breve
[s92]
Tente isso,
tenho o seguinte codigo:
Set conn = New Connection
conn.CursorLocation = adUseClient
conn.Open CN
Dim Recordset1 As New ADODB.Recordset
Recordset1.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
frm.ID.Text = Recordset1("ID")
frm.nome.Text = Recordset1("nome")
frm.bi.Text = Recordset1("bi")
frm.telefone.Text = Recordset1("telefone")
Recordset1.Close
Set conn = Nothing
tenho o seguinte codigo:
Set conn = New Connection
conn.CursorLocation = adUseClient
conn.Open CN
Dim Recordset1 As New ADODB.Recordset
Recordset1.Open "select * from dados", conn, adOpenStatic, adLockReadOnly, adCmdText
frm.ID.Text = Recordset1("ID")
frm.nome.Text = Recordset1("nome")
frm.bi.Text = Recordset1("bi")
frm.telefone.Text = Recordset1("telefone")
Recordset1.Close
Set conn = Nothing
Foi mal Kpellarj
Leopoldo
O conn deveria ser público e no local onde você indicou:
Deveria estar o RecordSet
Assim o objeto RecordSet1 é retirado da memória, mas sendo uma conexão declarada ainda ficaria aberta para outras consultas, se destruir pura e simplesmente, sem encerrar poderá permanecer na memória a conexão tornando o sistema lento, já que o Access entenderá como uma Conexão a mais.
Acredito que você trocou a Conn pelo RecordSet1 aqui.
Até Breve
[s92]
O conn deveria ser público e no local onde você indicou:
Set conn = Nothing
Deveria estar o RecordSet
Set RecordSet1 = Nothing
Assim o objeto RecordSet1 é retirado da memória, mas sendo uma conexão declarada ainda ficaria aberta para outras consultas, se destruir pura e simplesmente, sem encerrar poderá permanecer na memória a conexão tornando o sistema lento, já que o Access entenderá como uma Conexão a mais.
Acredito que você trocou a Conn pelo RecordSet1 aqui.
Até Breve
[s92]
obrigado ppl pela vossa ajuda 
cumps

cumps
Eu só tirei a redundà ¢ncia do código
A Conexão do banco tem que ser feita no inÃcio da aplicação e encerra-lá no final.
Reyad
Só encerre o tópico se o mesmo resolver o teu problema, teste antes, Ok?
Se tiver alguma dúvida poste novamente.
[s50]
Leopoldo
Sim, a conexão tem que ser feita no inÃcio, mas este RecordSet pelo visto é local e só deve encerrar a conexão no encerramento do aplicativo, mesmo assim antes deve-se fechá-lo, como é local, a conexão conn deve permanecer aberta, por isto acho que você postou o Conn sendo destruido (Nothing) mas pensando em destruir o RecordSet1, foi isso.
[s50]
Só encerre o tópico se o mesmo resolver o teu problema, teste antes, Ok?
Se tiver alguma dúvida poste novamente.
[s50]
Leopoldo
Sim, a conexão tem que ser feita no inÃcio, mas este RecordSet pelo visto é local e só deve encerrar a conexão no encerramento do aplicativo, mesmo assim antes deve-se fechá-lo, como é local, a conexão conn deve permanecer aberta, por isto acho que você postou o Conn sendo destruido (Nothing) mas pensando em destruir o RecordSet1, foi isso.
[s50]
ta resolvido mais uma vez obrigado ppl 
cumps

cumps
Tópico encerrado , respostas não são mais permitidas