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

    Novos registros direto nas tabelas, e não através de Forms

    Zilton Alencar
    Zilton Alencar
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 40
    Registrado : 14/06/2014

    Novos registros direto nas tabelas, e não através de Forms Empty Novos registros direto nas tabelas, e não através de Forms

    Mensagem  Zilton Alencar 19/7/2014, 14:27

    Prezados, bom dia.

    Acredito que estou cometendo um erro (ou meio erro), embora a coisa esteja funcionando bem.

    Tenho quatro formulários. Um form de envio de exames (com campos não acoplados) de nome PRÉ_CADASTRO que, após clicar em um botão, abre de forma invisível (acHidden) outros três Form e lança algumas informações em cada um deles.

    FORM1 = Baseado na tabela EXAMES
    FORM2 = Baseado na tabela EXAMES_ASO
    FORM3 = Baseado na tabela EXAMES_Visão
    FORM4 = Baseado na tabela EXAMES_Audio
    (Há quase uma centena de exames possíveis, e são armazenadas na tabela EXAMES somente as informações comuns a todos os exames; se for um exame ASO, complementam-se as informações na tabela EXAMES_ASO; o mesmo se aplica se for um exame Visão e/ou Audio)

    Meu código (mais ou menos assim -- é bem mais complexo, mas a base é esta):


    Private Sub BotãoSalvar_Click()
    ' Abre os forms -- invisíveis
      DoCmd.OpenForm "FORM1", acNormal, "", "", , acHidden
      DoCmd.OpenForm "FORM2", acNormal, "", "", , acHidden
      DoCmd.OpenForm "FORM3", acNormal, "", "", , acHidden
      DoCmd.OpenForm "FORM4", acNormal, "", "", , acHidden

           'Envia os dados do PRÉ_CADASTRO para o Form1
                  Forms!FORM1!Campo1 = Forms!PRÉ_CADASTRO!Campo1
                  Forms!FORM1!Campo2 = Forms!PRÉ_CADASTRO!Campo2
                  Forms!FORM1!Campo3 = Forms!PRÉ_CADASTRO!Campo3
                  Forms!FORM1!Campo4 = Forms!PRÉ_CADASTRO!Campo4
                  Forms!FORM1!Campo5 = Forms!PRÉ_CADASTRO!Campo5

           'Envia os dados do PRÉ_CADASTRO para o Form2
                  Forms!FORM2!Campo1 = Forms!PRÉ_CADASTRO!Campo1
                  Forms!FORM2!Campo2 = Forms!PRÉ_CADASTRO!Campo2

           'Envia os dados do PRÉ_CADASTRO para o Form3
                  Forms!FORM3!Campo1 = Forms!PRÉ_CADASTRO!Campo1
                  Forms!FORM3!Campo2 = Forms!PRÉ_CADASTRO!Campo2

           'Envia os dados do PRÉ_CADASTRO para o Form4
                  Forms!FORM4!Campo1 = Forms!PRÉ_CADASTRO!Campo1
                  Forms!FORM4!Campo2 = Forms!PRÉ_CADASTRO!Campo2

          'Avisa e Fecha os Forms
          MsgBox "Cadastrado!"
          DoCmd.Close acForm, "PRÉ_CADASTRO"
          DoCmd.Close acForm, "FORM1"
          DoCmd.Close acForm, "FORM2"
          DoCmd.Close acForm, "FORM3"
          DoCmd.Close acForm, "FORM4"
    End Sub


    A pergunta é: ao invés de abrir Forms e transferir os dados para eles, como faço para enviar direto para as tabelas?

    Thanks!


    .................................................................................
    Zilton Alencar
    W8.1 / ACCESS 2013


    Ninguém sabe tão pouco que não possa ensinar algo, e ninguém sabe tanto que não possa aprender um pouco mais, inclusive com quem sabe menos!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    Novos registros direto nas tabelas, e não através de Forms Empty Re: Novos registros direto nas tabelas, e não através de Forms

    Mensagem  Alexandre Neves 19/7/2014, 15:32

    Boa tarde,
    Utilize
    Para actualizar:
    currentdb.execute "UPDATE Tabela SET Campo=NovoValor WHERE Condição"
    Para acrescentar:
    currentdb.execute "INSERT INTO Tabela (Campo1,Campo2,Campo3) VALUES ('ValorTexto',ValorNúmero,#ValorData#)"


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

      Data/hora atual: 11/5/2024, 14:05