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]Inserir registro à partir de formulário contínuo...

    Compartilhe

    jpaulorh
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 04/02/2010

    [Resolvido]Inserir registro à partir de formulário contínuo...

    Mensagem  jpaulorh em Sab 04 Out 2014, 22:55

    Question Caros amigos do fórum, boa noite!
    Tenho uma agenda onde ficam pré-agendados os pacientes, e à medida que os mesmos vão chegando a recepcionista confirma no flag "chegada", conforme grifado na imagem. Acontece que nesse momento deverá ser adicionado em uma nova tabela dados que darão origem a ficha de avaliação do paciente e será visualizada pelo profissional na sala de atendimento da fisioterapia.
    Uma observação, se por acaso a recepcionista marcar errado e desmarcar, esses dados também deverão ser deletados.
    Fiz e funciona direitinho com um porém, como se trata de um formulário contínuo percebi que não está sendo considerado o registro do ponteiro ou melhor o selecionado, ele está inserindo sempre a Id do primeiro cliente.
    No exemplo da imagem, ao marcar o flag do cliente ABSALAO, inseriu os dados do primeiro cliente ABELARDO.

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

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

    Código:
    Private Sub Ag_Chegada_Click()

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

    Dim SQL As String
    Dim db As Database, rs As Recordset
    Dim Data As Date
    Dim Agenda As Integer
    Dim Paciente As Integer
    Dim Secao As Integer

    Data = Me.Ag_Data
    Agenda = Me.IdAgenda
    Paciente = Me.Ag_Paciente
    Secao = Me.Secao

    If IsNull(Me.Ag_HoraChegada) Then
    '-------------------------------------------------------------------------
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("TblAvaliacao") 'Abre tabela parcelas
    '-------------------------------------------------------------------------
    Me.Ag_HoraChegada = Format(Time(), "hh:mm")
    Me.Status = "Aguardando"
    DoCmd.Requery
    Forms!frmAgenda!frmAgendaResumo.Requery

    If Secao = 1 Then

        rs.AddNew
        
        rs("IdCliente") = Me.Ag_Paciente
        rs("AvData") = Me.Ag_Data
        rs("AvIdAgenda") = Me.Ag_CodAgenda
        rs("AvSessoes") = Me.Secao
        rs("AVSexo") = Me.Sexo
        rs("AvConvenio") = Me.Ag_Convenio
        rs("AvCODTRAT") = Me.Ag_Servico
        
        rs.Update
        
        rs.Close
        db.Close
        
    End If

    Else

    'Deleta o registro na tabela avaliação
    CurrentDb.Execute "DELETE * FROM TblAvaliacao WHERE IdCliente = " & Paciente & " And AvIdAgenda = " & Agenda & "" ' And AvData = " & Data & ""
          
            MsgBox "Operação cancelada com sucesso!", vbInformation, "Agendamento"
    Me.Ag_HoraChegada = Null

    End If
    End Sub

    Dilson
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1602
    Registrado : 11/11/2009

    Re: [Resolvido]Inserir registro à partir de formulário contínuo...

    Mensagem  Dilson em Sex 10 Out 2014, 16:09

    Olá,

    Isso ocorre porque não filtrou os dados atuais para depois transferir à outra tabela.

    A solução é instanciar outro recordset com os dados do form continuo referenciando a chave primária e logo em seguida alimentar a tabela avaliação, mais ou menos assim:

    Set rs1 = db.OpenRecordset("SELECT * FROM TabelaDoFormContinuo WHERE ID=" & TextBoxID)
    Set rs = db.OpenRecordset("TblAvaliacao") 'Abre tabela parcelas
    '-------------------------------------------------------------------------
    Me.Ag_HoraChegada = Format(Time(), "hh:mm")
    Me.Status = "Aguardando"
    DoCmd.Requery
    Forms!frmAgenda!frmAgendaResumo.Requery

    If Secao = 1 Then

       rs.AddNew
       
       rs("IdCliente") = rs1("ID")
       rs("AvData") = rs1("CampoData")
       rs("AvIdAgenda") = rs1("CampoIdAgenda")

    e assim sucessivamente.


    .................................................................................
    Atenção:
    => Antes de implementar qualquer dica, faça um backup do seu projeto;
    => Retorne para marcar o Resolvido ou continuar a discussão;
    => Sempre realize pesquisas antes de postar uma pergunta;

    jpaulorh
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 04/02/2010

    Re: [Resolvido]Inserir registro à partir de formulário contínuo...

    Mensagem  jpaulorh em Sex 07 Nov 2014, 20:11

    Desculpa amigo depois de tanto tento está dando a resposta. É que estive com projeto parado por razões de trabalho.
    Mas foi resolvido!

    Obrigado!

      Data/hora atual: Qua 07 Dez 2016, 20:12