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


5 participantes

    Form folha de dados + Desacoplado + ADOBD.Recordset

    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

    Form folha de dados + Desacoplado + ADOBD.Recordset Empty Form folha de dados + Desacoplado + ADOBD.Recordset

    Mensagem  CrisMaleta 25/11/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 25/11/2013, 19:22

    Olá!

    veja se este tópico atende:

    http://maximoaccess.forumeiros.com/t12028-resolvidoadodb-com-recordset-disconectdado-no-access?highlight=set+me+recordset

    Aguardamos


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CrisMaleta 25/11/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 25/11/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


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CrisMaleta 25/11/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 25/11/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


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CrisMaleta 26/11/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!!!!
    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CrisMaleta 27/11/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 28/11/2013, 09:08

    Hoje a tarde irei te oferecer um exemplo.



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CrisMaleta 2/12/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 2/12/2013, 13:24

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



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CrisMaleta 2/12/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 2/12/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
    Form folha de dados + Desacoplado + ADOBD.Recordset AttachmentRecordsetDesv.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (66 Kb) Baixado 74 vez(es)


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CrisMaleta 2/12/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 2/12/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


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    CrisMaleta
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  CrisMaleta 2/12/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
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 2/12/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
    Form folha de dados + Desacoplado + ADOBD.Recordset AttachmentRecordsetDesc_rev2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (32 Kb) Baixado 70 vez(es)


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Avelino Sampaio 3/12/2013, 09:41

    Então, conseguiu ?


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    José Machado
    José Machado
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/09/2016

    Form folha de dados + Desacoplado + ADOBD.Recordset Empty Parabéns.... Salvo Minha Vida

    Mensagem  José Machado 8/11/2017, 18:00

    Boa tarde

    Sou novo aqui no Forum...

    Adaptei o exemplo as minha necessidades, e funcionou 100%.

    Att
    José
    avatar
    Lauro Ribeiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 15/02/2023

    Form folha de dados + Desacoplado + ADOBD.Recordset Empty Erro 2450 no Forms("NomeDoFormulário").recordset

    Mensagem  Lauro Ribeiro 4/4/2023, 00:17

    Estou com a mesma situação de não reconhecimento de formulário.
    Quando escrevo:

    Dim rst As Recordset
    Set rst = [Form_Detalhes do Pedido subform].Form.Recordset
    rst.FindFirst  "[NúmeroDoPedido] = " & 10250

    ou
    Set rst = [Form_Detalhes do Pedido subform].Recordset
    rst.FindFirst  "[NúmeroDoPedido] = " & 10250

    Ele reconhece o formulário e roda beleza. Mas se eu tentar colocar uma variável no nome do formulário e com o Forms, não aceita, e dá erro 2450.

    Set rst = Forms("VariavelComNomeDoFormulario").Form.Recordset
       rst.FindFirst "[NúmeroDoPedido] = " & 10250

    Tentei também:

    Set rst = Forms("Frm_VariavelComNomeDoFormulario").Form.Recordset
    Set rst = Forms("VariavelComNomeDoFormulario").Recordset
    Set rst = Forms("Frm_VariavelComNomeDoFormulario").Recordset

    O formulário de nome Pedidos pode ter escrito como Form_Pedidos ou Pedidos, por exemplo, que dá erro do mesmo jeito.

    Eu preciso rodar um recordset nos registros de um formulário informando o nome do formulário por uma variável, e até agora não achei um jeito de fazer isso.

    Eu achei a resposta, o Forms("StringQualquer") obriga que o formulário esteja aberto mesmo no modo acHidden (oculto).
    Então use antes o DoCmd.OpenForm "StringNomeDoFormulario", acNormal, , , , acHidden
    e Depois feche:
    DoCmd.Close acForm, rst.Name (ou a "StringNomedoFormulario")
    Set rst = Nothing


    Última edição por Lauro Ribeiro em 5/4/2023, 23:38, editado 1 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3217
    Registrado : 13/12/2016

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

    Mensagem  Alexandre Fim 4/4/2023, 00:47

    Lauro,

    Vc precisa criar uma variavel do tipo "Form" e instanciá-la ao formulário desejado. Tente isso:

    Código:


    Dim nForm As Form
    Set nForm = [Form_Detalhes do Pedido subform]
    Set rst = nForm.Recordset



    Att,

    Alexandre Fim




    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    Form folha de dados + Desacoplado + ADOBD.Recordset Setinf11
    Sistemas e Tecnologia Ltda
    avatar
    Lauro Ribeiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 15/02/2023

    Form folha de dados + Desacoplado + ADOBD.Recordset Empty Uso do Recordset de dados do SubFormulário.

    Mensagem  Lauro Ribeiro 4/4/2023, 20:56

    Parabéns Alexandre, muito obrigado por sua ajuda.

    Mais uma dúvida.
    O vba Access somente reconhece o formulário se ele aparecer na classe de objetos? Pois sempre tenho que atribuir algum evento pro formulário ou subformulário para enfim ele ser reconhecido no código vba. Assim ele aparece como Form_NomeDoFormulário na janela de projetos do vba.

    Fazendo uma chamada referindo ao subformulário sem atribuir qualquer evento nele, como faço para ele ser reconhecido no código vba sem força um qualquer evento vazio nele?

    Pois sempre faço assim. Crio vários subformulário, e no final, o formulário, que será o principal, receberá estes subformulário. No formulário principal, eu crio os eventos que agirão sobre os subformulário. Mas no código vba, o subformulário somente é reconhecimento se eu atribuir qualquer evento nele, mesmo que já inserido no formulário principal. No caso deste erro, aparece a mensagens: Erro de compilação, nome externo não definido.



    avatar
    Lauro Ribeiro
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 15/02/2023

    Form folha de dados + Desacoplado + ADOBD.Recordset Empty Uso do Recordset de dados do SubFormulário.

    Mensagem  Lauro Ribeiro 4/4/2023, 21:15

    No caso deu atribuir uma variável ao Me ou Forms. Em que esta variável é o nome de um subformulário.
    Eu havia postado como dúvida e agora posto as resposta que eu encontrei.

    Tentei:
    Dim nForm as Form
    Set nForm = [Form_Detalhes do Pedido subform]

    A propriedade Forms somente funcionar para o formulário aberto. Por isso usa-se o DoCmd.OpenForm "NomeDoFormulario", acNormal, , , , acHidden antes de charmar o Forms("StringNomeDoFormulario")
    No lugar da string, pode-se usar uma variável de string também.

    Forms("StringNomeDoFormulario").SetFocus

    Não tem como executar o Me em módulo classe, pois ele é específico para executar dentro o objeto vba.
    Me(nForm).SetFocus



    Nas situações com destaque de vermelho acima estava apresentando erro 13 de tipo incompativel.

    Mas fazendo o caso abaixo, não deu erro. E não foi preciso usar o DoCmd.OpenForm
    Me.Detalhes_do_Pedido_subform.SetFocus  (tirei o Form_)


    A outra dúvida seria como converter uma variável string numa variável de formulário, pois na chamada de função, se os tipos forem diferentes, dará erro de tipo.
    Essa dúvida da conversão permanece.

    Set nForm = ComoColocarAquiUmaVariávelDeString

    Poderia auxiliar nessa também?

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 12:14