gpt4 book ai didi

ms-access - 是否可以使用VBA更改当前accdb/e数据库密码

转载 作者:行者123 更新时间:2023-12-02 22:51:08 25 4
gpt4 key购买 nike

我有一个个人数据库应用程序,最初是在 Access 2007 中使用 mdb 格式设计的。出于安全原因,我已将其转换为 .accdb。除更改数据库密码功能外,所有功能均转换良好。此功能是在 VBA 中完成的,因为 Db 已关闭所有工具栏。以 mdb 格式...这工作正常

DBPath = [CurrentProject].[FullName]

' Create connection string by using current password.
strOpenPwd = ";pwd=" & OldPswd

' Open database for exclusive access by using current password. To get
' exclusive access, you must set the Options argument to True.
Set dbsDB = OpenDatabase(Name:=DBPath, _
Options:=True, _
ReadOnly:=False, _
Connect:=strOpenPwd)

' Set or change password.
With dbsDB
.NewPassword OldPswd, Pswd2
.Close
End With

Me.DB_Pswd = Pswd2

Set dbsDB = Nothing

我从这个论坛中发现了一些与 .accdb 接近的东西,但它只适用于另一个 .accdb 文件,不适用于当前项目......

strAlterPassword = "ALTER DATABASE PASSWORD [" & NwPswd& "] [" & OldPswd & "];"

Set ADO_Cnnct = New adodb.Connection
With ADO_Cnnct
.Mode = adModeShareExclusive

.Provider = "Microsoft.ACE.OLEDB.12.0"
' Use old password to establish connection
.Properties("Jet OLEDB:Database Password") = OldPswd

'name current DB

DBPath = [CurrentProject].[FullName] <- this does not work: get a file already in use error

.Open "Data Source= " & DBPath & ";"
' Execute the SQL statement to change the password.
.Execute (strAlterPassword)
End With

'Clean up objects.
ADO_Cnnct.Close
Set ADO_Cnnct = Nothing

那么有没有办法在 VBA 中为 .accdb 文件执行此操作?基本上,它将自动执行工具栏功能的首次解密和使用新密码的加密。我知道工具栏可以做到这一点,所以我知道一定有一种 VBA 方法可以做到这一点。

最佳答案

我找到了解决这个问题的方法,或者只是一个解决方法。通过删除 ADO 库,第一种方法将适用于 .Accde 格式文件。它不适用于 .accdb 格式文件,但您无论如何都不想分发这些文件。

关于ms-access - 是否可以使用VBA更改当前accdb/e数据库密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com