Sistema Shareware por limitação de Registros
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Ofereço neste link um tutorial sobre sistema Shareware com liberação Online, mas o grau de complexidade, o torna inviável para maioria dos usuários menos experientes em programação VBA. Resolvi, então, criar esta versão de Shareware, que é infinitamente mais simples. A ideia é a de limitar a quantidade de registros permitidos para cada formulário de cadastro envolvido.
Baixe o arquivo:
Clique aqui e baixe o arquivo exemplo.
Abra o formulário frmClientes, tente registrar um novo cliente e constate que o limite permitido neste exemplo é de até 3 registros.
Limitar a entrada de registro em um formulário é bem simples, basta alterar a propriedade Permitir adições (AllowAdditions) para Não (false).
Vamos analisar o código aplicado no evento No atual (Current) do formulário
Private Sub Form_Current() Me.AllowAdditions = Not Me.RecordsetClone.RecordCount >= fncLimiteRegistros End Sub
Me.RecordsetClone.RecordCount retorna a quantidade total de registros do formulário, que no nosso exemplo está em 3. A função fncLimiteRegistros(), que veremos mais adiante, está retornando o valor de 3. Então temos o seguinte comparativo no código:
Private Sub Form_Current() Me.AllowAdditions = Not 3 >= 3 End Sub
A expressão 3 >=3 retorna o valor True (verdadeiro). Então teremos:
Me.AllowAdditions = Not True
Not True (não verdadeiro) retorna o valor False. A propriedade do formulário AllowAddtions (Permitir adições) setado para False, impede a entrada de novos registros.
Agora, se tivéssemos apenas com dois registros cadastrados, teríamos a expressão 2 >= 3, o que retornaria False.
Me.AllowAdditions = Not False
Not False (não falso) retorna o valor True (verdadeiro). A propriedade do formulário AllowAddtions setado para True permitiria a entrada de um novo registro.
Acompanhe a seguinte seqüência:
- Ao abrir o aplicativo, a macro AutoExec dispara a função fncGerarChave()
- A função fncGerarChave() gera uma chave de 8 dígitos e a grava na tabela tblRegistro. A função também grava na tabela o nome do Usuário e o nome do Computador. Caso haja uma troca de Usuário ou de Computador, a função precisa gerar uma nova chave e para isso exige um novo registro de liberação. Esse é o mecanismo bem simples para impedir a clonagem do projeto.
- É preciso informar o número de registro na tabela tblRegistro para que o aplicativo rode sem restrição. De posse do número chave, você pode gerar o número de registro com o aplicativo GerarRegistro.accdb. Ao gerar o número, digite-o no campo Registro da tabela tblRegistro. Abra o formulário frmClientes e observe que está liberado para inserção de novos registros.
Veja, a função que gera a chave de 8 dígitos e que é disparada pela macro AutoExec:
Faça o login aqui para ter acesso ao código.
E a função que verifica o número de registro se está correto para liberar a limitação é a seguinte:
Faça o login aqui para ter acesso ao código.
Desafio
Para melhorar o nível de segurança, as informações gravadas na tabela tblRegistro devem ser criptografadas. Busque aqui no site sobre a criptografia e tente implementá-la neste projeto.
Bom estudo!
Os dez artigos mais visitados
MontaRibbons v.7.0 - Assistente completo para criar ribbons no Access
Vídeo - Controle personalizado de Acesso de Usuários
Vídeo - Aprenda sobre filtragens
Vídeo - Segurança máxima, usando o OPEN
Uma ajuda para quem está começando um negócio ou um projeto
Integrando o Access com Servidor MySQL - Introdução
Desabilitando a faixa(ribbon) superior do Access
Vídeo - Programação de relatórios - Parte 1
Como carregar o seu menu sem que ele vá para lista de suplementos
Vídeo - Criando Ribbons parte 1 - Conhecendo a estrutura Xml
3 comentário(s) Plauto 20/01/2023 12:17:11 Muito legal Avelino! Basta realizar as permissões em cada formulário de nosso projeto e mandar esse código junto que vai funcionar correto? Só uma pergunta: já vi projetos que não utilizam de nenhum formulário de cadastro; Nesse caso pensei se seria possível programar para que esse número de liberação gerado pelo aplicativo virasse a senha do formulário de login de qualquer sistema; se a senha não conferir então o sistema avisa e pedi a senha correta do usuário; Claro que teria que configurar para entrar primeiro no sistema para que a macro executável faça o trabalho dela, mas seria possível logo após isso o formulário de login abrir e no local da senha ter que colocar o numero de registro de liberação? Nesse caso todo usuário novo ao instalar em outra máquina teria que ter essa senha de acesso e dessa maneira aplicativos que não envolvam diretamente com cadastros funcionariam também de um modo protegido; Claro só pensando não sei se pode funcionar; sou iniciante no access e gostaria de saber a sua opinião! Mas ficou show de bola esse sistema! Obrigado Avelino Sampaio 12/02/2022 12:15:57 Eduardo, funcione no 2016 sim. Os passo para liberação do aplicativo - abra a tabela tblRegistro - anote o número do campo CHAVE - abra a aplicativo GerarRegistro.accdb - informe no campo o número da chave, que está na tabela tblRegistro. Clique no botão Gerar Registro - Anote o número de registro - volte a tabela tblRegistro e no campo REGISTRO escreva o número de registro anotado. Bom estudo! Eduardo 12/02/2022 07:16:07 Não funciona no access 2016. O que deve ser inserido no campo gerar número ? |