以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于 根据条件复制上一行记录内容疑问 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=7488) |
||||
-- 作者:卟离卟弃 -- 发布时间:2010/6/30 11:44:00 -- 关于 根据条件复制上一行记录内容疑问
表中,DataColChanged 事件代码如下 Select Case e.DataCol.Name
疑问:两人同时操作时,会不会有复制错误的可能? 假设:A操作者正在输入 第1行,此时 _Identify = 1 B操作者正在输入 第2行,此时 _Identify = 2
当 A 在 “是否有管理责任" 列中输入 "是”,执行上面命令。新增一行。_Identify = 3 ,,,,drs(n-1) 不是等于2了吗?? 我的理解是 复制的数据就不是A操作者的了。而是B操作者的数据了。。 怎么样解决这种问题的出现?
[此贴子已经被作者于2010-6-30 12:06:36编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/6/30 11:49:00 -- 实际测试就知道了 |
||||
-- 作者:卟离卟弃 -- 发布时间:2010/6/30 17:16:00 -- 狐爸,请看图
表中已有一条记录。 现在输入第二条记录,当我在 [是否有管理责任] 列中选择 是 。 希望得到的结果是:表格自动新增加一行。 新增行中,姓名 = 上一行的 直接上司 工作内容 = 上一行的 姓名 & 工作内容 失职扣分 = 上一行的 失职扣分 * 上司职责比例 现在文件中的代码是错误的。 在 [是否有管理责任] 列中选择 是 以后。得到的结果是 所有的行都重新计算了。。。
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/6/30 17:18:00 -- 用DataRowAdding事件 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/6/30 17:22:00 -- 或者:
Select Case e.DataCol.Name Dim dr1 As Row = Tables("表A").rows(Tables("表A").Rows.Count -1)
其实问题就是简化为:如何获得最后一行和新增加的行。 [此贴子已经被作者于2010-6-30 17:24:21编辑过]
|
||||
-- 作者:卟离卟弃 -- 发布时间:2010/6/30 17:55:00 -- 谢谢狐爸! |
||||
-- 作者:卟离卟弃 -- 发布时间:2010/7/2 20:04:00 -- 狐爸。5楼已经实现了复制上一行的功能。 还有一个问题请麻烦您一下。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/7/3 6:45:00 -- 这个功能应该用AfterEdit事件。 |
||||
-- 作者:卟离卟弃 -- 发布时间:2010/7/3 8:38:00 -- 在DataColChanged 事件中。输入此代码,可实现这功能。 多增加一个,,记录列 记录跟踪编码
case “失职扣分”
这样,同 AfterEdit事件 比起来,应该差不多吧,有没有什么逻辑上的错误? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2010/7/3 8:44:00 -- 不懂你的意思,你不是修改某行后,自动更新其后的一行吗?你这好像是更新其后所有的行,而且这些行的失职扣分列内容将完全相同。 这个应该你根据自己的需要编写调试代码,有问题再提问,因为只有你自己明白自己的需要。 |