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

    Bloquear alteração de Datas

    Compartilhe

    brito1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 12
    Registrado : 18/04/2016

    Bloquear alteração de Datas

    Mensagem  brito1 em Seg 21 Ago 2017, 19:27

    Mais uma vez venho com uma dúvida, que não me deixa avontade. Pretendo impedir a alteração da data de um campo, apartir da hora do windows.
    Ex: Tenho uma bd, com validade, passo o código:

    Private Sub Form_Open (Cancel As Integer)
    If Date >=#22/8/2017# Then
    MsgBox " Prazo de avaliação Terminado!" , vbCritcal, "Pedido de Actualização"
    DoCmd.Quit
    End If
    End Sub

    Se a Data for >= 22/8/2017, a bd deve fechar. Mas alterar a data do pc é tambem influenciado.
    Espero ter conseguido explicar oque pretendo, e me desculpem se crie confunsão na percepção!
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Bloquear alteração de Datas

    Mensagem  good guy em Seg 21 Ago 2017, 20:51

    Olá Brito,

    Não entendi ainda o que pretende.

    brito1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 12
    Registrado : 18/04/2016

    Bloquear alteração de Datas

    Mensagem  brito1 em Ter 22 Ago 2017, 07:59

    Certo respeitado good guy!

    Irei tentar esclarecer, pretendo colocar validade na minha bd, depois de uma data prevista o aplicativo deve fechar, coloquei o código no formulario principal

    Private Sub Form_Open (Cancel As Integer)
    If Date >=#23/8/2017# Then
    MsgBox " Prazo de avaliação Terminado!" , vbCritcal, "Pedido de Actualização"
    DoCmd.Quit
    End If
    End Sub

    Até ai tudo bem, quando chega na data prevista o aplicativo fecha mesmo. O Problema está ao alterar a data no computador, por exemplo: o aplicativo irá fechar no dia 23/08/2017, no dia 23 ao alterar a data do computador, o aplicativo não irá fechar vai continuar funcionando, porque pegou a data do windows, oque eu pretendo é se tem uma forma de resolver isso.

    Obrigado mais uma vez.
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Bloquear alteração de Datas

    Mensagem  good guy em Ter 22 Ago 2017, 15:01

    Olá Brito,

    Crie uma tabela com um campo do tipo Data/Hora e deixe armazenado lá a sua data de vencimento. Baseie-se nesta data para limitar o fim da avaliação.



    Código:

    Private Sub Form_Open (Cancel As Integer)
    If Date >=Nz(Dlookup("DataFim","tblDataExpiracao")) Then
    MsgBox " Prazo de avaliação Terminado!" , vbCritcal, "Pedido de Actualização"
    DoCmd.Quit
    Else
    Exit Sub
    End If
    End Sub

    brito1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 12
    Registrado : 18/04/2016

    Bloquear alteração de Datas

    Mensagem  brito1 em Ter 22 Ago 2017, 19:40

    Testei o codigo

    Private Sub Form_Open (Cancel As Integer)
    If Date >=Nz(Dlookup("DataFim","tblDataExpiracao")) Then
    MsgBox " Prazo de avaliação Terminado!" , vbCritcal, "Pedido de Actualização"
    DoCmd.Quit
    Else
    Exit Sub
    End If
    End Sub

    Na verdade não diferente, com este em termos do resultado:

    Private Sub Form_Open (Cancel As Integer)
    If Date >=#23/8/2017# Then
    MsgBox " Prazo de avaliação Terminado!" , vbCritcal, "Pedido de Actualização"
    DoCmd.Quit
    End If
    End Sub

    Mando a bd com prazo de hoje dia 22/08/2017, depois de abrir ira aparecer o pedido de actualização, mas se for a mudar a data do computador no relogio colocar um dia antes, neste caso dia 21, a bd vai funcionar normalmente, assim se o cliente for espero irá mudar a data do computador. A minha duvida é sera que existe um codigo ou criar uma variavel, que mesmo se alguem for a mudar a data do computador não influenciarem nada na bd. Para clarificar mais a minha duvida vou dar um exemplo, hoje estamos no dia 22 de Agosto, eu mudo o a hora do computador para dia 21, e mandar um email, o destinatario ira receber o email com o dia 22 e não a data do meu computador 21.
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Bloquear alteração de Datas

    Mensagem  good guy em Ter 22 Ago 2017, 20:17

    Olá Brito,

    Na verdade, foi apenas uma sugestão. Não havia testado, não imaginei que o problema fosse mais complexo. Vamos estudar uma solução.

    brito1
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 12
    Registrado : 18/04/2016

    Bloquear alteração de Datas

    Mensagem  brito1 em Ter 22 Ago 2017, 20:27

    Agradeço a atenção, tambem vou continuar a trabalhar, caso consiga alguma solução irei partilhar.
    avatar
    good guy
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1043
    Registrado : 05/02/2010

    Bloquear alteração de Datas

    Mensagem  good guy em Ter 22 Ago 2017, 20:51

    Olá Brito,

    Só uma observação. Você já tentou inverter? E se fosse o caso de você colocar a data de expiração em uma caixa de texto no formulário com o modo visible = false, contendo a data de expiração. Quando chegasse o dia (Data do sistema Windows) o programa fechasse ao ser comparado com a data do sistema? Bem talvez não resolvesse ainda o problema.

    Outra observação: E se você criasse outra caixa de texto que somasse os dias até a data de expiração. Se o usuário modificasse a data do sistema windows o código somaria mais dias e o programa fecharia sempre. Vamos supor que você entrega o programa para o cliente hoje para ser usado até o dia 30/08/2017. São 8 (oito) dias, certo? Ao final do período, se a data do sistema for modificada o código do programa internamente continua contando os dias a cada vez que o programa é aberto com um contador. Se o número de contagens for maior que 8(oito) o programa fechará sempre. Deu pra entender?

      Data/hora atual: Sab 18 Nov 2017, 08:05