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]validade do documento

    Compartilhe

    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    [Resolvido]validade do documento

    Mensagem  maryprego em Ter 18 Jul 2017, 13:35

    saudações a todos,

    estou com dificuldades de implementar esta função no formulario ou no relatório na bd access mas no excel consigo normalmente.

    exemplo é para dizer se o documento está ok, expirado ou alerta:
    diasrestante = datacaducidade - dataactual
    SE(diasrestante>30;"OK";SE(diasrestante<1;"Expirado!";SE(diastestante<=30;"Alerta")))

    alguém pode me ajudar.
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: [Resolvido]validade do documento

    Mensagem  ronaldojr1 em Ter 18 Jul 2017, 14:17

    bom dia,
    segue função no access

    Código:

    if diasrestante > 30 then
     seuCampo = "OK"
    else
        if diasrestante < 1 then
              seuCampo = "Expirado"
        else if diasrestante <= 30 then
              seuCampo = "Alerta"
        end if
    end if

    para essa função funcionar vc deve colocar ela em agum evento, por exemplo no evento ao carregar do formulário.
    Propriedades do formulario > guia evento > ao carregar > escolha "[Procedimento de evento]" e clique no botão "..."

    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    Re: [Resolvido]validade do documento

    Mensagem  maryprego em Qua 19 Jul 2017, 18:20

    muito obrigado pelo retorno,
    a função de um dia para outro deixou de funcionar. ao inserir um novo funcionário e depois carregar o formulário Frm_boletimSanidade não está a calcular. também fiz outro teste, se colocar esta função no evento depois de actualizar, calcula normalmente mas quando a data actual alterar não calcular fica estático.

    agraço a vossa ajuda, segue a bd em anexo,
    Anexos
    caducidade_de_Documento.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (504 Kb) Baixado 10 vez(es)
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: [Resolvido]validade do documento

    Mensagem  ronaldojr1 em Qua 19 Jul 2017, 19:48

    boa tarde
    vamos la

    primeiro eu arrumei a funcao pq do jeito que estava nao caia na condição "expirou"

    segue codigo
    Código:

    txtDiasRestante = txtDataCaducidade - txtDataActual
    If txtDiasRestante > 30 Then
    txtEstado = "OK"
    Else
        If txtDiasRestante <= 30 And txtDiasRestante >= 1 Then
            txtEstado = "Alerta!"
        Else: If txtDiasRestante < 1 Then txtEstado = "Expirou!"
        End If
    End If

    depois vc coloca o mesmo codigo nos eventos:

    1- "No Atual" (esse evento fica nas propriedades do formulario)
    2- "Apos Atualizar" do campo txtDataCaducidade

    com isso o campo passa a ser calculado ao trocar o registro, quando o formulario abre(essa vc ja tinha feito) e apos atualizar a data de caducidade.



    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    Re: [Resolvido]validade do documento

    Mensagem  maryprego em Qua 19 Jul 2017, 21:11

    excelente!!!

    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    Re: [Resolvido]validade do documento

    Mensagem  maryprego em Sex 21 Jul 2017, 13:49

    saudação a todos,
    muito obrigado por dispensar o teu tempo precioso por me ajudar e ensinando/aprendendo amigo ronaldojr1.

    solicito a vossa ajuda: ao inserir uma caixa de listagem no frm_boletimsanidade os valores os campos diasrestante e estado não está atualizar na Caixa de listagem nem na tbl_boletimsanidade quando altera a data para o dia seguinte (simulei alterando a data do windows). fiz alguns testes colocando esta função no evento ao carregar no frm_boletimsanidade só atualiza o primeiro funcionário os demais fica estático. mas só calcula se eu navegar com os botões de navegação de registos. e posteriormente quando montar-se um relatório não acontece o mesmo.

    agradeço ajuda de todos.

    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    Re: [Resolvido]validade do documento

    Mensagem  maryprego em Dom 23 Jul 2017, 16:27

    olá,
    alguém pode me ajudar na mensagem nº 6. como posso ultrapassar esta problema.
    segue a bd
    Anexos
    Caducidade_de_docmentos.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (481 Kb) Baixado 9 vez(es)

    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    Re: [Resolvido]validade do documento

    Mensagem  maryprego em Ter 25 Jul 2017, 14:11

    ola,
    já tentei vincular o campo data na tbl_BoletimSanidade sem resultado.
    alguém pode me ajudar na mensagem nº 6 por favor.
    agradeço.

    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    Re: [Resolvido]validade do documento

    Mensagem  maryprego em Qui 27 Jul 2017, 11:59

    Up
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: [Resolvido]validade do documento

    Mensagem  ronaldojr1 em Qui 27 Jul 2017, 14:12

    bom dia
    desculpe a demora so vi hoje suas mensagens

    vamos la
    percebi que seu formulario esta com um comportamento que não pode acontecer

    sempre que o formulario abre e tambem quando o usuario clica no botao proximo estando no ultimo registro um novo registro em branco e criado.

    tenta corrigir isso e depois vc verifica se ainda nao esta calculando, no meu pc esta calculando a data normalmente.

    para corrigir o problema siga os passos

    1 - primeiro vai na sua tabela "Tbl_boletimSanidade" e exclui os registros em brancos.
    2 - Nas propriedades do formulario adicione o evento "antes de atualizar" e coloque o seguinte codigo:
    Código:

    If Len(Me.NomeFuncionario) = 0 Or IsNull(Me.NomeFuncionario) Then
        Cancel = 1
        Me.Undo
    End If

    3 - no evento "ao clicar" do botão "btnRSeguinte" retire a macro e substitua por "[Procedimento do Evento]" insira o seguinte codigo:
    Código:

    If Len(Me.NomeFuncionario) = 0 Or IsNull(Me.NomeFuncionario) Then
        MsgBox "Você chegou no último registro", vbInformation, "último registro"
        DoCmd.RunCommand acCmdRecordsGoToPrevious
        DoCmd.RunCommand acCmdRecordsGoToPrevious
    Else
        DoCmd.RunCommand acCmdRecordsGoToNext
    End If

    veja se so com isso resolve se nao resolver fale exatamente como vc fez para gerar o erro.

    boa sorte ai

    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    Re: [Resolvido]validade do documento

    Mensagem  maryprego em Sex 28 Jul 2017, 10:45

    sou grato pela sua dedicação e esforço,
    fiz a devida correção conforme a dica.
    só para reforçar que, a data está a calcular e o estado também no meu pc mas só quando está sendo inserido novo registo ou alterando o registo. o problema é que quando a data do windows altera para o dia seguinte não atualiza os calculo na Tbl_BolemSanidade e na respectiva consulta ao abrir o Frm_BoletimSanidade.
    o problema esta ai amigo ronaldojr1.
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: [Resolvido]validade do documento

    Mensagem  ronaldojr1 em Sex 28 Jul 2017, 14:02

    a ta, agora entendi. nesse caso vc deve fazer uma função responsavel para recalcular todos os registros para ser executada quando o access abrir.

    siga os passos:

    1- crie um modulo com o nome que desejar, eu gosto de criar um modulo chamado mod_autoExecutavel e nesse modulo eu colocos todas minhas funções
       responsavel pelos procedimentos na abertura do access, mas a organização é sua então organize do jeito que achar melhor.rsrs
    2- cole as duas funções no módulo recem criado
       
    Código:

        Function autoExecutavel()
        updateStatusValidadeCaducidade
    End Function


    Function updateStatusValidadeCaducidade()

    Dim bc As Database
    Dim rs As Recordset
    Dim tempDiasRestante As Integer

    Set bc = CurrentDb
    Set rs = bc.OpenRecordset("SELECT DiasRestante, DataCaducidade,Estado FROM Tbl_BoletimSanidade") 'abre a tabela com os campos que iremos usar

    Do While Not rs.EOF

        rs.Edit
        tempDiasRestante = rs!DataCaducidade - Date
        rs!DiasRestante = tempDiasRestante
        If tempDiasRestante > 30 Then
            rs!Estado = "OK"
        Else
            If tempDiasRestante <= 30 And tempDiasRestante >= 1 Then
                rs!Estado = "Alerta!"
            Else: If tempDiasRestante < 1 Then rs!Estado = "Expirou!"
            End If
        End If
        rs.Update
        rs.MoveNext
    Loop
    Set bc = Nothing
    Set rs = Nothing

    End Function
        

    3 - cria uma macro com o nome "AutoExec"

    4 - na macro em adicionar nova ação escolha "Executar Codigo"

    5 - no nome da função coloque "autoExecutavel()"

    agora toda vez que o access abrir ele ira atualizar os campos [Estado e DiasRestante]

    maryprego
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Angola
    Mensagens : 58
    Registrado : 16/07/2017

    Re: [Resolvido]validade do documento

    Mensagem  maryprego em Dom 30 Jul 2017, 15:15

    cheers está a funfar, muito obrigado amigo ronaldojr1 pelo empenho.
    avatar
    ronaldojr1
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 292
    Registrado : 01/08/2011

    Re: [Resolvido]validade do documento

    Mensagem  ronaldojr1 em Seg 31 Jul 2017, 13:44

    disponha foi um prazer ajudar e o forum agradece o retorno

      Data/hora atual: Sab 18 Nov 2017, 13:41