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

    Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario

    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario Empty Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario

    Mensagem  vileman 3/3/2020, 13:25

    Bom dia a todos.

    Gostaria de saber como faço para atualizar o dados em meu subformulário a partir de outro subformulário, e outro formulário principal de outra rotina para outro subformulário.

    Já vi vários tópicos com esse tema e tentei ajustar para o meu, mas após diversas tentativas não consegui.

    Seria em 2 situações:

    1) Form principal : F13_Operacao
       Subformulário 1: F134_OperacaoXApreensoesPF
       Subformulário 2: F13_OperacaoXImprimeFormulariosPF

    Preciso que após inserir um novo registro no Subformulário 1 o Subformulário 2 seja atualizado com os campos 'NomePessoa' e 'CPFPessoa'
    No subform1: Esse novo registro em questão é quando insiro o cadastro de 1 pessoa ou mais pessoas que tem como fonte de registro o cadastro de Pessoas pelo campo 'IDPessoa'
    No subform2: Tem também o campo 'IDPessoa' para haver o relacionamento baseado em uma consulta.

    PS: Ambos subformulários são vinculados ao form principal pela relação Pai/Filho: CodOperacao/IDOperacao

    2) PS: A rotina em questão foi feita pelo nosso colega ALEXANDRE NEVES (FEV/2017)
       Form principal 1: F16_DocAdministrativos
       Form principal 2: F17_NoticiasDeFato
       Subformulário   : F171_NotFato_Tramitacoes (relacionada com Form principal 2)

    A rotina consiste em importar os dados de um registro do Form principal 1 para o Form principal 2 = Até aqui funciona perfeitamente.
    Também ao importar os dados de um form para outro, ao mesmo tempo cria no subformulário do Form principal 2 um registro adicionando dados e abre o form principal 2 e mostra esse novo registro no subformulário = até aqui funciona perfeitamente.

    A questão é: essa rotina estava funcionando perfeitamente durante esses quase 3 anos, ou seja, mostrava o form principal 2 e ao clicar no subformulário visualizava o mesmo completo, no entanto, sem que eu tivesse feito qualquer alteração relevante no código, apenas acrescentei alguns comandos que não alteraram em nada a visualização do registro até então (conforme mostrado abaixo), no entanto, de um mês para cá não mostra mais o subformulário com o novo registro inserido, mostra apenas uma tela toda em cinza e vazia sem os dados ou qualquer coisa, mas se eu fechar tudo, e abrir o form principal 2, mostra o registro que foi adicionado no subformulário normalmente, ou seja, está gravando o registro quando da importação/inclusão, mas não mostra o registro no subformulário quando da importação/inserção de registro novo no subformulário.

    PS: A rotina completa é esta para importar/adicionar e mostrar o registro no subformulário:

    Private Sub IDMembroStatus4_AfterUpdate() 'Status 4 - Rotina: 15/02/2017 + 22/03/2017
    'Rotina com ajuda de ALEXANDRE NEVES (Fórum Máximo Acess) em FEV/2017

           If IsNull(DataStatus4) Or IsEmpty(DataStatus4) Then
              MsgBox "Falta informar a DATA DO STATUS!", , "Sistema: Validação de Campo"
              Me.DataStatus4.SetFocus
              Exit Sub
           End If
           
           If IsNull(IDServidorStatus4) Or IsEmpty(IDServidorStatus4) Then
              MsgBox "Falta informar o(a) SERVIDOR(a) responsável para a Autuação!", , "Sistema: Validação de Campo"
              Me.IDServidorStatus4.SetFocus
              Exit Sub
           End If
           
           Me!Status4Membro = IDMembroStatus4.Column(1)
           
           Dim i As Integer
           Dim sMsg As String
           Beep
           sMsg = "Este Documento Administrativo será autuado como uma nova NOTÍCIA DE FATO!!" & vbCr & " " & vbCr & _
           "ATENÇÃO!! Verifique se existe Anexo(s) para copiar via rotina para a Notícia de Fato gerada." _
           & " " & vbCr & " " & vbCr & "Confirma esta Operação ?"
           
           i = MsgBox(sMsg, vbYesNo, "SISTEMA - Confirmação de Ação")
           If i = vbNo Then
              Me.Status4 = Null
              Me.DataStatus4 = Null
              Me.IDServidorStatus4 = Null
              Me.Status4Servidor = Null
              Me.IDMembroStatus4 = Null
              Me.Status4Membro = Null
              Me.NotFatoStatus4 = Null
              Me.Observacao.SetFocus
              Exit Sub
           ElseIf IsNull(Me.NotFatoStatus4) = True Then
              DoCmd.OpenForm "F17_NoticiasDeFato", acNormal, , , acFormAdd
              DoCmd.GoToRecord , , acNewRec
              Me!Despacho = "Conforme despacho da Coordenadoria, após autuação como Notícia de Fato, encaminhar para análise os documentos sob a responsabilidade do Servidor: " & Status4Servidor
              Me.StatusLocal = "Notícia de Fato Nº " & NotFatoStatus4 & ", sob a responsabilidade do Servidor: " & Status4Servidor
              Me.Despacho.SetFocus
              Forms!F17_NoticiasDeFato!RegAdmOrigem = NumRegAdm
              Forms!F17_NoticiasDeFato!DataRegAdm = DataStatus4
              Forms!F17_NoticiasDeFato!ServidorNotFato = Status4Servidor
              Forms!F17_NoticiasDeFato!DataChegada = DataStatus4
              Forms!F17_NoticiasDeFato!DataEntrada = DataStatus4
              Forms!F17_NoticiasDeFato!IDRecebedor = IDRecebedor
              Forms!F17_NoticiasDeFato!IDRegistrador = IDRegistrador
              Forms!F17_NoticiasDeFato!IDDocumento = IDDocumento
              Forms!F17_NoticiasDeFato!Expediente = Expediente
              Forms!F17_NoticiasDeFato!NomeRemetente = NomeRemetente
              Forms!F17_NoticiasDeFato!CargoRemetente = CargoRemetente
              Forms!F17_NoticiasDeFato!FuncaoRemetente = FuncaoRemetente
              Forms!F17_NoticiasDeFato!OrgaoRemetente = OrgaoRemetente
              Forms!F17_NoticiasDeFato!SetorRemetente = SetorRemetente
              Forms!F17_NoticiasDeFato!Assunto = Assunto
              Forms!F17_NoticiasDeFato!StatusDOC = 11
              Forms!F17_NoticiasDeFato!StatusNome = "Documento Administrativo autuado como NOTÍCIA DE FATO"
              Forms!F17_NoticiasDeFato!StatusLocal = "Apoio Técnico" & " - Servidor: " & Status4Servidor  'Linha inserida em 15/03/2017
              Forms!F17_NoticiasDeFato!StatusRA = 1
              Forms!F17_NoticiasDeFato!TipoDistribuicao = 8
              Forms!F17_NoticiasDeFato!NomeDistribuicao = "Distribuição: Apoio Técnico"
              Forms!F17_NoticiasDeFato!Usuario = Usuario                                                       'Linha inserida em 01/03/2017
              Forms!F17_NoticiasDeFato!Observacao = Observacao                                            'Linha inserida em 14/03/2017
              Forms!F16_DocAdministrativos!NotFatoStatus4 = Forms!F17_NoticiasDeFato!NumNotFato
           Else
              MsgBox "ALERTA!! Já existe uma NOTÍCIA DE FATO associada a este Documento Administrativo, não será possível continuar !!", vbInformation, "Sistema: Alerta"
              Me.Despacho.SetFocus
              Exit Sub
           End If
    'INSERE NOVA MANIFESTAÇÃO - INICIO - 22/03/2017 - FUNCIONOU ?? SIM
      'MsgBox "ATENÇÃO!! Será inserida uma nova MANIFESTAÇÃO correspondente à NOTÍCIA DE FATO selecionada do Documento Administrativo!", vbInformation, "Sistema - Alerta"
       Me.Refresh
       DoCmd.OpenForm "F171_NotFato_Tramitacoes", acNormal, , , acFormAdd
       DoCmd.GoToRecord , , acNewRec                                                                                     '1º Dados Formulário Destino para 2º Dados Formulário Origem
       Forms!F171_NotFato_Tramitacoes!IDCodNotFato = Forms!F17_NoticiasDeFato!CodNotFato   'Manoel: Funcionou => Busca no Formulário "F17_NoticiasDeFato" o campo 'CodNotFato'
       Forms!F171_NotFato_Tramitacoes!IDOrigemUsuario = Forms!F16_DocAdministrativos!IDRecebedor
       Forms!F171_NotFato_Tramitacoes!OrigemRemetente = Forms!F16_DocAdministrativos!Status1Servidor
       Forms!F171_NotFato_Tramitacoes!IDOrigemSetor = 6 'Secretaria
       Forms!F171_NotFato_Tramitacoes!OrigemOrgaoPessoa = "Secretaria"
       Forms!F171_NotFato_Tramitacoes!DataEnvioOrigem = Forms!F16_DocAdministrativos!DataStatus4
       Forms!F171_NotFato_Tramitacoes!IDDestinoSetor = 6 'Secretaria * Comando inserido em 19/05/2019.
       Forms!F171_NotFato_Tramitacoes!DestinoOrgaoPessoa = "Secretaria"
       Forms!F171_NotFato_Tramitacoes!IDDestinoUsuario = Forms!F16_DocAdministrativos!IDServidorStatus4 '32: Plima * Comando inserido em 19/05/2019.
       Forms!F171_NotFato_Tramitacoes!DestinoDestinatario = Forms!F16_DocAdministrativos!Status4Servidor
       Forms!F171_NotFato_Tramitacoes!IDDestinoUsuario = Forms!F16_DocAdministrativos!IDServidorStatus4
       Forms!F171_NotFato_Tramitacoes!IDStatus = 19  'Diretoria: Doc. Administrativo Autuado como Notícia de Fato
       Forms!F171_NotFato_Tramitacoes!DespachoProvidencia = "Documento Administrativo autuado como Notícia de Fato, sob a responsabilidade do Servidor indicado, para que sejam tomadas as devidas providências."
       Forms!F171_NotFato_Tramitacoes!IDRecebedor = Forms!F16_DocAdministrativos!IDServidorStatus4
       Forms!F171_NotFato_Tramitacoes!NomeRecebedor = Forms!F16_DocAdministrativos!Status4Servidor
       Forms!F171_NotFato_Tramitacoes!DataRecebimento = Forms!F16_DocAdministrativos!DataStatus4
       Forms!F171_NotFato_Tramitacoes!LocalDocumento = "Secretaria"
       Forms!F171_NotFato_Tramitacoes!CaixaPastaDoc = "Servidor: " & Forms!F16_DocAdministrativos!Status4Servidor
       Forms!F171_NotFato_Tramitacoes!Usuario = Forms!F16_DocAdministrativos!IDRegistrador.Column(2)                    '14/02/2020: testando ... ok
       Forms!F171_NotFato_Tramitacoes!UsuarioRegistro = Forms!F16_DocAdministrativos!IDServidorStatus4.Column(2) '14/02/2020: testando ... ok
       Forms!F171_NotFato_Tramitacoes!BaixaTramitacao = 2 'BAIXA = NÃO * Comando inserido em 19/05/2019: por não ter dado Baixa quando de nova Tramitação em alguns Registros
       '                                                               * Comando inserido em 14/02/2020: Para não dar Baixa automaticamente
      DoCmd.Close acForm, Me.Name, acSaveYes 'FECHA E SALVA O FORMULÁRIO ATIVO '* Comando inserido em 02/02/2020. Retirei esse comando, mesmo assim continua a mesma coisa.
      DoCmd.OpenForm "F17_NoticiasDeFato", acNormal   'ABRE O FORMULÁRIO INDICADO
    End Sub
    Maicon
    Maicon
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 267
    Registrado : 08/09/2012

    Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario Empty Re: Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario

    Mensagem  Maicon 7/4/2021, 18:10

    Boa tarde

    Verificar como está na guia de propriedades dos dados :
    Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario Propri10

    Após testar isso coloque código após atualizar do seu formulário principal :

    Veja este tópico : "https://www.maximoaccess.com/t2228-resolvido-modulo-atualizar-tudo-igual-ao-botao-f5"

    Ou pesquise sobre como atualizar seus subformulários , uma coisa que facilita muito é você usar uma consulta contendo todas a colunas possíveis e se caso os subformulários conter os mesmo campos criar uma subconsulta baseada na consulta principal na qual é vinculado ao formulário principal então só por uma macro ou código no evento ao atualizar do formulário principal para repetir a consulta redesenhando assim todos objetos do formulário.

    Código:
    Me.Requery
    'Para repetir consulta
    Código:
    Me.SeuSubformulário.Requery


    .................................................................................
    "O talento vence jogos, mas só o trabalho em equipe ganha campeonatos."
    Michael Jordan

    Bons Estudos.
    avatar
    vileman
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 580
    Registrado : 25/05/2011

    Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario Empty Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario

    Mensagem  vileman 14/4/2021, 03:29

    Boa noite, Maicon, vou verificar, valeu!

    Conteúdo patrocinado


    Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario Empty Re: Atualizar Subformulario X Subformulario e 2 Form principal X Subformulario

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 06:18