Respuesta de Enrique MArtinez
=============================

El problema está en la versión de la biblioteca de Access que tengas
referenciada en tu proyecto de Visual Basic. La sintaxis del método
«OpenCurrentDatabase» correspondiente a la biblioteca «Microsoft Access 10.0
Object Library» (Access XP), es la siguiente:

apliccaccess.OpenCurrentDatabase(ruta, Exclusivo, Contraseña)

Desconozco la sintaxis correspondiente a la versión 9.0 de la citada
biblioteca (Access 2000), aunque por lo que he leído, no dispone del
argumento «Contraseña». Pero sí te puedo confirmar que la sintaxis de la
versión 8.0 (Access 97) tampoco dispone del citado parámetro, de ahí que te
de el error «Número de argumentos erróneo o asignación de propiedad no
válida» cuando utilizas el ejemplo que te envié.

> Si tú has probado el código, quizás yo esté haciendo algo
> incorrecto.  ¿ Podrias ser un poco más explícito ?

Creo que está ya explicado: si la versión de la biblioteca «Microsoft Access
X Object Library» que utilizas en tu proyecto VB no permite el argumento
«Contraseña», no podrás utilizar el método «OpenCurrentDatabase» para abrir
una base de datos que esté protegida con una contraseña. No obstante, te
recomiendo que expongas tu problema en el grupo de Access
(microsoft.public.es.access), por si los compañeros de dicho grupo conocen
otra solución.

Yo conozco otras soluciones para abrir una base de datos con contraseña
mediante DAO y ADO. Si estás interesado, en la siguiente dirección de la
Knowledge Base, encontrarás información de como abrir una base de datos
Access 2000 protegida mediante DAO. Si entiendes un poco de inglés, en ese
mismo artículo explica que el método «OpenCurrentDatabase» no proporciona un
parámetro para especificar la contraseña, cosa que si lo hace la versión
10.0 de Microsoft Access Object Library:

HOW TO: Open a Password-Protected Database Through Automation in Access 2000
http://support.microsoft.com/default.aspx?scid=kb;en-us;235422

Un saludo.

--
Enrique Martínez
[MS MVP - VB]






ANEXO DE EJMPLO DEL BUHO
========================



Option Explicit

Function BuhoAccess2000()
 'Esta es la que hacía yo hasta ahora desde Access 2000
 Dim db As Database
 Dim InstanciaAccess As Access.Application
 Set InstanciaAccess = New Access.Application
 Set db = InstanciaAccess.DBEngine.OpenDatabase("c:\twpac\datos.mdb", False, False, ";PWD=330086")
 InstanciaAccess.OpenCurrentDatabase "c:\twpac\datos.mdb"
 'si quería ver la MDB fisicamente abierta:
 InstanciaAccess.Visible = True
 'aqui operaría con dicha MDB
 'etc etc
 db.Close
 Set db = Nothing
End Function

'----------------------------------------------------------------------

Function AbreBaseDatosProtegidaMicrosoft()
 'Sacada de la Web de Microsfot y a la postre es como la anterior mía
 'Access 2000
 Static AccInstanciaAccess As Access.Application
 Dim db As DAO.Database
 Dim Nombrebasedatos As String
 Nombrebasedatos = "C:\twpac\datos.mdb"
 Set AccInstanciaAccess = New Access.Application
 AccInstanciaAccess.Visible = True
 Set db = AccInstanciaAccess.DBEngine.OpenDatabase(Nombrebasedatos, False, False, ";PWD=330086")
 AccInstanciaAccess.OpenCurrentDatabase Nombrebasedatos
 db.Close
 Set db = Nothing
End Function

'-----------------------------------------
 
Function AbrirBasedatosXP()
 'Access XP
 Dim Dbs As Database
 Dim AccInstanciaAccess As Access.Application
 Set AccInstanciaAccess = New Access.Application
 AccInstanciaAccess.OpenCurrentDatabase "C:\Twpac\datos.mdb", False, "330086"
 AccInstanciaAccess.Visible = True
 Set Dbs = AccInstanciaAccess.CurrentDb
 
 'opero con la MDB
End Function

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)