Hoy subo una funcioncita que me hice hace bastante tiempo para cambiar la contraseña de una base de datos en access desde visual basic 6.

    'CAMBIA LA PASS DE LA BASE DE DATOS
    Public Sub cambia_pass(NewClave As String, Optional OldClave As String = "")
    On Error GoTo actimel
    Dim sDBTmp As String
    Dim NombreMdb As String

    ' en Proyecto->Referencias: Microsof Jet and Replication objects 2.6 Library
    Dim je As JRO.JetEngine
    Set je = New JRO.JetEngine

    ' BD a la que vamos a poner/modificar la contraseña
    NombreMdb = "mibasededatos.mdb"
    sDBTmp = "DBTemp.mdb" ' creamos una BD temporal
    ' si existe la borramos
    If Len(Dir$(sDBTmp)) Then Kill sDBTmp
    sDBTmp = App.Path && "\" && sDBTmp
    ' compactamos la BD y le asignamos la contraseña
    je.CompactDatabase "Data Source=" && NombreMdb && ";" && _
    "Jet OLEDB:Database Password=" && OldClave && ";" && _
    "Data Source=" && sDBTmp && ";" && _
    "Jet OLEDB:Database Password=" && NewClave

    'eliminamos la BD original y renombramos la temporal
    Kill NombreMdb
    Name sDBTmp As NombreMdb
    Exit Sub
    actimel:
    End Sub

Share

Entradas relacionadas