MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    Form folha de dados + Desacoplado + ADOBD.Recordset

    Compartilhe

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Seg 25 Nov 2013, 18:37

    Fala galera!!!!

    Acho que estou cabaçando na hora de fazer a pesquisa!!!!!

    Mas não estou encontrando nada a respeito de formulário tipo folha de dados desacoplado!!!!

    Se alquém puder ajudar.....
    Meu problema...

    Tenho um formulário (Cadastro de funcionário).
    Este formulário principal, ñ tem campo, serve apenas p/ abrir um conjunto de guias...
    Uma destas guias, tem um subformulário que relaciona todos os documentos legais do funcionário, RG, CPF, CNH.....

    Meu problema está neste ponto...
    Estou carregando um recordset (ADOBD) e tentando popular os registros do subformulário folha de dados, porém, apenas o último registro é exibido....

    Consegui me explicar?????
    preciso que apareça 4 registros e aparece apenas o último......

    PS: Quero trabalhar com tabela temporária apenas se não existir uma forma de fazer desacoplado!!!!

    Desde já agradeço....

    Abraço a todos!!!!

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Seg 25 Nov 2013, 19:22

    Olá!

    veja se este tópico atende:

    [Você precisa estar registrado e conectado para ver este link.]

    Aguardamos


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Seg 25 Nov 2013, 19:39

    Fala Avelino!!!!!

    Se ñ pulei nenhuma parte, este tópico se refere a formulários "normais".... formulário simples....
    Eu até estou me virando bem, com este tipo de formulário....

    Meu problema mesmo, é em relação ao formulário folha de dados....
    Num primeiro momento, tentei carregar o recordset ADODB no recordset do formulário ~~> SET Forms("Form1").form("Form2").Form.recordset = rsCarregaRegistro
    Mas não rolou, porque não consigo editar o registro....

    No segundo momento, tentei carregar os dados, campo a campo ~~> Form2!Campo1 = rsCarregaRegistro!Campo1.........
    Mas também não rolou, porque só aparece o último registro do recordset.....
    Tenho a impressão que no procedimento, o formulário não "pula a linha" e apresenta sempre no mesmo campo....

    Preciso que apareçam todos os registros, um embaixo do outro......

    Desculpe se a explicação está muito enrolada.....

    Mas vamos tentando nos entender.....

    hahahahahahahahahahahahahah

    Desde já agradeço....

    Abraço a todos!!!!!

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Seg 25 Nov 2013, 20:18

    "Meu problema mesmo, é em relação ao formulário folha de dados....
    Num primeiro momento, tentei carregar o recordset ADODB no recordset do formulário ~~> SET Forms("Form1").form("Form2").Form.recordset = rsCarregaRegistro
    Mas não rolou, porque não consigo editar o registro...."


    Mostre o código utilizado.
    E se passar para formulário simples, vc consegue editar?  Acho que o problema pode ser outro.

    "No segundo momento, tentei carregar os dados, campo a campo ~~> Form2!Campo1 = rsCarregaRegistro!Campo1.........
    Mas também não rolou, porque só aparece o último registro do recordset.....
    Tenho a impressão que no procedimento, o formulário não "pula a linha" e apresenta sempre no mesmo campo...."


    Esquece, não é possível montar desta forma.  Uma alternativa, neste caso de código, seria popular uma listbox

    Aguardamos


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Seg 25 Nov 2013, 20:30

    Fala Avelino!!!!

    Acredito que você matou minha dúvida....
    Da forma que pensei, não tem como fazer um formulário folha de dados desacoplado..... No No No No 

    Em relação a primeira opção....
    Fiz uma consulta simples, trazendo os campos.....
    Coloquei os campos do formulário (control source) com o mesmo nome dos campos da consulta...
    Carreguei o recordset e fiz o set no formulário.... Form.recordset = recordset......

    Quando tento editar um campo qualquer, tenho q resposta ~~> "This Recordset is not updateble"


    Seria AINDA alguma besteira na forma como tratar os dados?????

    Desde já agradeço....

    abraço a todos!!!!

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Seg 25 Nov 2013, 21:09

    Cadê o código utilizado? Precisamos saber os argumentos utilizados do ADO. Exemplo:

    .LockType = adLockOptimistic
    .CursorType = adOpenKeyset
    .CursorLocation = adUseClient

    Dependendo do tipo de consulta, pode de fato não ser possível atualizações.

    Aguardamos


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Ter 26 Nov 2013, 09:48

    Fala Avelino!!!!^

    Você tem toda razão.... existem alguns argumentos que acabei deixando passar.....
    O único atributo que estou referenciando no recordset é o ".CursorLocation = adUseClient"...

    código que uso p/ carregar todos os recordsets da aplicação......

    'Cria uma instancia para conectar ao banco de dados.
    Set ConexaoBanco = New ConexaoDeDados

    'Cria a conexão com o banco.
    ConexaoBanco.ConectaDB

    'String do recordset
    stCarrega = ""
    stCarrega = "SELECT * FROM tbFornec;"

    'Cria uma instancia do recordset
    Set rsCarrega = New ADODB.Recordset

    'Localização do cursor do recordset
    rsCarrega.CursorLocation = adUseClient

    'Abre o recordset com a consulta selecionada.
    rsCarrega.Open stCarrega, ConexaoBanco.ConnDB

    'Desconecta o recordset ainda com informações.
    rsCarrega.ActiveConnection = Nothing

    'Fecha a conexção com o banco de dados.
    ConexaoBanco.DesconectaDB


    Desde já agradeço....

    Abraço a todos!!!!

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Qua 27 Nov 2013, 20:48

    Fala galera!!!!

    Depois da dica do Avelino, procurei mais detalhes e eu estava esquecendo de colocar o tipo de bloqueio!!!!
    Agora o código que funciona está assim.....

    'Cria uma instancia para conectar ao banco de dados.
    Set ConexaoBanco = New ConexaoDeDados

    'Cria a conexão com o banco.
    ConexaoBanco.ConectaDB

    'String do recordset
    stCarrega = ""
    stCarrega = "SELECT * FROM tbFornec;"

    'Cria uma instancia do recordset
    Set rsCarrega = New ADODB.Recordset

    'Localização do cursor do recordset
    rsCarrega.CursorLocation = adUseClient

    'Define o tipo de cursor.
    rsCarrega.CursorType = abOpenDynamic


    'Define o tipo de bloqueio.
    rsCarrega.LockyType = adLockBatchOptimistic


    'Abre o recordset com a consulta selecionada.
    rsCarrega.Open stCarrega, ConexaoBanco.ConnDB

    'Desconecta o recordset ainda com informações.
    rsCarrega.ActiveConnection = Nothing

    'Fecha a conexção com o banco de dados.
    ConexaoBanco.DesconectaDB



    Fiquei feliz porque metade dos meus planos funcionaram!!!!
    hahahahahahahahahahahahah

    Meu problema agora, é fazer o inverso...
    Como eu carreguei o recordset ADODB ao recordset do formulário, após fazer alterações ou inclusões, preciso carregar o recordset do formulário p/ algum tipo de recordset ou consulta p/ fazer o insert no banco.....

    Alguém conseguiu entender o problema????

    Estou tentando das seguintes formas.....

    dim rsInclui as DAO.Recordset
    SET rsInclui = Forms("Form1").form("Sub_Form1").Form.Recordset
    Erro ~~> Type Mismatch

    dim rsInclui as DAO.Recordset
    SET rsInclui = Forms("Form1").form("Sub_Form1").Form.RecordsetClone
    Erro ~~> Data provider could not be initialized

    dim rsInclui as DAO.Recordset
    SET rsInclui = Forms("Form1").form("Sub_Form1").Form.Recordset.Clone()
    Erro ~~> Operation is not allowed when the object is closed


    Já estou ficando sem recursos!!!!
    Algum mestre de plantão?????
    hahahahahahhahahahahahahahaha

    Desde já agradeço...

    Abraço a todos!!!!!

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Qui 28 Nov 2013, 09:08

    Hoje a tarde irei te oferecer um exemplo.



    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Seg 02 Dez 2013, 13:01

    Fala galera!!!!

    Neste fim de semana, queimei meus neurônios tentando fazer a conversão, mas em êxito....
    Neutral Neutral Neutral Neutral Neutral Neutral Neutral Neutral Neutral Neutral Neutral Neutral Neutral Neutral 

    A única coisa que consegui, foi carregar um object com o recordset do formulário....
    Mas minha ignorância não permitiu que eu caminhasse.....

    Mesmo tendo um onject, não consegui fazer com que o registro fosse alterado....

    Bom... ainda estou na pesquisa!!!!

    Desde já agradeço

    Abraço a todos!!!!

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Seg 02 Dez 2013, 13:24

    Humm, esqueci de vc (risos). Vou agora alterar um modelinho aqui, para vê se consigo atender o que deseja.



    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Seg 02 Dez 2013, 13:30

    Opaaaa!!!

    Que isso Avelino!!!! Não esquenta a cabeça!!!!

    Só atualizei o tópico p/ ir mostrando a evolução do problema!!!
    hahahahahhahahahaha

    Desde já agradeço...

    Abraço a todos!!!!

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Seg 02 Dez 2013, 14:11

    Segue o modelo.  Não tenho aqui o SQL para testar e então usei o próprio Access.

    Abra o formulário frmFrutas
    Altere os campos FRUTA e QUANTIDADE e veja o resultado
    Para testar a exclusuão de uma linha, marque uma linha e use o DELETE.

    Observações:

    Utilizei a função fncAtualizar() no evento "após atualiza" de cada campo.
    E para ser possível excluir a linha, foi preciso reativar a conexão no evento "ao excluir" do formulário

    Private Sub Form_Delete(Cancel As Integer)
    Set rs.ActiveConnection = cnn
    End Sub

    No aguardo
    Anexos
    RecordsetDesv.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (66 Kb) Baixado 29 vez(es)


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Seg 02 Dez 2013, 16:18

    Fala Avelino!!!!

    O que estou tentando fazer, é exatamente isso que você postou....
    Só tem uma diferença, que eu acho que é o problema.....

    No exemplo que você enviou, você trabalha com o botão de atualizar, diretamente no formulário!!!!

    No meu caso, tenho um subformulário.....    o botão de salvar, fica no form1 e os dados, todos no form2 (Sub)...

    Quando aplico o código como vc fez, aparece o erro, que a referencia é inválida para a propriedade do recordsetclone!!!!!

    Com base no seu código....

    Private Sub botao1_Click()
    On Error GoTo trataerro
    Dim rsc
    Set rsc = Forms("Form1").Form("Form2").Form.RecordsetClone

    Do While Not rsc.EOF
    docmd.runsql "UPDATE tabela1 SET campo1 = " & rsc.fields(0) & ", campo2 = '" & rsc.fields(1) & "';"
    rsc.MoveNext
    Loop

    rsc.Close
    Set rsc = Nothing

    trataerro:
    End Sub


    será que eu não consigo pegar o recordset do subformulário?????

    Desde já agradeço...

    abraço a todos..................

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Seg 02 Dez 2013, 16:58

    O botão SALVAR deste formulário é para o exemplo do formulário SIMPLES. Trabalhando com o formulário na configuração "FOLHA DE DADOS" este botão não atua e nem se quer aparece.

    Se carregar o seu subform conforme este meu exemplo não precisará utilizar botão algum, bastando colocar a função fncAtualizar() no evento dos campos, que as atualizações serão automáticas.

    No aguardo


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    CrisMaleta
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 20/08/2013

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta em Seg 02 Dez 2013, 17:06

    Fala Avelino....

    Exatamente...
    Percebi que vc colocou como folha de dados!!!! quanto a isso... perfeito!!!

    O problema é quando trago seu exemplo p/ minha aplicação!!!! Shocked Shocked Shocked Shocked Shocked 

    Alguma burrada estou fazendo.... ou estou tentando algo que não é possível....
    Na minha aplicação, o botão pode ficar tanto no formulário "Pai" quanto no ribbon....
    Nos 2 casos, sempre ocorre um erro....

    Minha opinião, é que não consigo acesso ao recordset do subformulário...
    Não consigo descobrir se é possível este tipo de acesso aos dados!!!!

    Desde já agradeço...

    Abraço a todos!!!

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Seg 02 Dez 2013, 18:20

    Cris, não vai funcionar usando botão externo para atualizar.

    baixe o arquivo com uma modificação.

    Abra o frm1
    Clique na página 2
    Veja o formulário do subForm.  Atualize os campos. Não precisou de botão algum e esta funcionando como sub

    Sucesso!
    Anexos
    RecordsetDesc_rev2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (32 Kb) Baixado 24 vez(es)


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

    Avelino Sampaio
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3350
    Registrado : 04/04/2010

    Re: Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  Avelino Sampaio em Ter 03 Dez 2013, 09:41

    Então, conseguiu ?


    .................................................................................
    ============ Quer aprender Access em alta velocidade ? ============

    || [Você precisa estar registrado e conectado para ver esta imagem.] Acesse o site UsandoAccess.com.br e veja um ótimo kit de ensino que tenho para você.

    ===========================================================

      Data/hora atual: Sex 09 Dez 2016, 07:41