LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 18/08/2012 12:38 hs
Amigos, iniciando em ADO, eu abro uma tabela assim rs.Open "SELECT * FROM tabela WHERE campo='" & CRITERIO & "'", conexao, adOpenDynamic, adLockOptimistic Funciona perfeitamente, agora se eu precisar efetuar uma nova consulta, como devo fazer sem fechar o rs aberto?????
Outra coisa o rs.Find "campo=" & criterio, , 1 funciona em algumas tabelas outras não, gera um erro de fora de intervalo da faixa.
vlu//
|
|
|
|
Tiranossauro
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 20/08/2012 07:48 hs
Defina um segundo, terceiro, quarto recordset ... rs As New ADODB.Recordset rsb as new adodb.recordset
Quanto a Find, sugiro que utilize like para filtrar registros. http://www.macoratti.net/d110102.htm
|
|
|
LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 20/08/2012 10:37 hs
Obrigado, amigo.
vlu//
|
|
|
LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 21/08/2012 12:43 hs
Complicou, tenho um BD em Access com o cadastro de cidades, são 5583 registros, por enquanto, esta tabela mantenho atualizada e coloco no cliente, evitando que mesmo faça algo errado. Diariamente ao entrar no sistema pela primeira vez, o sistema verifica a Tabela do IBGE e as cidades não cadastradas ele coloca no meu BD Postgre, bom esatva usando o Find, mas as vezes não funciona, então como eu faria pra transferir a tabela, meu código abaixo. Screen.MousePointer = 11 smyFORM.lblMENSAGEM.Caption = "Transferinfo Tabela de Cidades. Aguarde..." DoEvents Call conectaACCESS(spmDB) ' aqui ele conecta o banco acces rspIBGE.Open "SELECT * FROM IBGE ORDER BY NUMER", cnn, adOpenDynamic, adLockReadOnly smyFORM.pbrATUALIZA.Visible = True smyFORM.pbrATUALIZA.BackColor = vbWhite If rspIBGE.RecordCount > 0 Then smyFORM.pbrATUALIZA.MinValue = 0 smyFORM.pbrATUALIZA.Value = 0 smyFORM.pbrATUALIZA.MaxValue = (rspIBGE.RecordCount + 1) lN = 0 rsIBGE.Open "SELECT * FROM ibge ORDER BY codibge", cn, adOpenDynamic, adLockOptimistic If Not rspIBGE.EOF Then rspIBGE.MoveMin Do While Not rspIBGE.EOF rsIBGE.Find "codibge=" & rspIBGE!codibge, , 1 If rsIBGE.EOF Then rsIBGE.AddNew rsIBGE!codibge = rspIBGE!codibge rsIBGE!cidade = rspIBGE!cidade rsIBGE!estado = rspIBGE!estado rsIBGE!uf = rspIBGE!uf rsIBGE.Update End If lN = (lN + 1) smyFORM.pbrATUALIZA.Value = lN DoEvents rspIBGE.MoveNext Loop End If rsIBGE.Close Set rsIBGE = Nothing End If rspIBGE.Close Set rspIBGE = Nothing Bom, tudo parece funcionar bem, mas as vezes o Find não funciona, e ele duplica registros. Agora dar um Select no EOF, teria que abrir e fechar o rsIBGE 5583 vezes, ai haja tempo de espera. Como posso realizar uma nova consulta com BD aberto?
Saudades do Seek, não funciona no Postgre com ADO.
vlu//
|
|
|
Treze
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 21/08/2012 13:28 hs
Vamos lá LCRamos vamos ver se posso te ajudar, veja o que entendi:
entendi que vc atualiza a base de dados no seu pc e depois os pc´s clientes atualizam suas bases pelo seu banco conferindo campo por campo é isso?
minha ajuda vai depender da sua resposta
|
|
|
LCRamos
|
GOIANIA GO - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 21/08/2012 15:08 hs
Sim, Treze, exatamente, tenho uma base de dados em Access, com as Tabelas das cidades com os códigos do IBGE, e uma tabela de CFOP, usada nas NFe, bem uma vez por dia o sistema verifica novos dados nesta tabela e transfere para as tabelas dos clientes. Agora o detalhe, os clientes que estão ainda com Acces, está tudo bem, mas agora migrando para o Postgre, estou trabalhando com o ADO, este é o problema, preciso saber como efetuar uma consulta sem fechar o BD, e abrir de novo. Não sei se entendeu.
vlu//
|
|
|
|