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]Setar RecordSet várias vezes antes de fechá-lo

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Setar RecordSet várias vezes antes de fechá-lo Empty Setar RecordSet várias vezes antes de fechá-lo

    Mensagem  Marcelo David 22/9/2013, 21:46

    Boa tarde companheiros!
    Gostaria de esclarecer uma dúvida que tenho a algum tempo:

    Quando preciso me referir a algum recordset em um banco desvinculado, custumo usar o seguinte:

    Set rs = DBEngine.Workspaces(0).OpenDatabase(CaminhoDobanco+Banco, False, False, "MS Access;PWD="1234").OpenRecordset(Tabela1)

    Atualiza, adiciono, excluo...

    'Fecho o banco e saio imediatamente do rs...

    rs.Close
    Set rs = Nothing

    Ok, sem problema algum!

    Minha dúvida está no seguinte:

    Caso em uma função, eu precise fazer alterações em registros de tabelas diferentes, posso fazer como abaixo?

    Set rs = DBEngine.Workspaces(0).OpenDatabase(CaminhoDobanco+Banco, False, False, "MS Access;PWD="1234").OpenRecordset(Tabela1)

    Atualiza, adiciono, excluo...

    Set rs = DBEngine.Workspaces(0).OpenDatabase(CaminhoDobanco+Banco, False, False, "MS Access;PWD="1234").OpenRecordset(Tabela2)

    Atualiza, adiciono, excluo...


    Set rs = DBEngine.Workspaces(0).OpenDatabase(CaminhoDobanco+Banco, False, False, "MS Access;PWD="1234").OpenRecordset(Tabela3)

    Atualiza, adiciono, excluo...


    'Observe que somente após fazer todas as operações nas diferentes tabelas acima é que eu saí do RecordSet e fechei o banco

    rs.Close
    Set rs = Nothing


    Então, amigos. posso fazer assim?
    Minha dúvida é porque eu não costumo abrir o banco separado do recordset e sim já junto (como poderam cer acima). Sendo assim, não preciso sair do banco e depois do rs. Pois dessa forma, saio de uma só vez tanto do banco como do rs.

    Em testes, pensei que o RecordSet uma vez setado para uma tabela/Query e após sem fechá-lo, setar para outra tabela/Query, daria algum erro. Mas não deu, funciona certinho...
    Mas tenho medo dessa maneira causar algum problema futuro com o banco, como o corrompimento...

    Grato pelos esclarecimentos.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Setar RecordSet várias vezes antes de fechá-lo Marcel11
    avatar
    Convidado
    Convidado


    [Resolvido]Setar RecordSet várias vezes antes de fechá-lo Empty Re: [Resolvido]Setar RecordSet várias vezes antes de fechá-lo

    Mensagem  Convidado 22/9/2013, 23:20

    O Recordset é como uma variável..

    A questão de fechar.. e para aliviar a conexão com o banco de dados..
    Creio que enquanto está executando o código não é necessário fechá-lo e reabri-lo..

    Creio eu.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Setar RecordSet várias vezes antes de fechá-lo Empty Re: [Resolvido]Setar RecordSet várias vezes antes de fechá-lo

    Mensagem  criquio 22/9/2013, 23:53

    Enquanto uma ação não depender da outra, não tem problemas em apenas mudar o destino da variável. Agora há momentos em que precisamos usar dois recordsets ou mais ao mesmo tempo. Por exemplo:

    Código:
    Set rs1 = DBEngine.Workspaces(0).OpenDatabase(CaminhoDobanco+Banco, False, False, "MS Access;PWD="1234").OpenRecordset(Tabela1)

    Set rs2 = DBEngine.Workspaces(0).OpenDatabase(CaminhoDobanco+Banco, False, False, "MS Access;PWD="1234").OpenRecordset("SELECT Nome FROM Tabela2 WHERE Código=" & rs1!Código & "")
    Aí será necessário abrir os dois recordsets e depois fechar os dois.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3873
    Registrado : 21/04/2011

    [Resolvido]Setar RecordSet várias vezes antes de fechá-lo Empty Re: [Resolvido]Setar RecordSet várias vezes antes de fechá-lo

    Mensagem  Marcelo David 23/9/2013, 02:25

    Perfeito amigos! criquio e piloto, ótimo pelos esclarecimentos.
    me dou por satisfeito!

    Grato!


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    [Resolvido]Setar RecordSet várias vezes antes de fechá-lo Marcel11
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Setar RecordSet várias vezes antes de fechá-lo Empty Re: [Resolvido]Setar RecordSet várias vezes antes de fechá-lo

    Mensagem  criquio 23/9/2013, 13:00

    Grato pelo retorno. O fórum agradece.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.


    Conteúdo patrocinado


    [Resolvido]Setar RecordSet várias vezes antes de fechá-lo Empty Re: [Resolvido]Setar RecordSet várias vezes antes de fechá-lo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/4/2024, 06:24