我正在尝试创建一个夜间任务,它将我的 SQL Server 数据库作为“夜间快照”下载到 MSAccess 2010 中,到目前为止,我已经开始工作了。
我创建了一个空白数据库,里面有宏,可以执行导入,然后正常退出。它在我的用户名下运行良好:
@echo off
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b)
set dest=c:\temp\%mydate%-RAVEN.accdb
xcopy BLANK_RAVEN_WITH_MACROS.accdb %dest%* /Y
start "C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE" %dest% /X IMPORT_RAVEN
但是,当我以 SYSTEM 用户身份运行任务时(注意——我不应该以我自己的用户名运行任务)没有任何反应。
郑重声明,SYSTEM 用户确实有权 Access 我的其他数据库,并且 SYSTEM 帐户可以将 MS Access 空白文件复制到目标位置。然而,Access 没有任何反应。我只是看到 MSAccess 无限期地作为 SYSTEM 在后台运行。它永远不会退出
如何通过 SYSTEM 用户帐户运行 MSAccess 和运行宏?
最佳答案
Microsoft Access 应用程序 (MSACCESS.EXE) 设计为由“真实”用户运行,因此它可能对其执行环境做出一些假设。其中一个假设可能是运行它的帐户具有可以存储和检索程序设置的标准位置,例如文件系统中的 %USERPROFILE% 和注册表中的 HKEY_CURRENT_USER。如果在 SYSTEM 等帐户下运行时这些位置不可用,则 MSACCESS.EXE 可能会挂起。
如果可能,请创建一个具有最低必要权限的帐户,并在该帐户下运行您的计划任务。
关于sql-server - 将数据库备份到 MS Access 的夜间任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35005238/