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]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
    avatar
    Dilson
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    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: Sab 21 Out 2017, 04:20