Pregunta: | 42071 - BASES CON CONTRASEÑA |
Autor: | Mariano Cócora |
Quisiera saber como abrir una base de Access 97 con contraseña mediante codigo desde Visual Basic 6.0 sin usar objeto data, mediante variables recordset y demas. Desde ya muchas gracias! |
Respuesta: | Oswaldo Monagas |
Abrir con ADO estableciendo usuarios
'Agregar en las referencias 'Microsoft ActiveX Data Objects 2.0 Library 'o alguna version mas reciente 'declarar esto en un módulo .bas Private DBConnection As New ADODB.Connection 'Abre una base de datos access 'Regresa : 'True = Exito al conectar 'False = Error al conectar ' Public Function AbrirBaseDatosAccess(ByVal BaseAccess As String, _ Optional ByVal Access2000 As Boolean = False, _ Optional ByVal Usuario As String = "", _ Optional ByVal Password As String = "") As Boolean On Error GoTo ErrorAbrirBaseDatosAccess Dim ret As Boolean Dim Conexion As String ret = True If Not Access2000 Then 'access 97 Conexion = "Provider=Microsoft.Jet.OLEDB.3.51;" _ & "Persist Security Info=False;Data Source=" & BaseAccess Else 'access 2000 Conexion = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Persist Security Info=False;Data Source=" & BaseAccess End If DBConnection.ConnectionTimeout = 0 'no hay limite de espera de tiempo If Usuario <> "" Then DBConnection.Open Conexion, Usuario, Password Else DBConnection.Open Conexion End If GoTo SalirAbrirBaseDatosAccess ErrorAbrirBaseDatosAccess: ret = False MsgBox "AbrirBaseDatosAccess : " & Err & " " & Error$, vbCritical Resume SalirAbrirBaseDatosAccess SalirAbrirBaseDatosAccess: AbrirBaseDatosAccess = ret Err = 0 End Function Otra forma: Abrir una base de datos con seguridad desde ADO Permite abrir desde Visual Basic una base de datos cuando hay establecida seguridad a nivel de usuario La seguridad utilizada convencionalmente por Microsoft Access es una seguridad a nivel de usuario, controlada desde los ficheros .MDB y .MDA o .MDW (según versión de Microsoft Access). NOTA: Aunque se disponga de Microsoft Access en idioma castellano y el usuario se llame Administrador, es necesario pasar "Admin" como UserID, y no "Administrador". Microsoft Access 7.0 y Microsoft Access 97 también incorporan otro tipo de seguridad, asociada a la base de datos (se protege la base de datos con una contraseña que forma parte del fichero .MDB, y que solamente es solicitada al abrir ésta). El código aquí incluido permite abrir desde Visual Basic una base de datos cuando hay establecida seguridad a nivel de usuario. Previamente, desde el entorno de Microsoft Access se ha asignado al usuario Administrador (que es por defecto el propietario de todas las bases de datos) una contraseña ("ejemplo"). Esto se hace en Access 97 en la opción de menú Herramientas, Seguridad, Cuentas de usuario y de grupo y, una vez ahí, accediendo a la pestaña Cambiar contraseña de conexión. A partir de entonces, al abrir Access será necesario proporcionar el usuario y la contraseña. También a partir de entonces, para abrir un MDB desde VB será necesario pasarle el usuario y la contraseña. Dim Cn As New ADODB.Connection Dim strCn As String strCn = "Provider=Microsoft.Jet.OLEDB.3.51;" & _ "Data Source=nwind.MDB;" & _ "Jet OLEDB:System database=c:\winnt\system32\System.MDW" Cn.Open ConnectionString:=strCn, _ UserID:="Admin", Password:="moises" |