【问题标题】:Open password-protected Access 2010 database in VB2010在 VB2010 中打开受密码保护的 Access 2010 数据库
【发布时间】:2014-10-02 14:07:58
【问题描述】:

我需要从 VB2010 应用程序打开受密码保护的 Access 2010 数据库。无需密码即可正常连接,因此我知道我已正确设置所有其他参数。但是当我将密码添加到连接字符串时,我收到一个错误,“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。”我知道密码是正确的,因为当我直接在 Access 中打开数据库时,将其复制并粘贴到密码对话框中时它会起作用。

这是我使用的代码。错误发生在adapter.fill命令:

    Dim conn As OleDbConnection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" +
            "Data Source=" + Application.StartupPath + "\MyData.accdb;Jet OLEDB:Database Password=MyPassword;")

    Dim command As OleDbCommand = New OleDbCommand()
    command.Connection = conn
    command.CommandText = "SELECT * FROM MyTable"

    Dim table As DataTable = New DataTable()

    Dim adapter As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(command)

    adapter.Fill(table)

【问题讨论】:

    标签: vb.net passwords ms-access-2010


    【解决方案1】:

    我认为这是 Access 2010 中的一个错误:https://www.connectionstrings.com/access-2010/

    引用:

    With database password 这是连接字符串,当你 使用密码保护 Access 2007 - 2013 数据库 Access中的“设置数据库密码”功能。

    Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
    Jet OLEDB:Database Password=MyDbPassword; 
    

    一些关于密码长度超过 14 个字符的问题的报告。还有一些字符 可能会造成麻烦。如果您遇到问题,请尝试更改密码 换成普通字符的短的。

    注意!报道称,一个 使用 Access 2010 - 2013 默认加密方案加密的数据库 不适用于此连接字符串。在访问中;尝试选项和 请选择 2007 加密方法。那应该使它起作用。我们的确是 不知道任何其他解决方案。如有其他解决方案请联系 可用!

    另外,作为提示,你不需要说

    Dim conn As OleDbConnection = New OleDbConnection("Connection String")
    

    你可以这样做

    Dim conn As New OleDbConnection("Connection String)
    

    【讨论】:

      【解决方案2】:

      发件人:https://stackoverflow.com/posts/22485495/edit

      我以前做的方法其实很简单:

      Set db = CurrentDb
      Set dblink = DBEngine.OpenDatabase(strDbFile, False, False, ";PWD=" & strP)
      
      For Each strTable In strLinkedTablesArray
           DoCmd.TransferDatabase acLink, "Microsoft Access", dblink.name, acTable, _
               strTable, strTable
      Next
      

      希望有帮助

      【讨论】:

        【解决方案3】:

        在这个问题上工作了一段时间。所有线索都在上面提到了,但必须将它们全部合并在一起......

        在文件 - 选项 - 客户端设置下(滚动到底部)...

        默认打开模式 = 共享

        默认记录锁定 = 无锁定

        加密方法 = 使用旧版

        解密并重新加密数据库

            .Provider = "Microsoft.ACE.OLEDB.12.0;"
            .ConnectionString = "Data Source=c:\dt\GenericDetail.accdb;Jet OLEDB:Database Password='ThePassword';"
            .Open
        

        参考:https://social.msdn.microsoft.com/Forums/en-US/210e52e6-cae7-4312-a08a-20c3e50bc17d/ace-oledb120-excel-password-protected-access-trouble?forum=adodotnetdataproviders

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多