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

    Código vba para bloquear BD usando critério data

    Compartilhe

    marialopes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 19/03/2013

    Código vba para bloquear BD usando critério data

    Mensagem  marialopes em 23/7/2018, 00:42

    Olá!
    Fiz um sistema para pet shop e quero comercializar, mas como não posso ter acesso remoto para bloquear o acesso em caso de não pagamento da mensalidade por parte do cliente, queria usar um código vba onde ele fosse bloqueado na data determinada ou qualquer outra forma que possibilite esse processo. Grata.

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 26/11/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  delsonk em 23/7/2018, 01:41

    Boa noite,


    Para o sistema parar de funcionar, faça com que ele só tenha acesso aos formulários, ou seja, quando ele iniciar o programa, já iniciar o formulário principal Aquele que você colocar para abrir quando carregar o sistema. É neste formulário que você coloca o código.
    Ficará mais ou menos assim.

    Private Sub Form_Open(Cancel As Integer)  'isto significa que deve colocar esta ação no evento ao abrir, se colocar for colocar pela propriedade do formulário, então não precisa digitar a linha de comando anterior.

    Dim Minhadata As String    'declara a variável Minhadata
    Dim Dia As Date, Mes As Date, Ano As Date  'cria as variáveis Dia, Mes e Ano
    Dia = 12   'especifica até que dia o sistema funcionará
    Mes = 9  'especifica ate que mês o sistema funcionará
    Ano = 2018 'e isto especifica até que ano
    Minhadata = Dia & "/" & Mes & "/" & Ano  

    If Date > Minhadata Then
    MsgBox "Este sistema expirou, contate o administrador para obter o acesso novamente"
    DoCmd.Quit
    End If

    End Sub

    Carlos Cruz
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 23
    Registrado : 26/02/2014

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Carlos Cruz em 23/7/2018, 02:50

    Faça como o delsonk lhe passou. Depois faça o teste mudando a data do seu computador e se isso não censurado o código, ótimo! Se censurado, você pode liberar uma quantidade de lançamentos ao usuário, veja o último código criado automaticamente na tabela, depois no formulário ou subformulário, aba evento, ao carregar coloque o seguinte código:

    On Error Resume Next
    DoCmd.GoToRecord , , acLast
    If Código > 10 Then       ‘ If   “nomecamponumeracaoautomatica” > “quantidadecodigosliberados”
    MsgBox “Sistema Expirou, contacte o administrador”
    Quit
    End If

    Boa sorte!

    marialopes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 19/03/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  marialopes em 23/7/2018, 12:45

    Muito grata pelas respostas, mas uma dúvida... uma vez que o sistema esteja bloqueado, como eu, na condição de administradora, acesso o sistema para desbloquear? Desculpa se a pergunta for primária, mas é esse o meu caso mesmo, aprendi sozinha e usando tempo disponível desde 2012 e finalmente consegui terminá-lo.

    delsonk
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 100
    Registrado : 26/11/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  delsonk em 23/7/2018, 13:07

    Bom dia!

    Tente abrir o programa (formulário) com o botão SHIFT segurado!

    Sugiro que você divida o BD e forneça ao seus clientes somente o ACCDE (o arquivo executável, sem o código fonte).

    Abraço, Delson

    marialopes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 19/03/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  marialopes em 23/7/2018, 16:33

    Eu havia bloqueado o uso do SHIFT. Vou testar as sugestões e dou retorno. Preciso saber ainda como faço para acessar novamente o sistema do cliente uma vez que foi bloqueado pelo código sugerido.
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3535
    Registrado : 06/11/2009

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Assis em 23/7/2018, 19:28

    marialopes

    Veja este exemplo

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    *** Só sei que nada sei ***

    marialopes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 19/03/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  marialopes em 24/7/2018, 00:51

    grata Assis, deixei uma dúvida lá. Smile
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3535
    Registrado : 06/11/2009

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Assis em 24/7/2018, 09:38

    marialopes
    Importa todos os dados da sua BD para o meu exemplo.
    E no formulário Menu coloca os comandos necessários para abrir os formulários e relatórios que pretende.


    .................................................................................
    *** Só sei que nada sei ***

    marialopes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 19/03/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  marialopes em 27/7/2018, 00:13

    Assis, fiz o que falou. Mas ao executar esta dando erro:  Erro de compilação
                                                                                     Método ou membro de dados não encontrados
                                                                                      Me.txt_clock=time()
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3535
    Registrado : 06/11/2009

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Assis em 27/7/2018, 00:32

    marialopes

    Esse erro é num formulário da sua BD.

    Compilando o seu BD, não dá esse erro ?

    Aguardo


    .................................................................................
    *** Só sei que nada sei ***

    marialopes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 19/03/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  marialopes em 27/7/2018, 01:43

    removi a linha que acusava erro e tá ok agora. mas até então não estava apresentando esse erro, o bd rodava normalmente. Estou testando e dou retorno do resultado final.
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 488
    Registrado : 13/12/2016

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Alexandre Fim em 27/7/2018, 06:51

    Maria Lopes bom dia,

    Desenvolvi 2 sistemas, onde o "PETSys.accdb" é o sistema principal e o "PETLibera.accdb" é o que faz a liberação quando o período de vigência de utilização do sistema é encerrado.



    Funciona da seguinte forma:
    1 - Crie um diretório "C:\PETSys" e copie o "PETSys.accdb"


    1 - No "PETSys.accdb", existe uma tabela chamada "tbSys", onde constam a Data Inicial e Final da Vigencia de cada mês, e um campo de de status, chamado "LiberaVigencia", conforme abaixo:
    [Você precisa estar registrado e conectado para ver esta imagem.]

    Observe que o período liberado é de 01/06/2018 à 30/06/2018.

    2 - Ao tentar executar o sistema, irá aparecer a seguinte mensagem:
    [Você precisa estar registrado e conectado para ver esta imagem.]
    Ao clicar "OK" da mensagem, o sistema é encerrado.

    3 - Desta forma, seu cliente irá entrar em contato pra que você envie a "Liberação" do sistema, e ai vc envia o  "PETLibera.accdb".
    Ao abrir o  "PETLibera.accdb", ele automaticamente informa na tela, a Data Inicial e Data Final do mês vigente, e os campos ficam desabilitados, e a cada mês é necessário enviar a liberação para o cliente.

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

    4 - Ao clicar em "Liberar", o "PETLibera.accdb" acessa o "PETSys.accdb" e atualiza o campo "LiberaVigencia" da "tbSys" para "S", usando como critério de seleção as datas inicio e fim do formulário.


    E ai o sistema está liberado !!!


    Seguem os arquivos(2 arquivos no mesmo .zip) para sua avaliação

    Boa sorte.

    []'s
    Anexos
    PETSys.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (88 Kb) Baixado 23 vez(es)
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 488
    Registrado : 13/12/2016

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Alexandre Fim em 27/7/2018, 15:16

    Ola Maria Lopes,

    Conseguiu baixar e testar os exemplos que te mandei?

    Assim que puder, nos informe.

    Abraço

    marialopes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 19/03/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  marialopes em 1/8/2018, 12:36

    OLÁ Alexandre, consegui sim, muito grata, funciona direitinho mas tem o seguinte: alterando data do sistema, o cliente consegue reutilizar o sistema e é isso que preciso bloquear, pode me ajudar nisso?
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 488
    Registrado : 13/12/2016

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Alexandre Fim em 1/8/2018, 13:15

    Bom dia Maria,

    Realmente, o sistema está "aberto" para alterações, por se tratar de um exemplo apenas.

    Existem funções que bloqueiam as janelas do Access, bloqueiam também o acesso ao Modo Estrutura do Access através da tecla SHIFT e etc.


    Faça uma busca aqui no fórum, pois existem tópicos tratando este assunto. Segue link:

    [Você precisa estar registrado e conectado para ver este link.]





    OBS: Faça uma cópia de segurança do seu sistema antes de implementar estas rotinas, pois, dependendo da forma que for implementado, o sistema ficará bloqueado e voce não terá acesso à estrutura.

    Boa sorte.
    avatar
    Marco Messa
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 290
    Registrado : 28/06/2010

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Marco Messa em 3/8/2018, 18:39

    Maria, infelizmente se basear na data do sistema para liberar/bloquear o acesso ao sistema sempre poderá ser censurado de alguma maneira, e talvez você não deva se preocupar tanto com pessoas que irão se empenhar em censurado o seu sistema. Segue aqui uma resposta no StackOverflow falando sobre isso:
    stackoverflow.com/questions/5488249/how-do-i-enforce-an-expiration-date-for-a-trial-install-of-my-software#answer-5488752
    Copiar e colar no navegador [Não são permitidos links externos]

    Agora, se você realmente estiver disposta a verificar a validade do sistema mesmo que o usuário altere a data do Windows, tenho algumas sugestões para você tentar:


    1. Utilizar o WinSock para abrir uma conexão com a internet e buscar a data atual de um servidor online como por exemplo o ntp.br e utilizar essa data para validação;
    2. Gravar a data de ativação no sistema internamente e a cada registro que ele criar (pode ser da tabela principal ou de todas) gravar a data de utilização do sistema, assim ele não poderia voltar nunca a data para algo entre a data de ativação e a maior data de utilização;
    3. Ter um identificador único dentro do sistema que validaria em uma base sua online se aquele ID ainda está ativo naquela data, nesse caso você nem precisaria utilizar a data interna.


    Para todas essas validações online, você pode fazer com que o sistema seja obrigado a verificar apenas a primeira utilização no dia, não dependendo mais de internet durante o restante do dia.


    .................................................................................
    Tea with me that I book your face [Você precisa estar registrado e conectado para ver esta imagem.]

    marialopes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 15
    Registrado : 19/03/2013

    Re: Código vba para bloquear BD usando critério data

    Mensagem  marialopes em 4/8/2018, 14:26

    Marco , grata pelas dicas.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

    Re: Código vba para bloquear BD usando critério data

    Mensagem  ahteixeira em 4/8/2018, 17:37

    Olá a todos,

    Maria Lopes, não testei nem vi o exemplo do colega.
    Mas se a questão é a alteração da data do sistema, pode verificar essa situação, veja se ajuda:
    [Você precisa estar registrado e conectado para ver este link.]

    Abraço a todos
    avatar
    Alexandre Fim
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 488
    Registrado : 13/12/2016

    Re: Código vba para bloquear BD usando critério data

    Mensagem  Alexandre Fim em 4/8/2018, 18:10

    Maria boa tarde,

    Existe um procedimento que pode ser feito via programação, que permite escrever e recuperar informações do registro do Windows (regedit), alterando a chave do seu sistema no registro, onde o usuário não teria acesso.
    Mesmo que ele altere a data da máquina, não seria possível ele censurado, porque dependeria de uma alteração nesta chave, e esta alteração seria feito pelo arquivo que você enviaria todo mês para o usuário atualizar a data de vigência do sistema.

    Vou fazer um teste aqui no exemplo que te mandei e depois te envio.

    []'s

      Data/hora atual: 21/10/2018, 23:13