MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

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
    avatar
    Mylton
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 502
    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?
    avatar
    Gabriel Brunichaki
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    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
    avatar
    Mylton
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 502
    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
    avatar
    studioaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    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
    avatar
    Mylton
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 502
    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
    avatar
    Mylton
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 502
    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.]
    avatar
    studioaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    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
    avatar
    studioaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    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

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

    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
    avatar
    Mylton
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 502
    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.]
    avatar
    Mylton
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 502
    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
    avatar
    studioaccess
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 9
    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
    avatar
    Mylton
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 502
    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: Qua 18 Out 2017, 04:59