【问题标题】:How to start Access from Commandline in regular mode如何以常规模式从命令行启动 Access
【发布时间】:2015-11-24 08:34:49
【问题描述】:

我有一个更新例程,其中涉及在夜间运行的各种不同程序。这些过程都存储在一个 excel 文件中,该文件使用命令行按需要的顺序调用它们。

现在我需要添加一个要包含的 Access 数据库文件。我可以打开 Access 数据库和我想要的文件,但只能在“只读”模式下。它也无法识别我正在调用的宏。

我的命令行如下所示:

MSACCESS.EXE /ro "W:\Mandate.accdb" /x AutoRunProcess

问题 1:如何在常规模式下打开访问文件? 我研究了一下这个主题并查看了 Microsoft 的文档,但没有找到有关如何打开数据库的信息,所以你可以运行更新并再次保存。提供的示例仅用于以“只读”模式打开source

问题 2:找不到宏 虽然我当前的代码打开了正确的访问数据库文件,但它说找不到宏。但是,如果我手动启动,宏运行良好。

任何指针或帮助表示赞赏。

【问题讨论】:

  • 不确定我是否遗漏了什么,但要以只读方式打开数据库,不要指定/ro开关.只读也可能导致不运行宏。
  • "/ro" 代表“只读”。去搞清楚。我把它拿出来了。只读问题解决了。谢谢你!宏仍然没有运行。
  • 我也试过用这样的模块名称引用宏:modAutoRun.AutoRunProcess 不幸的是它没有任何区别。
  • 也测试无济于事:MSACCESS.EXE "W:\Mandate.accdb" /x "AutoRunProcess"
  • 问题似乎出在 Access 本身...它无法识别宏。我也不能让它从 AutoExec 运行。

标签: excel vba shell ms-access command-line


【解决方案1】:

问题 1:
以只读方式打开数据库,不要指定/ro 开关。 :)

问题 2:
一般建议是尽可能避免使用宏。一般来说,一个数据库应该有一个宏,即AutoExec

尽管通过快速测试 /x 开关对我有用,即使数据库有 AutoExec 宏。 AutoExec 先运行,然后是 /x 宏。

另一种选择是/cmd 开关。您使用 Command() 函数传递您在 AutoExec 函数中读取的字符串。

Select Case Command()
    Case "AutoRunProcess": Call MyProcess
    Case "SomethingElse": Call AnotherFunction
    Case "": ' nothing was passed in /cmd
    Case Else: MsgBox "Error in command-line: " & Command()
End Select

【讨论】:

  • 我也尝试了/cmd 开关,但它对我也不起作用。我刚刚找到了一个解决方案......这是AutoExec。我花了一点时间才知道这需要是一个函数。可能这也可能是命令行的错误。还没有尝试过这种变化。感谢您的帮助!
猜你喜欢
  • 2011-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-29
  • 2015-10-04
  • 2013-02-04
  • 1970-01-01
  • 2014-06-08
相关资源
最近更新 更多