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


3 participantes

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  vinicius.anna 1/8/2013, 14:25

    Bom dia

    Em meu sistema tenho uma agenda de atendimentos, tudo estava funcionando perfeitamente, não sei o que houve, já depurei e não consegui "enxergar" o problema. O que ocorre é:

    - Tenho várias abas na agenda, cada aba contém um ou mais subformulários (Conforme disponibilizo na imagem no link abaixo).

    https://2img.net/r/ihimg/photo/my-images/198/0ij5.jpg/

    O agendamento é feito através do sub formulário subfrm_AgendarHorários. Ao tentar incluir um novo registro após terminar o agendamento, clicando no botão salvar, a linha DoCmd.GoToRecord , , acNewRec - depurando, apresenta o valor 5, e o sistema persiste no registro incluso/editado. Uso o código abaixo no botão Salvar:

    Código:

    On Error GoTo TrataErro
        Dim strCamposNulos As String
        Dim intTotalNulos As Integer
    If Not IsNull(Me.Id_Agenda) Then
        intTotalNulos = 0
        
        If IsNull(dtData) Then
            intTotalNulos = intTotalNulos + 1
            strCamposNulos = strCamposNulos & "Data para o Agendamento." & _
                            vbCrLf
        End If
        
        If IsNull(agHora) Then
            intTotalNulos = intTotalNulos + 1
            strCamposNulos = strCamposNulos & "Hora para o Agendamento." & _
                            vbCrLf
        End If
        
        If IsNull(Id_TipoCons) Then
            intTotalNulos = intTotalNulos + 1
            strCamposNulos = strCamposNulos & "Tipo do Agendamento." & _
                            vbCrLf
        End If
        
        If IsNull(Id_Paciente) Then
            intTotalNulos = intTotalNulos + 1
            strCamposNulos = strCamposNulos & "Paciente." & _
                            vbCrLf
        End If
        
        If IsNull(Id_ConvCons) Then
            intTotalNulos = intTotalNulos + 1
            strCamposNulos = strCamposNulos & "Convênio." & _
                            vbCrLf
        End If
        
      
        If intTotalNulos > 0 Then
        
            'Montando o texto da mensagem de aviso
            strCamposNulos = "Existem campos que precisam ser preenchidos:" & _
                            vbCrLf & vbLf & _
                            strCamposNulos
            
            'Exibindo mensagem para o usuário
            MsgBox strCamposNulos, vbCritical, "ATENÇÃO - Campo(s) de Preenchimento Obrigatório(s)!!!"
            DoCmd.CancelEvent
            'Me.Undo
            Me.dtData.SetFocus
        End If
            
        If intTotalNulos = 0 Then
            [Forms]![Frm_Agenda]![subfrm_AgendarHorários]![Id_Medico] = [Forms]![Frm_Agenda]![codmedparam]
            DoCmd.RunCommand acCmdSaveRecord
            MsgBox "Consulta Agendada / Alterada com Sucesso!", vbInformation, "Atenção"
            Me!Frm_Agenda.SetFocus
            Me!subfrm_AgendarHorários.Form!dtData.SetFocus
            DoCmd.GoToRecord , , acNewRec
            'Me!Frm_Agenda.SetFocus

            DoCmd.GoToRecord , , acNewRec
        End If
    Else
        Me.dtData.SetFocus
    End If
    Exit_TrataErro:
        Forms!Frm_Agenda.Requery
        Exit Sub
    TrataErro:
        Resume Next
        Exit Sub

    End Sub


    Uso o Access 2007. Alguém tem alguma dica do que possa fazer para corrigir tal problema?
    Detalhe, este subformulário está vinculado a uma consulta com várias tabelas....


    Att. Vinicius
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  Assis 1/8/2013, 14:59

    vinicius.anna

    Não quer postar no forum sem dados ?


    .................................................................................
    *** Só sei que nada sei ***
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  JPaulo 1/8/2013, 15:20

    Olá;

    Sugestão;

    Altere esta linha de acordo com esta;

    Forms![Frm_Agenda]![subfrm_AgendarHorários].Form![Id_Medico]

    Agora uma pergunta;

    Tem duas vezes a instrução DoCmd.GoToRecord , , acNewRec, uma vez que este trecho está comentado 'Me!Frm_Agenda.SetFocus, qual é a razão ?



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Folder_announce_new Instruções SQL como utilizar...
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  vinicius.anna 1/8/2013, 15:43

    Assis,

    Bom dia

    Estou encaminhando parte da aplicação em anexo a este......

    O agendamento é feito através do subfromulário subfrm_agendarHorários...., após preencher, ao clicar no botão Novo o sistema salva e deveria gerar um novo registro.....

    Obrigado pela atenção.

    Att. Vinicius
    Anexos
    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Attachmenttemp.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (536 Kb) Baixado 39 vez(es)
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  vinicius.anna 1/8/2013, 18:08

    J Paulo

    Boa tarde

    Está comentando e está repetido porque acabei me esquecendo de eliminar isto...., li bastante documentações a respeito mas não consegui resolver. Testei vossa dica mas também não funcionou.

    Obrigado.

    Att. Vinicius
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  Assis 1/8/2013, 18:37

    Teste

    No Formulário ----subfrm_AgendarHorários

    No botão de gravar --Disquete


    Private Sub btNovo_Click()
    On Error GoTo TrataErro
    Dim strCamposNulos As String
    Dim intTotalNulos As Integer
    If Not IsNull(Me.Id_Agenda) Then
    intTotalNulos = 0

    If IsNull(dtData) Then
    intTotalNulos = intTotalNulos + 1
    strCamposNulos = strCamposNulos & "Data para o Agendamento." & _
    vbCrLf
    End If

    If IsNull(agHora) Then
    intTotalNulos = intTotalNulos + 1
    strCamposNulos = strCamposNulos & "Hora para o Agendamento." & _
    vbCrLf
    End If

    If IsNull(Id_TipoCons) Then
    intTotalNulos = intTotalNulos + 1
    strCamposNulos = strCamposNulos & "Tipo do Agendamento." & _
    vbCrLf
    End If

    If IsNull(Id_Paciente) Then
    intTotalNulos = intTotalNulos + 1
    strCamposNulos = strCamposNulos & "Paciente." & _
    vbCrLf
    End If

    If IsNull(Id_ConvCons) Then
    intTotalNulos = intTotalNulos + 1
    strCamposNulos = strCamposNulos & "Convênio." & _
    vbCrLf
    End If


    If intTotalNulos > 0 Then

    'Montando o texto da mensagem de aviso
    strCamposNulos = "Existem campos que precisam ser preenchidos:" & _
    vbCrLf & vbLf & _
    strCamposNulos

    'Exibindo mensagem para o usuário
    MsgBox strCamposNulos, vbCritical, "ATENÇÃO - Campo(s) de Preenchimento Obrigatório(s)!!!"
    DoCmd.CancelEvent
    'Me.Undo
    Me.dtData.SetFocus
    End If

    If intTotalNulos = 0 Then
    [Forms]![Frm_Agenda]![subfrm_AgendarHorários]![Id_Medico] = [Forms]![Frm_Agenda]![codmedparam]
    DoCmd.RunCommand acCmdSaveRecord
    MsgBox "Consulta Agendada / Alterada com Sucesso!", vbInformation, "Atenção"

    DoCmd.GoToRecord , , acNewRec
    Forms!Frm_Agenda.Requery

    Me!subfrm_AgendarHorários.Form!dtData.SetFocus
    Me!Frm_Agenda.SetFocus
    Me!Frm_Agenda.SetFocus

    End If
    Else
    Me.dtData.SetFocus
    End If



    Exit_TrataErro:
    Forms!Frm_Agenda.Requery
    Exit Sub
    TrataErro:
    Resume Next
    Exit Sub

    End Sub


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  vinicius.anna 1/8/2013, 20:14

    Boa tarde Assis,

    Obrigado pela atenção, mas acabou não dando certo.....

    Fiz o ajuste aqui, na primeira inclusão de um novo agendamento, funciona perfeitamente, ao incluir um segundo agendamento acaba não funcionando mais...... não consegui compreender.......

    Não sei se está relacionado a uma função que inclui no subfrm_agendarhorários para identificar a posição absoluta do registro - ExibeRec

    Tem mais alguma dica?

    Muito obrigado pela atenção

    Att. Vinicius
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  Assis 1/8/2013, 20:33

    Aqui gravo as que quizer seguidas


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    vinicius.anna
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 199
    Registrado : 29/04/2011

    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  vinicius.anna 2/8/2013, 14:45

    Bom dia

    Assis,

    Muito obrigado,

    Problema resolvido

    Em virtude de algumas verificações que faço na agenda precisei criar uma função para validar, gravar e adicionar um novo registro, mas apenas consegui isto com sua valiosa dica.

    Muito obrigado.

    Att. Vinicius

    Conteúdo patrocinado


    [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário Empty Re: [Resolvido]DoCmd.GoToRecord , , acNewRec x Subformulário

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 00:43