如题.我先创建Access.application 对象,可以打开不带密码的mdb文件.但却不知道如何打开带密码的mdb文件.注意:我问的不是数据库连接字符串的问题.我最终的目的是想执行已经在mdb文件中创建的VBA宏函数.不是打开数据表.谢谢.

解决方案 »

  1.   

    Adodc1.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data source =" & App.Path & "/数据库.mdb;Persist Security Info=False;Jet OLEDB:Database Password=密码 "
      

  2.   

    都说啦,我问的不是数据库连接字符串的问题.难道Access.application对象不提供这种方法?不可能的啊,Word.application之类的都提供 .Password方法啊。为什么Access.Application不支持??
      

  3.   

    全部显示OpenCurrentDatabase 方法
    参阅应用于示例特性使用 OpenCurrentDatabase 方法可以打开一个已有 Microsoft Access 数据库 (.mdb) 作为当前的数据库。expression.OpenCurrentDatabase(filepath, Exclusive, bstrPassword)
    expression      必需。返回“应用于”列表中的一个对象的表达式。filepath     必需 String 型。字符串表达式,表示已有数据库文件的名称,包括路径名和文件名扩展。如果网络支持,也可以按以下形式指定网络路径:\\Server\Share\Folder\Filename
    注释   如果没有提供文件名扩展名,则将 .mdb 追加到文件名后。
    Exclusive     可选 Boolean 值。指定是否以独占 方式打开数据库。默认值是 False,该值指定以共享方式打开数据库。bstrPassword     可选 String。打开指定数据库的密码。说明
    使用该方法可以从另一个应用程序中打开数据库,该应用程序通过自动化(以前称为 OLE 自动化)控制 Microsoft Access。例如,可以使用 OpenCurrentDatabase 方法从 Microsoft Excel 中打开 Microsoft Access 窗口中的罗斯文示例数据库。一旦通过另一个应用程序创建了 Microsoft Access 实例,则也必需创建新的数据库或指定要打开的特殊数据库。该数据库是在 Microsoft Access 窗口中打开的。
    注释  使用 OpenAccessProject 方法打开一个已有 Microsoft Access 项目 (.adp) 作为当前的数据库。
    在 Microsoft Access 窗口中,如果已经打开一个数据库又希望打开另一个数据库,在打开另一个数据库以前,可以使用 CloseCurrentDatabase 方法关闭第一个数据库。将 Exclusive 参数设为 True 可以以独占方式打开数据库。如果忽略该参数,数据库将以共享方式打开。
    注释  请不要将 OpenCurrentDatabase 方法与 ActiveX 数据对象 (ADO) 的 Open 方法或数据访问对象 (DAO) 的 OpenDatabase 方法混淆。OpenCurrentDatabase 方法在 Microsoft Access 窗口中打开数据库。ADO 的 Open 方法返回 Connection 对象变量,而 DAO 的 OpenDatabase 方法返回 Database 对象变量。两者均代表一个特定的数据库,但都不在 Microsoft Access 窗口中实际打开数据库。
    示例
    下面的示例通过“自动化”从其他应用程序中打开一个 Microsoft Access 数据库,然后打开一个数据库中的窗体。可以在任何一个可以用作 COM 组件的应用程序的 Visual Basic 模块中输入这段代码。例如,可以从 Microsoft Excel、Microsoft Visual Basic 或 Microsoft Access 中运行下列代码。当指向 Application 对象的变量超出范围时,它所表示的 Microsoft Access 实例也将关闭。所以,必须在模块级声明这个变量。' Include the following in Declarations section of module.
    Dim appAccess As Access.ApplicationSub DisplayForm()    Dim strDB as String    ' Initialize string to database path.
        Const strConPathToSamples = "C:\Program " _
            & "Files\Microsoft Office\Office11\Samples\"    strDB = strConPathToSamples & "Northwind.mdb"
        ' Create new instance of Microsoft Access.
        Set appAccess = _
            CreateObject("Access.Application")
        ' Open database in Microsoft Access window.
        appAccess.OpenCurrentDatabase strDB
        ' Open Orders form.
        appAccess.DoCmd.OpenForm "Orders"
    End Sub
      

  4.   

    expression.OpenCurrentDatabase(filepath, Exclusive, bstrPassword)奇怪,为什么我看的帮助只显示filepath, Exclusive两个参数,而没有第三个密码参数呢?我在vb中使用OpenCurrentDatabase方法的时候,IDE显示的参数也只有filepath和Exclusive.
      

  5.   

    我试了不行啊。OpenCurrentDatabase 只有 filepath, Exclusive 两个参数啊??你的回复和MSDN几乎一样,就是参数多了个密码。-----------------------------------------------------------------难道没有办法解决吗??