问题标签 [beforeupdate]

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 投票
2 回答
253 浏览

ruby-on-rails - 使用 before_validation 回调更改关联模型

我正在为如何正确实现 Rails 回调而苦苦挣扎:

我有一个模型 X(具有属性 A、B 和 C)与模型 Y 具有 has_many 关系(具有属性 C、D 和 E - 即都具有属性 C)。我在 X 上有一个模型验证,指出所有关联模型 Y 的属性 C 必须与模型 X 的属性匹配。

因此,在更新模型 X 期间修改 C 属性时,我使用了“before_validation, on :update”回调来首先更改所有关联 Y 模型上的 C 值以匹配模型 X 上更新后的 C 值。这允许模型 X 进行验证和更新。但是,关联模型 Y 上修改后的 C 值不会在模型 X 重新加载时保持不变并恢复到其原始值。

那么我是否还需要一个“after_save”回调来“锁定”模型 Y 的更改?还是我应该使用不同的方法来做这种事情?

- - - 更新 - - - - - -

我想我可能错误地保存到数据库中:

我的回调代码

0 投票
2 回答
946 浏览

vba - 如何在 Access 2007 中通过 VBA 设置更新前属性

Form.SourceObject我有一个根据用户输入更改其记录源 ( ) 的子表单。我正在开发一个更改跟踪系统,该系统依赖于Before Update子表单中某些字段的属性(如果有区别,则在工作表视图中)。如果我不更改记录源,Before Update则会适当地触发。如果我确实更改了它,它就会丢失,我需要重新分配触发器。问题是,我找不到任何描述如何做到这一点的东西。我尝试使用以下代码,其中“Tracker”是要调用的代码:

错误 2455 = “您输入的表达式对属性 BeforeUpdate 的引用无效”

错误 2455 = “您输入的表达式对属性 BeforeUpdate 的引用无效”

编译错误 = 预期函数或变量

错误 438 = “对象不支持此属性或方法”

编辑-

在玩了更多之后,我可以BeforeUpdate正确地将属性分配给表单中的控件,假设存在相应的更新前事件:

不幸的是,这种方法仍然与子表单失败......

我开始认为我正在更改的事实Form.SourceObject是阻止我设置属性的原因。

0 投票
1 回答
395 浏览

vba - 在 Access 2007 中更改子窗体的 SourceObject 时失去更改属性的能力

我有一个子表单,它通过使用Me.SubForm.SourceObject = Query.SomeQuery. 似乎这样做,我失去了设置BeforeUpdate属性的能力。

我正在使用的代码如下:

我已经确认这在SubForm.SourceObject更改之前有效,但之后会引发以下错误:RTE 2455“您输入的表达式对属性 BeforeUpdate 的引用无效。”

我想知道这是否是一个已知问题,或者我是否只需要修改我的代码来调整。

0 投票
2 回答
2346 浏览

vba - 如何在 Access 2007 中检测哪些控件触发了更新前事件

我有一个审计跟踪,它使用BeforeUpdate事件来跟踪使用以下代码对子表单所做的更改:

我遇到的问题是用户进行了两次更改,我的更改历史记录表中记录了三件事-第一次更改记录两次,第二次更改记录一次(只要用户从不离开,这种趋势就会持续记录)。我想要做的是能够识别触发BeforeUpdate事件的控件并将其传递给上面的代码,以便它可以检查是否只有触发BeforeUpdate事件的控件不同并跳过已经记录的其他控件。或者,有没有办法阻止 Access 将记录的更改视为新更改?

0 投票
2 回答
2412 浏览

ms-access - MS Access 2010 - 提示用户保存更改

我已经开发了一个表单,我想在用户离开修改后的记录之前提示他们保存更改。

如果用户试图离开,我希望出现一个提示,询问他们是否希望保存更改,他们可以选择“是”或“否”。

我已被告知该Before Update事件是我需要关注的事件,但我不断收到“您输入的更新前的表达式,因为事件属性设置产生了以下错误”消息。

这些是我在遇到错误之前采取的步骤:

  1. 将视图更改为表单视图
  2. 通过表格在记录中的任何地方进行更改
  3. 尝试通过我放入表单中的导航按钮导航离开表单(如果没有进行任何更改,它工作得很好,但如果进行了单个更改,则无法执行任何操作)
  4. 什么都没有发生,所以我恢复到设计视图,收到以下错误通知

错误通知

  1. 我按确定,然后收到此消息:

错误信息 2

然后我回到一号广场。

