Te molesto de nuevo con lo siguiente, bueno tengo que hacer un acceso directo de un menú principal para poner a trabajar el programa pero no quiero que ningún usuario pueda hacer cambios en ninguna área de el mismo.
1 respuesta
Respuesta de telemaco
2
2
telemaco, He trabajado 5 años desarrollando aplicaciones tanto en access...
Pero te refieres a la bd... que no puedan entrar a diseño... claro se puede hacer... Veamos... VOLVER invisibles las tablas, este procedimiento te puede ayudar... Colocalo en un formulario, o en modulo para que lo corras, cada vez que lo necesites... ********************** For I = 0 To CurrentDb.TableDefs.Count - 1 If CurrentDb.TableDefs(I).Attributes = 0 Then CurrentDb.TableDefs(I).Attributes = dbHiddenObject Next I ************************* Ahora vamos a trabajar con las propiedades de inicio... PERO OJO: ANTES DE HACER ESTO... copia la base de datos de servidor, ya que después no podrás acceder a ningún objeto de la misma. Antes de eso vamos a crear un procedimiento que anule la tecla shift, que es la que permite que pase por alto lo que te diré a continuación, y que servirá, para ocultar la ventana de base de datos, para que no salga ningún menu, ni barra de herramienta. Crea un modulo si no lo tienes, y coloca estas funciones: *************************** Function EstablecerPropiedadesDeInicio() CambiarPropiedad "AllowBypassKey", dbBoolean, False End Function Function CambiarPropiedad(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer Dim dbs As Database, prp As Property Const conPropNotFoundError = 3270 Set dbs = CurrentDb On Error GoTo Change_Err dbs.Properties(strPropName) = varPropValue CambiarPropiedad = True Change_Bye: Exit Function Change_Err: If Err = conPropNotFoundError Then ' Propiedad no encontrada. Set prp = dbs.CreateProperty(strPropName, varPropType, varPropValue) dbs.Properties.Append prp Resume Next Else ' Error desconocido. MsgBox "Se presentó el error: " & Err.Number & "-" & Err.Description CambiarPropiedad = False Resume Change_Bye End If End Function **************************** Ahora crea un amacro llamada "AutoExec"... se debe llamar así exactamente OJO... En la macro en acción busca y coloca "EjecutarCódigo", y donde dice Nombre de función coloca: "EstablecerPropiedadesDeInicio ()"... Listo con esto bloqueamos la tecla shift... ahora vamos a asegurar más la bd... Haz click derecho en la ventana de la base de datos, donde aparecen las tablas, formulario, etc.. y luego selecciona Inicio... Deschequee lo siguiente: * Presentar la verntana de Base de datos (No permitira abrir la ventana de base de datos,osea no podra acceder a las tablas, ni a formualrios, etc) * Permitir el uso de barras de herramientas incorporadas (No mostrara las barras de herramientas de access, por lo tanto no tendra acceso a comando para abrir codigo, etc) *Permitir el uso de menus no restringidos (No aparecera los menus de access, esto servira para que no pueda acceder a objetos como tablas,etc) *Permitir el uso de menus contextuales predeterminados (menues emergentes..ya se imaginara porque) *usar teclas especiales de access (Para que no pueda utilizar por ejemplo la tecla F11, que permite visualizar la ventana de base de datos....9 Todas las anteriores les debe quitar le chulo... Ahora donde dice "Mostrar formulario/pagina".. puede seleccionar un formulario para mostrar, para que no se vea fea la base de datos de servodor, cree un formulario de presentación, que se abra maximizado (en el evento open del formulario coloque "Docmd.Maximize".. las propiedades emeregente y modal del formulario, establescalas a "si"... Y listo tienes la base de datos segura... Me avisas att:telemaco p.d. Ojo antes de hacer esto sáquele copia a la base de datos de servidor... para que si necesita hacer cambios solo tu poseerá la original sin estas propiedades, ya al colocarle todo lo que dije... no podrá acceder a ningún objeto de la base de datos... P.D. No creas, que se me ha olvidado lo otro... no te preocupes...
No se te olvide finalizar la pregunta Att:telemaco