> 06 - Donner un peu de mal aux gens malhonnêtes

Vous avez écrit un superbe programme, vous ne souhaitez pas qu'il soit copié partout ?
Bien sûr vous avez mis en oeuvre la sécurité utilisateur, et fait un fichier .mde
Voici quelques pistes supplémentaires:

1 - Dans un module placez ceci (à adapter bien sûr...):
Public Sub Protection(frm As Form)
Dim NomBase As String, stFraude As String, cle As String
stFraude = ""
DLC = True
'-- vérifie un nom dans l'en-tête
(voir aussi la fiche 05) une zone de texte de chaque
'-- formulaire doit s'appeler [EnTête]

If InStr(frm![EnTête], "monNom") = 0 Then
DLC = False
stFraude = stFraude & " ABC"
End If
' -- si version démonstration
If InStr(frm![EnTête], "stration") = 0 Then
DLC = False
stFraude = stFraude & " VD"
End If
' -- vérifie le nom de la ville
If InStr(frm![EnTête], "Vannes") = 0 Then
DLC = False
stFraude = stFraude & " NV"
End If
' -- instaure une date limite au fonctionnement
' attention, date anglo saxonne - s'arrête de marcher après cette date

If Date > #12/31/2003# Then
DLC = False
stFraude = stFraude & " DT"
End If
' -- vérifie le nom de la base
NomBase = CurrentDb.Name
If Left$(NomBase, Len(NomBase) - 1) <> "C:\monRep\maBase_prog.md" Then
DLC = False
stFraude = stFraude & " NB "
End If

' Comadsl.dll Ce fichier ne sert à rien, seule son existence est vérifiée.
' Si le logiciel est déplacé sur une autre machine sans la présence de ce fichier,
' il ne marche plus. N'importe quel fichier copié/collé puis renommé sous ce nom fera l'affaire.
' Ne pas l'oublier dans le package d'installation ...

If Len(Dir("C:\Windows\System\Comadsl.dll")) = 0 Then
DLC = False
stFraude = stFraude & " XY"
End If
End Sub

2 - Dans la procédure sous-jacente de l'évènement "sur ouverture" de la plupart des formulaires placez ceci:

Protection Me
If DLC = False Then
MsgBox "Pour éviter de perdre vos données et pouvoir redémarrer," & vbCrLf & "Veuillez contacter l'assistance technique (Mr DUPONT) au 06.88.99.00.00" & vbCrLf & "en indiquant ce code: " & stFraude, vbCritical, "A T T E N T I O N - Le programme vient de détecter un problème."
DoCmd.Quit
End If