此外,自从出现此问题以来,任何条件格式都已完全停止工作;我不确定这两者是否有联系,但认为值得一提。

任何想法如何实现这一点(理想情况下没有错误)?不幸的是,我无法发布我的系统,因为它处理高度机密的数据。

更新:

我尝试了各种我修改过的代码,但都无济于事。目前,我已经完全删除了任何这样的代码,但我过去尝试过的代码是这样的:

0 投票
0 回答
154 浏览

grails - beforeUpdate 中的 DirtyPropertyNames 方法只返回版本

我在使用dirtyPropertyNames 方法时遇到问题。

我正在使用 grails 2.1.3 版。下面的方法总是打印版本并且没有其他更改的字符串属性。

有人熟悉这个问题吗?

0 投票
2 回答
1167 浏览

ruby-on-rails - Rails 阻止更新模型中的某些值

在我的应用程序中,我note.rb使用了如下所示的架构。我想要做的是限制编辑笔记的能力。基本上,如果笔记是在过去 24 小时内创建的,则允许您更新任何您想要的内容。24小时后,你所能做的就是改变remind_at时间。我在note.rb文件中有一个方法可以检查注释是否可编辑。如果是我显示不同的部分。但这仅限制了前端,如果有人打开编辑窗口或输入 URL,他们仍然可以在 24 小时后编辑注释。

我正在尝试做的是编写一个before_update方法来检查您是否被允许更新body笔记。不管什么你都可以更新remind_at时间。部分问题在于控制器知道这是否只是对remind_at时间的更改的方式是通过params[:reschedule]并且params在模型中无法访问。

0 投票
1 回答
510 浏览

triggers - 在 oracle 11g 中具有引用完整性的更新触发器之前

我想了解触发器中更新前的含义。

我有一个名为DEPT_MSTwhere DEPT_IDis the primary key 的表。它有 2 行,DEPT_ID1 和 2。

另一个表EMP有列EMP_ID作为主键,它是表EMP_DEPT_ID的外键引用。DEPT_IDDEPT

EMP现在,如果我在表列上添加更新前触发器EMP_DEPT_ID,它将检查EMP_DEPT_ID主表中是否存在新值,DEPT如果现在将插入新行和DEPT_ID表中的新行DEPT

现在,如果我更新EMP_DEPT_ID到 3 其中表中EMP_DEPT_ID的 2EMP给出完整性约束违规错误父未找到。

所以,

  1. 这是否意味着Oracle首先检查完整性约束,然后调用“更新前”触发器?
  2. 那么我们如何绕过这个检查并在更新触发器之前调用呢?
  3. 这里的“更新前”到底是什么意思?
  4. 如何通过使用触发器而不是使用显式 PL SQL 块来实现上述结果?

谢谢

0 投票
1 回答
134 浏览

xpath - X 路径表达式同时使用 substring-before 和以 used 开头

我需要 xpath 表达式,我需要检查条件是否为真。我有一个值(学生/分数/等级)= 7077634943*#*# Test1 的字段。首先我需要查找该字段是否具有像“ ## ”这样的值,然后我需要前面加上“ ## *”,然后检查结果是否以值“7”开头,如果条件满足,那么它应该返回 true 否则错误的。

请提供您的宝贵意见,如果您不理解问题,请告诉我。

0 投票
1 回答
2695 浏览

excel - Excel VBA:组合框的之前,之后或更改事件自动更新另一个?

在我的用户表单上,我有几个组合框:承包商、产品、类别、单位。所有这些都填充了来自 MS SQL 数据库(2012)的数据,然后用户表单执行存储过程并插入新记录。我想构建一个动态表单,其中组合框会根据先前组合框的选择自动更新。

当从列表中选择承包商时,我希望产品列表缩小并仅显示与承包商链接的产品(使用 SELECT 语句)。然后我希望根据选择的产品自动填写类别和单位。当然,例如当输入新产品时,将显示类别和单元组合框中的完整列表,因此这将需要 if 语句。

我的问题是使用哪个事件?在更新或更改事件之前,之后?或者也许还有其他选择可以做到这一点?

我对这些事件做了一些阅读,似乎更改事件不是一个好的选择:“避免创建两个或多个具有相互影响的更改事件的控件 - 例如,两个相互更新的文本框”但我是感觉差异不够好,因为我还没有在活动之前/之后使用过。如果到目前为止我所做的任何代码可能相关,请告诉我,我将编辑帖子。

感谢您的任何建议。