问题标签 [ms-access-data-macro]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
8675 浏览

ms-access - 如何导出 Access 2010 数据宏

我需要将 Access 数据宏从我的测试数据库传输到我的生产数据库。有人知道该怎么做吗?

我知道将表从一个 accdb 传输到另一个也会传输数据宏,但这不是我的选择。我也知道我可以在生产 accdb 中手动重新创建它们,但这让我容易出错,并且需要将生产数据库关闭比脚本传输场景更长的时间。

如果我只需要这样做一次,这没什么大不了的,但我需要在开发项目的过程中多次这样做。

我尝试将表导出到 xml,但不包括数据宏。

请注意,我在这里询问的是 Access 2010数据宏,而不是常规的 Access 宏。

0 投票
1 回答
14684 浏览

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

我已将一些数据从 Excel 导入 Access。现在我想编写一个类似于触发器的代码,每当我从 Excel 获取新数据时,它将更新另一个表。

我知道我无法在 Access 中编写触发器,所以我正在尝试使用数据宏。谁能帮助我如何使用数据宏来做到这一点?

0 投票
1 回答
1817 浏览

ms-access-2010 - 无法在 Access 2010 中编辑或重新保存现有的事件驱动数据宏

(这是对此处先前问题的回答的后续行动。)

我有一个 Access 2010 数据库文件,其中包含一个带有Before Change数据宏的表:

数据宏

我可以在数据表视图中打开表格并添加行,并且数据宏的行为与预期一样。但是,如果我在设计视图中打开表格,打开数据宏进行编辑,做一些琐碎的事情,比如单击宏步骤之一旁边的 [+] 以展开详细信息,然后尝试保存我得到的“更改”错误

'LookUpRecord' 宏操作的 'Look Up A Record In' 参数的值无效。

我还尝试在新的 Access 2010 中从头开始创建宏.accdb并得到相同的错误。我在三台不同的机器上对此进行了测试:两台运行 64 位 Access 2010 的机器和一台运行 32 位 Access 2010 的机器。所有机器都通过 Microsoft 更新进行了全面修补。(也就是说,它们当前运行的是 14.0.7106.5003 版本。)

在测试时,我注意到这似乎与事件驱动的数据宏有关,该数据宏试图用于在数据宏应用的同一个LookUpRecord上执行 SELECT 。在其他表上执行 SELECT似乎不会触发错误。

我的问题是:

  1. 任何人都可以使用 Access 2010 的修补版本重现此问题吗?

  2. 任何人都可以使用未打补丁的 Access 2010 版本(例如,从早期版本中全新安装)对此进行测试,以查看后续补丁是否改变某些内容?

  3. 有没有人看到任何文档或 Internet 聊天表明特定表的事件驱动数据宏应该(或不应该能够LookUpRecord通过对自身执行 SELECT 来执行?

编辑——2013-12-19 14:10 UTC:

我刚刚使用 Access 2010 SP1 (14.0.6023.1000) 对此进行了测试并得到了相同的结果。

0 投票
1 回答
200 浏览

xml - 用于验证 Access 数据宏的 XML 源代码的 XSD 文件

我在哪里可以找到 XSD 文件,我需要验证从 Access 2010 中的事件驱动数据宏(例如,“插入后”、“更新后”、“删除后”)复制代码时获得的 XML 或之后?

我通常在 Notepad++ 中编写 XML,然后将其粘贴到 Access 中,但如果我能先检查它是否正常,那就太好了。

0 投票
1 回答
388 浏览

ms-access-2010 - 为什么更改前数据宏中的 DLookup 有时会返回旧值?

我有一个大型关系 Access 2010 数据库。它是规范化的,并且包括一些非常慢的联合查询。因此,我认为我可以通过创建一些缓存字段来加快速度。例如在 tblOrder 我会创建一个 CustomerName 字段。为了维护这个缓存字段,我创建了一个更改前数据宏,它可以从 tblCustomer 中查找客户的公司名称。效果很好。然后我在 tblCustomer 中创建了一个 After Update 数据宏,因此当用户更改公司名称时,所有子记录都会自动更新。它起作用了,但随后触发了更改前数据宏,并且 dLookup 返回了旧的公司名称。任何帮助将不胜感激。

我使用 Northwing 数据库制作了我的问题示例。您可以在http://www.thetechmentors.com/freestuff/exerciseFiles/msAccess/DlookupDatamacroProblem.zip下载它的副本

0 投票
2 回答
1388 浏览

vba - 用于计算新记录中的字段的事件驱动数据宏 - MS Access

在 MS Access 2013 中,我有一个名为[Serials]的表,它仅包含 3 列:[ID][Hashed ID][Product Description]

[ID] 是增量整数自动编号和主键。[Hashed ID] 保存应用于 [ID] 的哈希函数的结果。最后,[产品描述] 保存用户输入(哈希函数作为公共函数存储在 VBA 模块中)。

我想做的是在 [Serials] 表中插入一行后自动计算字段 [Hashed ID]。

我想诀窍在于正确使用该表的事件驱动数据宏,但我只设法在已插入的行上使用“更改前”事件来完成这项工作(因此,在他们的 [ID] 字段?)。我迷路了!!!

0 投票
1 回答
1452 浏览

ms-access - 数据宏:如果 LookupRecord 未找到匹配项,则使用默认值

我一直在尝试在 Ms Access 中的一个表上设置一个数据宏,以添加一个“路径”并根据同一个表中的父记录增加一个级别。

Before Change,如果父节点不存在,则使用默认值。否则,将查找父级自己的路径和级别,并添加当前记录的父级值……嗯,这就是理论。

图:BeforeChange 数据宏

第一部分If确实有效,但是,我无法获得将Else值拉入或填充到当前记录中的条件。

我错过了什么还是应该全部完成After Insert/Update

0 投票
0 回答
115 浏览

ms-access-2013 - 为什么 DSUM 在命名数据宏中无法正常工作?

概括:

我正在尝试使用带有 DSUM 的命名数据宏来维护父记录的子记录总数。当我编辑子记录时,数据宏确实会更改父记录,但结果似乎是基于当前记录的旧值。

细节:

我有一个类似于 Microsoft 的 Northwind 数据库的数据库。可以在http://www.thetechmentors.com/freestuff/exerciseFiles/msAccess/DlookupDatamacroProblem2.zip找到一份副本。

它有 tblOrder 和 tblOrderDetail。tblOrder 有一个在 tblOrderDetail 的 After Update 数据宏中调用的命名数据宏。命名数据宏使用 DSUM("Ext Price","tblOrderDetail", "Order ID" & @OrderID)。数据宏运行,但结果似乎基于子记录的旧值。

我发现了一个解决方法。我没有使用 DSUM,而是使用了局部变量和“For Each Record In”循环来计算正确的总和。

虽然我的工作有效,但我仍然想知道为什么 DSUM 方法不起作用。非常感谢您提供的任何帮助。

0 投票
1 回答
903 浏览

ms-access-2013 - 使用数据宏在 Access Web App 中“合并”表

0 投票
1 回答
1534 浏览

ms-access - 从 Access 数据宏运行 SQL 查询

我正在尝试使用数据宏更新闭包表,每当将新记录插入主表时,都需要运行以下代码:

如您所见,可以使用嵌套循环执行此操作:

主表(tblNodes)和闭包表(tblClosure)都存储在后端数据库中,所以看起来数据宏应该能够做我想要的。

数据宏似乎也有函数Create Record (in...)For Each Record (in...)。但我根本无法让第二个开火。

这是我的代码(我已经定义temp_nodetemp_parent作为参数):

在此处输入图像描述