MS Access 的新管理员,如何修改现有宏

Posted

技术标签:

【中文标题】MS Access 的新管理员,如何修改现有宏【英文标题】:New admin for MS Access, how to modify existing macro 【发布时间】:2012-12-03 06:26:26 【问题描述】:

我是 MS 访问数据库的新管理员。我对 MS Access 很陌生,所以如果我在这里问一些没有意义的问题,请原谅我......

当前员工的桌面上有一个小的(5MB 左右).mdb 文件。单击该文件将打开访问并在访问左侧列出查询。我已将此文件复制到我的笔记本电脑上,以便开始工作/维护数据库。但是,单击任何查询都会产生错误(副加载/运行),基本上表示无法找到网络位置(文件)。

他们桌面上的 .mdb 文件包含通过网络共享加载主 .mdb 文件(33MB 大得多)的宏。然而,当我从桌面打开这个 .mdb 文件并通过宏选项卡查看宏时,我看不到任何尝试从网络共享加载 .mdb 文件的宏。此外,一些宏失败。特别是尝试通过网络共享加载主 .mdb 文件。我的桌面上有主 .mdb 文件,除其他外,我想更改该宏以指向本地副本与宏指向的网络副本。在这种性质的 .mdb 文件中查看所有宏以根据需要进行修改的最佳方式是什么?

编辑:

我还应该提到,我的笔记本电脑上有一个新版本的 Access (2010)。其他人都在使用 2003。不幸的是,由于公司政策,我无法在笔记本电脑上安装旧版本。由于人们经常使用数据库,我理想情况下需要修改运行 2010 年的笔记本电脑上的 .mdb 文件...

【问题讨论】:

您是否看过其中一位员工向您展示他们正在运行的“宏”?您是否查看了网络共享以查看那里有什么 mdb 文件,据说该文件已加载? 我知道文件在哪里(映射驱动器和位置),除非我单击左侧的查询,否则我看不到它在任何地方引用... 因为Stack Overflow 上的这个特定的与编程相关的 问题比Database Administrators 上的问题更有可能取得成功,所以我把你的问题推到了那里。我们都是为了得到最好的关注问题,不幸的是,这个网站迎合了那些必须将整个服务器用于数据库的人,而不是真正适合我 10 岁的 USB 密钥的那种...... :-\ 所以离开你去Stack Overflow 和更好的眼球来解决你的麻烦。 【参考方案1】:

我怀疑您遇到了宏或 VBA 问题。

更有可能的是,您在屏幕左侧看到的表格实际上是“附加”表格,它们驻留在网络上的其他数据库中。

如果是这种情况,每个表名左侧的图标都会有一个小箭头。

您说您现在在 PC 上本地拥有较大数据库的副本,因此您需要做的是转到较小的数据库,并在“外部数据”下选择“链接表管理器”。

选择所有显示它们附加到较大数据库的服务器版本的表,选择“始终提示新位置”并单击“确定”。

您将获得一个“打开文件对话框”,让您可以浏览到较大数据库的本地副本。只需单击该文件名,然后单击“确定”或“完成”或任何表示您已完成的按钮。

【讨论】:

当我尝试单击“链接表管理器”时,它说向导未安装或处于错误状态。我应该注意,当我尝试打开较小的 .mdb 文件时,access 和 Visual Basic for Applications Tool 都打开了。 VB 窗口也抛出一个编译错误,说它找不到 TableDef。我假设它找不到网络数据库?我还应该提到我的笔记本电脑上有一个新版本的 Access(2010),其他人都在使用 2003.... 这听起来像是 VBA 项目中缺少参考。尝试打开 VBA 编辑器 (Alt-F11),转到工具 -> 参考,看看是否有任何缺失的参考。 嗯,工具->参考是灰色的!应该这样吗?另外,我无法自己打开 VBA 编辑器。每当我尝试打开有问题的 mbd 文件时,VBA 编辑器都会自动出现编译错误。 啊,我终于得到了工具菜单。我必须打开所有东西,让它出错,关闭 VBA 编辑器,然后重新打开它。现在,我怎么知道这个列表中缺少参考? 如果您上下滚动参考列表,它应该在参考之前显示“MISSING:”。有关一些示例图像,请参阅cpearson.com/excel/missingreferences.aspx。我还会寻找导致 Access 2010 出现问题的参考资料,例如使用通用对话框的日历对象等。【参考方案2】:

将 Access 应用程序拆分为前端(代码、表单等)和后端(数据)是很常见的。然后将后端表链接到前端。这可以在运行时完成。

当您说宏时,您是指宏还是代码模块?如果您指的是宏,它们将列在数据库窗口中的宏下,如果您指的是代码,您可能会看到列出的模块,您可以打开和修改这些模块。查找链接表的代码的好地方是 autoexec 宏或启动表单。

【讨论】:

我想知道它是否不是真正从后端“加载”数据,而只是附加了一个链接表。 @Beth 这当然是可能的,但 OP 确实提到涉及宏。 是的,但这可能是 autoexec 宏和 OP,对于 Access 来说是新手,可能会误解正在发生的事情

以上是关于MS Access 的新管理员,如何修改现有宏的主要内容,如果未能解决你的问题,请参考以下文章

Access 2013:我可以使用数据宏触发 MS SQL SP 而不延迟 Access 中的执行吗?

在 MS Access 中将宏从 .accdb 保留到 .mdb

如何从 C# 调用 MS Access 数据库宏

使用 MS Access SQL 查询创建与现有表具有一对一关系的第二个表

如何使用 MS Access 管理“发布”

MS Access 事件驱动数据宏更新表(示例)