Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/08/2006, 08:36
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Pregunta si

Si, tienes razón, me expresé mal. La contraseña es de toda la base. Con Access2000 sé como hacerlo, pues posteando esta misma duda anteriormente aquí, uno de los foreros respondió mandandome a un link que tiene un código con el que realmente se logra el propósito de cambiar la contraseña a la base desde el programa.

El problema es que para Access97 no me funciona. Y no me conviene cambiar el formato de las bases.

El crédito es para www.lawebdelprogramador.com, creo... bueno, mío no es.

El código es este:


Private Sub CmdCompClave_Click()
On Error GoTo Control

'Debes agregar la referencia "Microsoft Jet and replication objects 2.6 library

Dim StrBaseDatosTemp As String
Dim Compactar As JRO.JetEngine
Dim StrBase As String
Dim ClaveN As String
Dim ClaveA As String

StrBase = "BaseDatos.mdb"
ClaveN = "ClaveNueva"
ClaveA = "actual"

Set Compactar = New JRO.JetEngine
' Crear un nombre temporal
StrBaseDatosTemp = "BaseDAtosTemporal" & ".mdb"
' Asegurarnos de que no existe una base con el nombre temporal
If Len(Dir$(StrBaseDatosTemp)) Then
Kill StrBaseDatosTemp
End If
Compactar.CompactDatabase "Data Source=" & StrBase & ";" & "Jet OLEDB:Database Password=" & ClaveA & ";", "Data Source=" & StrBaseDatosTemp & ";" & "Jet OLEDB:Database Password=" & ClaveN & ""

Kill StrBase
Name StrBaseDatosTemp As StrBase

Exit Sub
Control:
MsgBox Err.Description

End Sub