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

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    avatar
    VanessaPina
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 55
    Registrado : 13/01/2017

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  VanessaPina 30/1/2017, 11:58

    Bom dia,
    Eu não tenho muita experiência com a Access e Programação em VBA e não estou a conseguir fazer com que uma determinada data e hora de um formulário de Agendamento fique logo gravado na ficha do cliente quando eu salvo o agendamento.
    Ou seja,
    Tenho um Formulário "frmCalendarAppt" onde tenho uma caixa com o nome "txtStartDate" (da Data), outra caixa com o nome "cboStartTime" (hora do agendamento) e outra com o nome do Cliente "txtSubject"

    E quando salvo o Agendamento no botão "cmdSave" quero que ele me copie a data e hora do agendamento para o Formulário "Frm_Doentes" do cliente específico:

    - o que está na caixa "txtSubject" tem de ser igual à caixa "txtNH" no Frm_Doentes
    - E a data tem de copiar para a txtData e a hora para a txtHora

    Não sei se me consegui explicar.

    Agradeço desde já a vossa ajuda
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  Alvaro Teixeira 30/1/2017, 12:06

    Olá Vanessa, Bem-Vinda ao fórum.

    a) Se ambos os forms estão abertos pode atribuir o valor ao outro campo.
    Veja no link abaixo, como manual de referencias:
    https://www.maximoaccess.com/t9846-desafio-referenciar-objetos-forms

    b) Se está fechado, pode fazer uma consulta atualizar (filtrando pelo registo respetivo)

    Abraço
    avatar
    VanessaPina
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 55
    Registrado : 13/01/2017

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  VanessaPina 30/1/2017, 12:16

    Não me consegue passar um código para eu testar? Neutral
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  Alvaro Teixeira 30/1/2017, 12:44

    Olá Vanessa, existe vária formas de obter o mesmo resultado.

    Vamos fazer assim, será mais fácil.
    Adicione à mensagem (postar) uma base de dados com os objectos envolvidos (neste caso os dois forms).
    Verifique se está funcional.
    Descreva qual o botão que pretende ao clicar passe o valor.
    Assim fica mais fácil para qualquer membro compreender melhor e poder ajudar.

    Ficamos aguardar.
    Abraço
    avatar
    VanessaPina
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 55
    Registrado : 13/01/2017

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  VanessaPina 30/1/2017, 13:17

    Estão aqui os dois formulários. Espero que ajude...
    O botão é o Salvar Agendamento "cmdSave"
    Obrigada,
    Anexos
    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Attachmentagendamento.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (59 Kb) Baixado 11 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  Alvaro Teixeira 30/1/2017, 14:41

    Olá Vanessa,
    Está a dar uns erros por falta de modulos, ou seja não está funcional.
    No entanto deu para compreender.
    Na minha opinião, o melhor será utilizar o metodo já usado consulta UPDATE.

    Fiz a consulta um pouco às escuras para quando atualiza, veja se é isso:
    Código:
    Private Sub cmdSave_Click()

    'Save new or amended appointment data to tblAppointments table

    Dim vAppointmentID As Long
    Dim vNewStart As Date, vNewEnd As Date
    Dim vApptInfo As String

        On Error GoTo ErrorCode

    'Check if Subject field empty and error if it is
        If Nz(Me.txtSubject) = "" Then                                                      'if no Subject text then
            Beep
            MsgBox "ATENÇÃO!, tem de preencher o campo NH do Doente antes de gravar o agendamento.", vbCritical + vbOKOnly, "Campo NH do Doente Inválido"
            Me.txtSubject.SetFocus                                                          'move focus to Subject field
            Exit Sub                                                                        'and exit
        End If

        vNewStart = Me.txtStartDate + Me.cboStartTime                                      'combine new start date and time
        vNewEnd = Me.txtEndDate + Me.cboEndTime                                            'combine new end date and time

    'Check if new (or amended) appointment overlaps an existing appointment
        If conMultiAppts = 1 Then                                                          'if multiple appts for a time slot is NOT allowed then
            vAppointmentID = AppointmentsCheck(vNewStart, vNewEnd, Me.txtAppointmentID)    'fetch ID of overlapped appt (if any)
            If vAppointmentID > 0 Then                                                      'if function returns value >0 then
                vApptInfo = DLookup("ApptSubject & Chr(13) & Chr(10) & 'Date/Time =  ' & ApptStart & '  to  ' & ApptEnd", "tblAppointments", "ApptID = " & vAppointmentID) 'fetch info on existing appt
                MsgBox "ERRO. Este Agendamento sobrepõe outro já marcado:-" & vbCrLf & "Subject =  " & vApptInfo & vbCrLf & vbCrLf & "Please amend dates and/or times and try again.", vbCritical + vbOKOnly, "Invalid Appointment Times"
                Exit Sub
            End If
        End If

    'If txtAppointment = 0 then add a new appointment, if txtAppointment > 0 then amend the existing appointment
        If Me.txtAppointmentID = 0 Then                                                    'if no existing appointment record found then
            If vNewStart < Now Then                                                        'if new appt time is earlier than Now() then
                Beep
                If MsgBox("ATENÇÃO. Este Agendamento é no passado, quer mesmo criar este agendamento agora?", vbQuestion + vbYesNo, "Agendamento Inválido") = vbNo Then Exit Sub
            End If
            CurrentDb.Execute "INSERT INTO tblAppointments (ApptSubject, ApptLocation, ApptStart, ApptEnd, ApptNotes) VALUES (" _
            & QUOTE & Me.txtSubject & QUOTE & ", " _
            & QUOTE & Me.txtLocation & QUOTE & ", " _
            & Format(vNewStart, "\#mm\/dd\/yyyy hh\:nn\#") & ", " _
            & Format(vNewEnd, "\#mm\/dd\/yyyy hh\:nn\#") & ", " _
            & QUOTE & Me.txtNotes & QUOTE & ")"                                            'and insert new record into tblAppointments
        Else                                                                                'if changing an existing appointment record then
            CurrentDb.Execute "UPDATE tblAppointments SET " _
            & "ApptSubject = " & QUOTE & Me.txtSubject & QUOTE & ", " _
            & "ApptLocation = " & QUOTE & Me.txtLocation & QUOTE & ", " _
            & "ApptStart = " & Format(vNewStart, "\#mm\/dd\/yyyy hh\:nn\#") & ", " _
            & "ApptEnd = " & Format(vNewEnd, "\#mm\/dd\/yyyy hh\:nn\#") & ", " _
            & "ApptNotes = " & QUOTE & Me.txtNotes & QUOTE & ", " _
            & "Exported = " & Me.chkExported & " " _
            & "WHERE ApptID = " & Me.txtAppointmentID                                      'update existing appointment with amended data
               
            'ahteixeira 30-01-2017
            Current.db.Execute "UPDATE Tbl_Doentes SET Tbl_Doentes.[Data da Próxima Dispensa] = " & Format(Me.txtStartDate, "mm/dd/yyy") & _
            ", Tbl_Doentes.Hora = " & Format(Me.cboStartTime, "\#mm\/dd\/yyyy hh\:nn\#") & " WHERE Tbl_Doentes.NH = " & Me.txtSubject
            '-----
       
        End If
        gDummy = 1                                                                          'return 1 (refresh screen on return)
        DoCmd.Close acForm, Me.Name                                                        'and close form
        Exit Sub

    ErrorCode:
        MsgBox Err.Description

    End Sub

    Nota: vou considerar que o campo txtSubject é igual ao NH da tabela Doentes.
    Abraço
    avatar
    VanessaPina
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 55
    Registrado : 13/01/2017

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  VanessaPina 30/1/2017, 14:53

    Não está a funcionar...
    Posso enviar a base toda... Pode ser que assim consiga entender.
    Obrigada pela ajuda novamente Wink
    Anexos
    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico AttachmentBase de Dados.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (570 Kb) Baixado 10 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  Alvaro Teixeira 30/1/2017, 17:00

    Olá, altere por este:
    Código:
           CurrentDb.Execute "UPDATE Tbl_Doentes SET Tbl_Doentes.[Data da Próxima Dispensa] = #" & Format(Me.txtStartDate, "mm/dd/yyyy") & "#" & _
            ", Tbl_Doentes.Hora = " & Format(Me.cboStartTime, "\#mm\/dd\/yyyy hh\:nn\#") & " WHERE Tbl_Doentes.NH = '" & Me.txtSubject & "'"

    Abraço
    avatar
    VanessaPina
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 55
    Registrado : 13/01/2017

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  VanessaPina 31/1/2017, 09:00

    Continua a não funcionar... No
    avatar
    VanessaPina
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 55
    Registrado : 13/01/2017

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  VanessaPina 31/1/2017, 14:25

    Já vi o que estava a fazer mal.
    Estava a colocar  o código antes do End If!
    Erro de principiante!

    Obrigada pela ajuda! Very Happy Very Happy Very Happy
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  Alvaro Teixeira 31/1/2017, 15:19

    Olá Vanessa, exatamente.
    Entretanto tinha efetuado uns ajustes, veja:
    Código:
        '--------- lançar em doente
        CurrentDb.Execute "UPDATE Tbl_Doentes SET Tbl_Doentes.[Data da Próxima Dispensa] = #" & Format(vNewStart, "mm/dd/yyyy") & "#" & _
            ", Tbl_Doentes.Hora = " & Format(vNewStart, "\#hh\:nn\#") & " WHERE Tbl_Doentes.NH = '" & Me.txtSubject & "'"        '-----

    Também lembrei que se for alterar uma data mais recente, vai alterar.
    Caso não pretenda, terá que ter um IF com DMAX à data do respetivo doente e comparar.
    Abraço
    avatar
    VanessaPina
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 55
    Registrado : 13/01/2017

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  VanessaPina 31/1/2017, 15:22

    Está óptimo como está pois eu preciso mesmo que altere para a data mais recente!
    Obrigada, vocês aqui no fórum são fantásticos e a celeridade de resposta é maravilhosa!
    Very Happy


    Última edição por VanessaPina em 1/2/2017, 09:18, editado 1 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  Alvaro Teixeira 31/1/2017, 16:20

    Olá,fico feliz por ter ajudado.
    As palavras são gratificantes para esta grande família MaximoAccess!

    Não se esqueça de dar o tópico como resolvido.
    Veja como fazer:
    https://www.maximoaccess.com/t860-resolucao-de-topicos

    Abraço
    avatar
    VanessaPina
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Portugal
    Mensagens : 55
    Registrado : 13/01/2017

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  VanessaPina 1/2/2017, 09:19

    Já está.
    Obrigada
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7919
    Registrado : 15/03/2013

    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  Alvaro Teixeira 1/2/2017, 09:38

    cheers

    Conteúdo patrocinado


    [Resolvido]Copiar valores de um formulário para outro mas num cliente específico Empty Re: [Resolvido]Copiar valores de um formulário para outro mas num cliente específico

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 7/5/2024, 09:14