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


4 participantes

    Subformulário com auto preenchimento e botão cancelar

    avatar
    sinhue
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 03/01/2014

    Subformulário com auto preenchimento e botão cancelar Empty Subformulário com auto preenchimento e botão cancelar

    Mensagem  sinhue 25/7/2018, 16:41

    Estou com dois problemas em um subformulário (Movimentação):

    1 - Ao abrir o formulário principal, exibo os dados do formulário principal e incluo alguns dados no subformulário, como sugestão de preenchimento:



    Me.SubAnalyzes.SetFocus
      DoCmd.GoToRecord , , acLast
     DoCmd.GoToRecord , , acNext
       Me!SubAnalyzes!created = Date
      Me!SubAnalyzes!updated = Date
    Me!SubAnalyzes!analist = Me.txtuser
       maior = DMax("[n_analise]", "analyzes", "[account_id] = " & [account_id] & "")
    maior = maior + 1
       Me!SubAnalyzes!n_analise = maior


    Mas eu não quero que essas informações sejam salvas na tabela "analyzes" automaticamente, apenas quando o usuário clicar no botão "Salvar Alterações".
    No momento, estou apagando essas informações quando o usuário clica no botão "Cancelar", mas não vejo sentido em gravar informações e apagar. Gostaria de deixar a sugestão sem gravar automaticamente. É possível?

    2 - Esse mesmo subformulário, quando acessa um BD em MariaDB, não vai para um novo registro no subForm. Precisaria fazer isso, porque outros aplicativos acessam as informações nesse SGDB. Alguém tem alguma ideia da causa?

    Subformulário com auto preenchimento e botão cancelar Julio
    Anexos
    Subformulário com auto preenchimento e botão cancelar Attachmentjulio.png
    SubFormulário Movimentação
    Você não tem permissão para fazer download dos arquivos anexados.
    (47 Kb) Baixado 15 vez(es)
    avatar
    delsonk
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 203
    Registrado : 26/11/2013

    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  delsonk 25/7/2018, 20:47

    Boa tarde,
    veja se esse post (código msg 7) lhe ajuda.

    https://www.maximoaccess.com/t2351-salvamento-automatico#18700

    Abraço, Delson
    avatar
    sinhue
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 03/01/2014

    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  sinhue 26/7/2018, 15:01

    Delson, antes de mais nada obrigada pela sua atenção.

    O problema é que o comando : DoCmd.RunCommand acCmdUndo realmente cancela o update do formulário principal, mas não do sub-formulário.

    A minha opção, até encontrar uma solução, será não sugerir preenchimento dos campos, deixando o sub-formulário vazio.

    Talvez, esse seja um dos problemas inerentes ao Access que é não separar a camada da aplicação da camada de dados.

    Qual seria a sintaxe do Access para apenas sugerir um valor para o campo e não atribuir esse valor na tabela??!!??
    avatar
    sinhue
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 03/01/2014

    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  sinhue 26/7/2018, 16:07

    Já está parecendo maluquice...

    Para cancelar as alterações no subForm

    Forms!EdtAnalyzes.SubAnalyzes.SetFocus
    'Desfaz as alterações do subform
    DoCmd.RunCommand (acCmdUndo)

    Isso funciona porque pré preenchi o sub-form

    Mas, se clicar em cancelar, sem ter alterado nada no form principal...

    Erro em tempo de execução '2046'
    O comando ou ação 'Desfazer' não está disponível

    DoCmd.RunCommand acCmdUndo

    Existe uma maneira de dizer em VBA para o access: por favor, não faça nada, fique quieto!
    avatar
    delsonk
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 203
    Registrado : 26/11/2013

    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  delsonk 27/7/2018, 23:25

    Boa noite,

    tente acoplar os dois códigos ao comando Cancelar.
    Me.undo 'para concelar no Formulário
    Forms!Nomedoseuformulário.Undo ou Forms!Nomedoseuformulário.Nomedoseusubformulário.Undo 'para concelar no Subformulário

    Boa sorte! Delson
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  Alexandre Fim 28/7/2018, 00:55

    Olá Sinhue,

    Quando se utiliza o Access com campos "acoplados" à tabela, você acaba tendo esse tipo de problema, porque qualquer evento de teclado que vc fizer na tela, o Access já grava na tabela.

    A solução mais viável e segura seria desenvolver seu form com os campos "Não Acoplados" à tabela,e a validação e gravação ficaria em funções, em módulos do sistema.

    Segue um exemplo de tela de cadastro com botoes de comando:

    Subformulário com auto preenchimento e botão cancelar Cadcli10

    Este foi um exemplo que fiz para um usuário do fórum a um tempo atrás.

    Obs: Nesta tela, tem o campo CEP, que faz a busca em um webservice e preenche o endereço automaticamente (necessário estar conectado na internet)

    Espero ter ajudado.

    Boa sorte e sucesso.

    []'s
    Anexos
    Subformulário com auto preenchimento e botão cancelar AttachmentCadCliente.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (72 Kb) Baixado 52 vez(es)
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  Alexandre Fim 28/7/2018, 17:31

    Olá Sinhue,

    Segue outro exemplo de formulários com campos não acoplados, pra te dar uma ideia apenas.

    Recentemente desenvolvi um sistema comercial para uma empresa de chapas de aço e utilizei o Access para desenvolver somente os formulários, e usei o MySQL em um provedor (Hostgator). Dessa forma o cliente também ja tem o backup de dados pelo próprio servidor, pois o mesmo não queria gastar com rede interna e servidor na empresa dele.

    Não uso subformulários conectados diretamente à tabela e utilizo o próprio campo para preenchimento, e para exibição dos dados eu utilizo um listbox (também desacoplado)

    Exemplo de tela de Pedido de Vendas:
    Subformulário com auto preenchimento e botão cancelar Pedido12

    Toda a regra de validação de dados está no código e a regra de negocio está no banco de dados.
    Dessa forma é possivel garantir a integridade dos dados.

    Espero ter ajudado.

    []'s
    avatar
    sinhue
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 17
    Registrado : 03/01/2014

    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  sinhue 1/8/2018, 18:13

    Olá Alexandre, obrigada pela atenção! Nos formulários de inclusão todos campos são "não acoplados" e os de edição do form principal também...mas os do sub-form, disponíveis para edição, não sei bem como fazer essa lista que você mencionou.

    No form principal tenho os dados do processo, e também seu status atual na análise técnica. No sub formulário, toda a movimentação, e o que aconteceu em cada etapa, editado por quem...Quando é aberto esse formulário, os campos de movimentação ficam disponíveis para edição.

    O que eu gostaria é uma espécie de Rollback.

    tauron
    tauron
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1394
    Registrado : 07/12/2011

    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  tauron 2/8/2018, 11:38

    Me perdoem o pitaco. Tente assim

    Crie duas tabelas temporárias e determine como origem de dados dos respectivos formulários (ex: tblVendasTemp e tblDetVendasTemp)

    no botão salvar coloque assim:

     If MsgBox("Confirma inclusão do registro?", vbQuestion + vbYesNo, "Inclusão") = vbNo Then Exit Function
       
       Set db = CurrentDb
       Dim rs As Recordset
       Dim rs2 As Recordset
           
    'Aqui se salva os dados na tabela principal "tblVendas"

       Set rs = db.OpenRecordset("tblVendas")
       
       rs.AddNew
       rs("CampoChave") = Me.CampoChave
       (outros campos)
       rs.Update
       rs.Close
       
    'Aqui vamos salvar os dados do subformulário.

       Dim cod As String
       CampoChave = DLast("CampoChave", "tblVendas")
       
       Set rs = db.OpenRecordset("tblDetVendas")
       Set rs2 = db.OpenRecordset("tblDetVendasTemp")
           
       Do While Not rs2.EOF
           rs.AddNew
               rs("CampoChave") = rs2!CampoChave
               (Outros campos)
           rs.Update

           rs2.MoveNext
       Loop
           
       MsgBox "Registro salvo com sucesso!", vbInformation, "Inclusão"
       limpaTemporario

    Conteúdo patrocinado


    Subformulário com auto preenchimento e botão cancelar Empty Re: Subformulário com auto preenchimento e botão cancelar

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 29/3/2024, 00:34