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

    [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Compartilhe

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  Mylton em Qua 16 Mar 2016, 20:07

    Boa tarde.
    Existindo uma tabela com 12 campos discriminados como campo 1, 2, 3.....12, se colocassemos esses campos em 4 formulários indepedentes, qual seria a rotina no vba necessária, para que no último formulario, os botões de navegação deste formulário, ao serem utilizados, registrem todas as informações desses 4 formularios na respectiva tabela?

    Gabriel Brunichaki
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 139
    Registrado : 11/12/2015

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  Gabriel Brunichaki em Sex 18 Mar 2016, 18:06

    Gostaria de preencher um formulário por vez? Nesse caso, todos teriam que estar aberto para que o botão do último formulário pudesse pegar os valores digitados e inserir na tabela.

    No evento do botão, seria algo mais ou menos assim:

    Currentdb.Execute "INSERT INTO SuaTabela (1,2,3,4,...,12) VALUES (" & Forms("Form1").Controls("nomedocampo").Value & ", ..., " & Me.nomedocampo.Value & ");"

    No lugar de ... tu adiciona todos os campos de todos os forms que tu quer pegar a informação.

    Acho que é isso, não testei...


    .................................................................................
    “Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos.”
    – Albert Einstein

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  Mylton em Sab 19 Mar 2016, 13:36

    Bom dia
    Fiz um pequeno exemplo e tentei.
    Mas não foi.
    [Você precisa estar registrado e conectado para ver este link.]
    Se alguem puder ajudar..
    Obrigado

    studioaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 19/03/2016

    Forma de solução

    Mensagem  studioaccess em Sab 19 Mar 2016, 15:22

    Mylton

    Se você conectar os formulário à tabela, os formulário farão acesso simultâneo ao mesmo registro e, pelo teste que fiz,  só salvaria a informação de um dos formulários.

    Você pode utilizar formulários desconectados da tabela e, salvar os dados de cada campo em variáveis, para depois incluí-los na tabela usando sql
    Exemplo


    Código:


    strCodProcesso =  Form1.CodProcesso.value
    strTipoJustica = Form2.TipoJustica.value
    strComarca = Form3.Comarca.value

    Docmd.runSQL "INSERT INTO CadastroProcessual ( CodProcesso, TipoJustica, Comarca ) " & _
    " SELECT " & strCodProcesso & " AS CodProcesso, " & strTipoJustica  & " AS TipoJustica, " & strComarca  & " AS Comarca;"


    A desvantagem de desvincular a tabela ao recordset do formulário é que, para visualizar os dados, você precisaria preencher o formulário utilizando a DAO ou ADO para consulta dos dados.

    --

    Qual o intuito de ter 4 formulário para cadastrar\editar o mesmo registro ?
    Não existe outra alternativa para resolver este problema sem a necessidade de criar 4 formulários ?

    Qualquer dúvida estou à disposição

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  Mylton em Sab 19 Mar 2016, 17:37

    Boa tarde.
    Seria para tentar usar nessa minha outra dúvida abaixo.
    Se puder ajudar nesta. ..
    [Você precisa estar registrado e conectado para ver este link.]

    Obrigado

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  Mylton em Sab 19 Mar 2016, 22:31

    Coloquei uma rotina para form independente num botão gravar....
    mas não roda.
    Como poderia resolver isso?

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

    studioaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 19/03/2016

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  studioaccess em Sab 19 Mar 2016, 23:34

    Uma alternativa rápida seria utilizar abas ao invés do formulário de navegação, conforme o modelo que postei neste link

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

    Mas vou pesquisar uma forma de fazer com os formulário de navegação

    studioaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 19/03/2016

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  studioaccess em Dom 20 Mar 2016, 12:13

    Acredito ter conseguido resolver o problema

    Link para download do Banco de Dados

    Utilizei o objeto TempVars para armazenar o ID do registro atual durante a navegação entre os formulários

    Código nos formulários 1 e 2 (Que não tem os botões de controle)
    Precisei duplicar o código em dois formulários. Se você conseguir fazer diferente compartilhe comigo ok ?

    Código:

    Private Sub Form_Load()

    lngProcesso = CLng(Nz(TempVars!processoatual))
    If lngProcesso > 0 Then
        strSQL = "SELECT CadastroProcessual.*  FROM CadastroProcessual WHERE (((CadastroProcessual.CodProcesso)=" & _
        lngProcesso & "));"
        Set Me.Recordset = CurrentDb.OpenRecordset(strSQL)
    End If

    End Sub

    Código no formulário 3

    Código:

    Private Sub Form_AfterInsert()
    ArmazenarRegistroAtual
    End Sub

    Private Sub Form_Current()
    ArmazenarRegistroAtual
    End Sub

    Private Sub ArmazenarRegistroAtual()

    intProcesso = Nz(Me.CodProcesso.Value)
    TempVars.Add "processoatual", intProcesso

    End Sub

    Private Sub Form_Load()

    Dim intProcesso As Long

    intProcesso = CLng(Nz(TempVars!processoatual))

    If intProcesso > 0 Then
        Me.Recordset.FindFirst "[CodProcesso]=" & intProcesso
    End If

    End Sub

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  Mylton em Dom 20 Mar 2016, 14:56

    Bom dia
    A opção do from navegação ocorre pela praticidade de se poder colocar varios fomrs isolados dentro de um mesmo assunto.
    Ex:
    assunto 1) cadastro processo
    telas   cadastro, honorários, prazos, etc.
    assunto 2 exame físico
    tela mão esquerda com exame, imagem, manobras etc.....

    Assim poderia separar as telas por assunto e usar as abas verticais que esse form disponibiliza.

    Mas a dificuldade esta em como registrar esses dados.
    sua ideia da aplicação ficou boa.
    Tentei modificar um pouco.
    Coloquei o código processo invisível no form principal e os códigos das aplicações no form principal.
    adicionei os botões e...
    nada.
    kkkkk

    O que vc acha?

    Outra forma e pensar em outra forma de apresentação das telas.  



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

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  Mylton em Seg 21 Mar 2016, 19:57

    Obrigado a todos pela ajuda.
    Mudei os planos sobre os forms.
    Gde abs

    studioaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 19/03/2016

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  studioaccess em Ter 22 Mar 2016, 21:58

    Mylton, desculpe a demora

    Só para registro
    Uma outra alternativa que utiliza menos código seria utilizar subformulários conforme as alterações que realizei neste arquivo

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

    Neste caso, seria necessário ligar a tabela ao formulário "principal" e colocar os controles nele

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Para alternar entre os formulários é necessário alterar o objeto ligado ao subformulário usando o código abaixo

    Código:

    SubFormulario.SourceObject = "NomeFormulario"

    Além disso é necessário criar o vínculo entre o formulário principal e os formulários, que serão exibidos no objeto subformulário, através de um campo em comum. Neste caso usei o campo [CodProcesso]  

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Uma medida que precisei tomar com relação ao subformulário foi garantir que o campo mestre sempre tenha um valor porque quando é inserido um novo registro o campo [CodProcesso] por ser autonumeração sempre começa como nulo até que seja preenchido algum valor em outro campo
    Por isso, utilizei o código abaixo para garantir que o subformulário só esteja ativo caso o campo [CodProcesso] tenha sido preenchido

    Código:

    Private Sub Form_Current()
    DefinirAtivacaoSubForm
    End Sub

    Private Sub DefinirAtivacaoSubForm()

    If IsNull(Me.CodProcesso.Value) Then
        Me.SubFormulario.Enabled = False
    Else
        Me.SubFormulario.Enabled = True
    End If

    End Sub

    Ivan

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    Re: [Resolvido]Qual codigo vba para que os dados de tabela colocados em formulários diferentes funcionem?

    Mensagem  Mylton em Ter 22 Mar 2016, 23:32

    Meu amigo.
    Muito obrigado pela ajuda e consideração.
    Quando chegar em casa, amanhã, estou de plantão, vejo.
    Gde abs

      Data/hora atual: Seg 05 Dez 2016, 16:30