Ms access 使用安全工作组文件编写访问access文件的脚本
我正在尝试编写访问access数据库的脚本,以便在命令行上使用。Access数据库由工作组文件保护Ms access 使用安全工作组文件编写访问access文件的脚本,ms-access,Ms Access,我正在尝试编写访问access数据库的脚本,以便在命令行上使用。Access数据库由工作组文件保护 Dim oApp, sWGF,myWS Set sApp = CreateObject("Access.Application") set sWGF = "C:\Users\Alan\Documents\Secured.mdw" oApp.DBEngine.SystemDb = sWGF WScript.echo "Workgroup " & sWGF WScript.echo "Syst
Dim oApp, sWGF,myWS
Set sApp = CreateObject("Access.Application")
set sWGF = "C:\Users\Alan\Documents\Secured.mdw"
oApp.DBEngine.SystemDb = sWGF
WScript.echo "Workgroup " & sWGF
WScript.echo "SystemDb " & oApp.DBEngine.SystemDb
Set myWS = oApp.DBEngine.CreateWorkspace("New","Name","Password")
此代码输出工作组的Secured.mdw文件名,但将SystemDB的默认System.mdw文件名作为两个WScript.echo命令的输出。它还无法创建工作区,说明名称和密码错误(尽管它们对于Secured.mdw文件是正确的)
网络上其他地方有很多参考资料说,你只能在应用程序中作为第一件事来做这件事,但这就是我正在做的
我不确定我做错了什么。有什么想法吗?sApp和oApp是一回事吗?你混淆了变量。我认为你应该直接使用DAO和Jet,而不是自动访问
Dim objEngine
Dim strWorgroup
dim wrkWorkspace
Dim db
Set objEngine = CreateObject("DAO.DBEngine.36")
objEngine.SystemDB = "C:\Users\Alan\Documents\Secured.mdw"
Set wrkWorkspace = objEngine.CreateWorkspace("", "Name", "Password")
Set db = wrkWorkspace.OpenDatabase("C:\MyDatabase.mdb")
这将绕过Access本身,直接使用Jet数据库引擎,这对我来说似乎更简单
在测试这一点时,我设置SystemDB也有一些困难,但事实证明,我只需要确保提供了一个有效的SystemDB供使用。我尝试的第一个非默认版本不起作用,但当我复制默认版本并使用它时,它起作用了
因此,我想看看您的工作组文件是否有正确的文件名/路径,它是否是Jet的正确版本,以及您是否有适当的NTFS权限来打开它。对“我设置SystemDB也有一些困难”的补充:
这对我很有用:
Set objEngine=CreateObject(“DAO.PrivateDBEngine.36”)
不,我手动输入了另一台机器上的代码——这是一个很好的打字错误,解决了这个问题。我使用应用程序对象的原因是,我试图使用()中显示的脚本,但使用DAO打开数据库,然后在打开时使用应用程序对象打开CurrentDatabase()工作(而它没有使用原始脚本)。我还得检查其余的工作,但我想我在路上。