Office中国论坛/Access中国论坛

标题: 怎样在子窗体某项被动获得数据后能够运行它自身的事件代码 [打印本页]

作者: wang1950317    时间: 2008-10-30 15:46
标题: 怎样在子窗体某项被动获得数据后能够运行它自身的事件代码
各位老师:窗体中有意文本框[Text0],更新后将值赋给 子窗体中的[项目]:
Private Sub Text0_AfterUpdate()
Dim stSql As String
stSql = "UPDATE 表1 SET 项目 = '" & Text0 & "'"
CurrentDb.Execute stSql
Me.子窗体.Requery
End Sub

我的问题是,怎样使子窗体[项目]得到窗体[Text0]的赋值后自动运行[项目]更新后的代码:

Private Sub 项目_AfterUpdate()
Me.标准 = DLookup("标准", "表2", "项目='" & [项目] & "' And 二级条件='" & [二级条件] & "'")
  End Sub  
这是一个连续运行问题,如控件均在窗体有老师指点加一句 Call 控件名_AfterUpdate   
但获得数据的控件在子窗体,就不知能否实现,如能实现请各位老师指教代码如何写?
谢谢!请看附件
作者: andymark    时间: 2008-10-30 16:11
把最终结果贴出来
作者: wang1950317    时间: 2008-10-30 20:07
请andymark老师看附件。
谢谢!
作者: wang1950317    时间: 2008-10-31 18:56
看到andymark老师在线,顶到首页!
作者: wang1950317    时间: 2008-11-1 19:50
再顶一下!
作者: wang1950317    时间: 2008-11-4 11:05
顶!各位大师:是否无解?
作者: kangking    时间: 2008-11-4 13:27
一点建议:你在更新后事件中有下面的代码,
stSql = "UPDATE 表1 SET 项目 = '" & Text0 & "'"
CurrentDb.Execute stSql
你为什么不能一次将其它的字段也更新呢?
作者: andymark    时间: 2008-11-4 13:44
还是没看明你需要的结果
作者: yttzm    时间: 2008-11-4 13:48
顶一下。
作者: wang1950317    时间: 2008-11-4 14:57
原帖由 kangking 于 2008-11-4 13:27 发表
一点建议:你在更新后事件中有下面的代码,
stSql = "UPDATE 表1 SET 项目 = '" & Text0 & "'"
CurrentDb.Execute stSql
你为什么不能一次将其它的字段也更新呢?


谢谢以上朋友的指点。也想一次完成,但不知代码怎样写?能再给指教吗?谢谢!
作者: wang1950317    时间: 2008-11-4 15:26
andymark老师您好:  是我说得不明白,现在再简化一下传上去。非常感谢!
作者: 5574916    时间: 2011-10-2 21:29
本帖最后由 5574916 于 2011-10-2 21:32 编辑

刚刚学了调用子窗体事件,顺便帮你完成以下

子窗体 '被调用的事件
Private Sub Text2_AfterUpdate()
Text3 = Text2 * 3
End Sub
改为
Public Sub Text2_AfterUpdate()
Text3 = Text2 * 3
End Sub

主窗体手动触发事件

Private Sub Text1_AfterUpdate()

Me.Text2 = Me.Text1 * 5
子窗体.Form.Text2 = Me.Text1 * 5
Call Text2_AfterUpdate   '加上这一句后 text2更新后的程序可连续运行
子窗体.Form.Text2 = Me.Text1 * 5

Form_子窗体.Text2_AfterUpdate ’这里就是运行前面调用的事件

End Sub

[attach]46834[/attach]

---------------------

本来是想解决子窗体(数据窗体每一条数据)如何批量联动的:(现在这个方法只能解决一条数据)
我想实现的是
例如主窗体有一个组合框,当选择件时,子窗体中的单位全部填入件,如果是打时就全为打。
[attach]46835[/attach]
实现代码:

stSql = "UPDATE 订单明细 SET 单位 = '" & Me.批量更改 & "'WHERE 订单明细.订单ID =" & Me![订单ID]
CurrentDb.Execute stSql

【问题是:】
同时,规格随之变动的条件要根据子窗体的 产品名称和单位 批量改动。

我在主窗体调用子窗体的单位更新后事件

Me!规格 = DLookup("[规格(件)]", "产品明细表", "[产品ID]=" & Me.产品ID)

但是这样只能更新一条记录,不知道有什么思路可以批量更改数据窗体的所有对应数据。
作者: wang1950317    时间: 2011-10-14 21:12
非常感谢5574916和zmt 两位老师指点。您们的方法都很好。谢谢!
作者: wang1950317    时间: 2012-12-27 11:58
非常感谢以上老师的指教,虽然有些晚!谢谢!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3