Vb.net 在VB2010中打开密码保护的Access 2010数据库
我需要从VB2010应用程序打开密码保护的Access 2010数据库。连接在没有密码的情况下工作正常,因此我知道我已正确设置了所有其他参数。但是,当我将密码添加到连接字符串时,会出现一个错误,“多步骤OLE DB操作生成错误。请检查每个OLE DB状态值(如果可用)。未完成任何工作。”我知道密码是正确的,因为在Access中直接打开数据库时,当我将其复制并粘贴到“密码”对话框中时,密码会起作用Vb.net 在VB2010中打开密码保护的Access 2010数据库,vb.net,passwords,ms-access-2010,Vb.net,Passwords,Ms Access 2010,我需要从VB2010应用程序打开密码保护的Access 2010数据库。连接在没有密码的情况下工作正常,因此我知道我已正确设置了所有其他参数。但是,当我将密码添加到连接字符串时,会出现一个错误,“多步骤OLE DB操作生成错误。请检查每个OLE DB状态值(如果可用)。未完成任何工作。”我知道密码是正确的,因为在Access中直接打开数据库时,当我将其复制并粘贴到“密码”对话框中时,密码会起作用 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\m
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;
Jet OLEDB:Database Password=MyDbPassword;
这是我使用的代码。错误发生在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)
发件人:
我使用的方法实际上非常简单:
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
希望这有帮助我认为这是Access 2010中的一个缺陷: 引述: 对于数据库密码,这是您在 使用密码保护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)
在这个问题上工作了一段时间。所有的线索都在上面提到过,但必须把它们结合在一起 在文件-选项-客户端设置(滚动至底部)下 默认打开模式=共享 默认记录锁定=无锁定 加密方法=使用旧版 取消加密并重新加密数据库
.Provider = "Microsoft.ACE.OLEDB.12.0;"
.ConnectionString = "Data Source=c:\dt\GenericDetail.accdb;Jet OLEDB:Database Password='ThePassword';"
.Open
参考: