5- Protección Tecla Shift
Autor: Javier Gómez ("javier.mil")
El siguiente código sirve para proteger la tecla SHIFT mediante codigo.
Casi todo el mundo que utiliza Access sabe que pulsando la tecla SHIFT mientras se abre la base de datos, permite saltarse el primer formulario (entrada o inicio). El siguiente código lo evita.
La novedad de este código es que No se aprovecha del error de la propiedad para crearla , sino que busca primero si existe la propiedad y si No la encuentra entonces la crea.
Para que sea 100% operativo hay que ejecutar el procedimiento XecPrimeraVezSHIFT una sola vez.
sitúa el cursor AQUI Public Sub XecPrimeraVezSHIFT ()
luego pulsa F8 Public Sub XecPrimeraVezSHIFT ()
y finalmente F5
En caso que No se ejecute No pasaría nada, simplemente que la base estaría sólo segura la segunda vez que se entrase en la base.
en un FORMULARIO DE ENTRADA o INICIO
Private Sub
Form_Open(Cancel As Integer)
Rem protege la
tecla SHIFT
Rem Primera vez hay que ejecutar la
intruccion funSoloPrimeraVezSHIFT
If funProtegerSHIFT(Si) = False Then
Rem La propiedad No fue creada
MsgBox "Se ha producido un error grave
de seguridad", vbExclamation, "Error
Shift"
Application.DoCmd.Quit
End If
End Sub
Otra opcion seria:
funProtegerSHIFT Si
en un MODULO STANDARD
Private Function
funLeerPropiedades() As Boolean
'---------------------------------------------------------------------------------------
' Procedure : funLeerPropiedades
' DateTime : 09/06/2009 20:45
' Author : Javier Gomez ("Javier.Mil")
' WEB : https://www.accessdemo.info
' Purpose : Lee la coleccion de
propiedades y busca si existe la
propiedad SHIFT
'---------------------------------------------------------------------------------------
Dim dbs As DAO.Database
Dim prp As DAO.Property
On Error Resume Next
Set dbs = CurrentDb
For Each prp In dbs.Properties
Rem busco solo la propiedad SHIFT
If prp.Name = cShift Then
funLeerPropiedades = True
Exit For
End If
Next prp
Set dbs = Nothing
Set prp = Nothing
End Function
Public Sub XecPrimeraVezSHIFT()
Ejecutar
este codigo 1 sola vez con F8 y luego F5
situa el cursor sobre Public Sub
XecPrimeraVezSHIFT ()
luego pulsa F8 Public Sub
XecPrimeraVezSHIFT ()
y finalmente F5
'---------------------------------------------------------------------------------------
' Procedure : XecEjecutarUnaVez
' DateTime : 09/06/2009 20:41
' Author : Javier Gomez ("Javier.Mil")
' WEB : https://www.accessdemo.info
' Purpose :Rem Ejecutar este codigo solo
1 vez
Rem ejecutar este codigo antes de
distribuir tu aplicacion
Rem se creara la propiedad SHIFT
Rem puedes comprobar que se haya creado
la propiedad desde funleePropiedad
'---------------------------------------------------------------------------------------
On Error Resume Next
Dim varProp As Variant
Set varProp = CurrentDb.CreateProperty(cShift,
dbBoolean, False)
CurrentDb.Properties.Append varProp
MsgBox "Se ha creado la propiedad SHIFT
con exito", vbNewLine & _
"No hace falta creala mas veces",
vbInformation, "Tecla Shift"
End Sub