DATA DE CONTROLE ACCESS

MEDRADO 21/07/2012 18:56:14
#406396
Alguem pode me ajudar. Preciso impedir o uso do meu banco de dados apos uma determinada data. pedi ajuda a uma comunidade mas não funcionou bem. aí esta, veja o quehá de errado, por favor.

Private Sub Form_Open(Cancel As Integer)
Dim Minhadata As String
Dim Dia As Integer, Mes As Integer, Ano As Integer
Dia = 10
Mes = 12
Ano = 2012
Minhadata = Dia & [Ô]/[Ô] & Mes & [Ô]/[Ô] & Ano

If Date > Minhadata Then
MsgBox [Ô]Este programa expirou, contate o administrador para obter o acesso novamente[Ô]
DoCmd.Quit
End If

End Sub
ARES 21/07/2012 19:17:08
#406398
Resposta escolhida
prezado,

Uso em meu programa a seguinte forma;

1o. salvo no banco de dados a data limite para utilização do programa
2o. sempre que o usuário entra no sistema salva a data do dia que ele acessou o programa

tabela Asgard.seguranca

id: 1
limite: 2012/12/31
atual: 2012/07/21

Quando o usuário entra no sistema (login) salva a data atual e verifica se a data no banco de dados é maior do que a data limite.
Verifica se a data do computador é diferente da data atual do banco de dados antes de salvar para impedir que o usuário volte a data do computador para usar o programa apos o vencimento do limite de uso;

Segue os códigos que estou usando:


Private Sub heimdall()
Dim permicao As Date
Dim permicao1 As Date
Dim atual As String

On Error GoTo errabrir

permicao = Now
permicao1 = Now
mycon.Open [Ô]dsn=asgard_salles[Ô]

With mycmd
Set .ActiveConnection = mycon
.CommandType = adCmdText
.CommandText = [Ô]Select *from heimdall_security where permitido_ate > [ô][Ô] & Format(permicao, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] [Ô]
Set myrs = .Execute

.CommandText = [Ô]update heimdall_security set [Ô] & _
[Ô]day_now = [ô][Ô] & Format(permicao, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô][Ô]
.Execute

If myrs!permitido_ate <= (permicao + 10) Then

MsgBox [Ô] LICENÇA DE USO DO PROGRAMA[Ô] & vbCrLf & vbCrLf & _
[Ô]Prezado usuário;[Ô] & vbCrLf & vbCrLf & _
[Ô]Informamos que a sua licença de uso vencerá no dia [Ô] & Format(myrs!permitido_ate, [Ô]dd/mm/yyyy[Ô]) & [Ô].[Ô] & vbCrLf & _
[Ô]Pedimos a getileza de informar ao administrativo, caso ao contrário, o programa irá[Ô] & vbCrLf & _
[Ô]perder toda a sua funcionalidade.[Ô] & vbCrLf & vbCrLf & _
[Ô]Atenciosamente,[Ô] & vbCrLf & _
[Ô]Suporte Asgard[Ô], vbInformation, [Ô]Asgard[Ô]

End If


End With

With myrs
If .EOF And .BOF Then
Set myrs = Nothing
Set mycmd = Nothing
mycon.Close
MsgBox [Ô] O limite de uso do sistema acabou, favor informar ao administrativo[Ô], vbCritical, [Ô]Projeto Asgard[Ô]
Unload Me
Exit Sub
[ô] limpar

End If
End With


saida:
Set myrs = Nothing
Set rs = Nothing
Set mycmd = Nothing
mycon.Close


errabrir:
With Err
If .Number <> 0 Then
MsgBox [Ô]Erro ao entrar no sistema.[Ô], vbCritical, [Ô]Objetivo[Ô]
.Number = 0
Me.txtNome.SetFocus
Unload Me
Exit Sub
End If
End With
End Sub

Private Sub heimdall_time()
Dim permicao1 As Date

[ô]on Error GoTo errabrir


permicao1 = Now
mycon.Open [Ô]dsn=asgard_salles[Ô]

With mycmd
Set .ActiveConnection = mycon
.CommandType = adCmdText
.CommandText = [Ô]Select *from heimdall_security where day_now <= [ô][Ô] & Format(permicao1 + 1, [Ô]yyyy/mm/dd[Ô]) & [Ô][ô] [Ô]
Set myrs = .Execute

End With

With myrs
If .EOF And .BOF Then
Set myrs = Nothing
Set mycmd = Nothing
mycon.Close
MsgBox [Ô] O limite de uso do sistema acabou, favor informar ao administrativo[Ô], vbCritical, [Ô]Projeto Asgard[Ô]
Unload Me
Exit Sub
[ô] limpar

End If
End With


saida:
Set myrs = Nothing
Set mycmd = Nothing
mycon.Close


errabrir:
With Err
If .Number <> 0 Then
MsgBox [Ô]Erro ao entrar no sistema.[Ô], vbCritical, [Ô]Objetivo[Ô]
.Number = 0
Me.txtNome.SetFocus
Exit Sub
End If
End With
End Sub


O processo esta funcionando perfeitamente;

Quanto a prorrogação do uso programa eu libero uma nova data para o usuário que busca via transferência de dados por FTP.

Caso não seja isso, poste mais informações.
MEDRADO 21/07/2012 21:04:11
#406412
Caro amigo, proimeiro obrigado por me atender! Já trabalho com access à mais de 15 anos, nunca precisei editar no VBA, semore quebrei o galho usando regra de validação. e cenverdento para MDE. para evitar que o usuário fizesse alterações. Confesso que não sei como criar esse recurso. Vc. poderia me dá o passo apasso, ficarei muito grato. Se tiver algum custo faço questão de pagar.
Ogrigado.
PS: Estou na cidade de Barreiras BA e aqui não tem nunguém que possa me ajudar, muito menos me ensinar um pouco mais sobre o VBA

1o. salvo no banco de dados a data limite para utilização do programa
2o. sempre que o usuário entra no sistema salva a data do dia que ele acessou o programa
Tópico encerrado , respostas não são mais permitidas