Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Viva pessoal
Agradecia ajuda no seguinte, tem como criar um recordset ado variável?
Isto porque preciso de criar um módulo que será utilizado por 30 formulários, porque para criar o mesmo código para 30 formulários em caso de necessitar de fazer algum ajuste tenho de fazer 30 alterações o que dá muito mais trabalho.
Pretendia que esta função fosse variável:
Dim (Selrs) as ADODB.Recordset
set (Selrs) = new ADODB.Recordset
Em que (Selrs) fosse igual a screen.activeform.selrsform, em que selrsform fosse o nome do recordset que eu atribui para cada formulário, pois posso precisar de ter vários recorsets abertos em simultâneo.
Tem como fazer isto?
Obrigado pela resposta mas não percebi muito bem, mas julgo que se estava a referir em abrir vários recordsets no mesmo set e navegar entre eles, mas quando abria um novo obrigava a ligar ao servidor para abrir novamente os restantes ficando mais lento para o utilizador, pois o número de formulários abertos de acordo com as necessidades do utilizador, tanto pode ter 1 ou 10 abertos.
Ou então você pode puxar todos os dados para um recordset grande e trabalhar com várias tabelas, vai pesar um pouco na inicialização porém de resto ficaria rápido.
Pois, só que assim fica muito lento, e como os formulários têm um botão para actualizar a informação, só para actualizar os dados de um formulário ficaria muito lento, não me parece viável esta opção
Então acho que seria viável você criar um módulo com um recordset global
Sim, também acho ser a melhor opção, o problema é conseguir ter o recordset aberto em varios formularios diferentes e com dados diferentes, pois não posso fechar o recordset porque preciso de filtar o recordset sem ligar ao servidor, será possivel criar um modulo global em que o recordset mude de nome de acordo com o formulário aberto?
Cara, o recordset teria o mesmo nome, então você teria que acessar o recordset pelo mesma função.
O problema é que para isto que você quer fazer você teria que ter uma cópia do banco de dados, com todas as tabelas e todos os registros inseridos para que você possa apenas passar o filtro e buscar dentro deste recordset o registro que você quer.
Se eu entendi bem o que você quer fazer, é arranjar um jeito de trazer os dados de forma rápida sem ficar fazendo conexões com o banco correto?
Viva
O que eu pretendo é depois de abrir um ou vários formulários poder aplicar filtros sem ligar ao servidor, conforme exemplo no site abaixo referido, que só funciona para um formulário e eu pretendo alterar para vários formulários
http://maximoaccess.maisforum.com/t11484-formulario-continuo-desvinculado-com-recordset-ado
Então cara, não é possível fazer isso de forma rápida, você teria que baixar o banco todo
Valeu pelas dicas
Arranjei uma solução intermediária, só quando muda o foco do formulário ativo é que liga ao servidor
Faça um método onde você passe como parâmetro o recordset, depois você passe os dados de um RS para o outro e retorne o outro RS.