Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

多值字段的value和oldvalue属性为何为空?如何跟踪?

proby  发表于:2008-09-02 16:34:40  
复制

你好!

    在一个窗体上,我用一个combo控件绑定了一个多值字段。 我想在该控件的 afterupdate事件处理中,跟踪显示一下一个多值字段的value与oldvalue,于是用了一个msgbox "旧值"&字段.oldvalue&"当前值"&字段.value 。但是,调试过程中提示类型不匹配,并且显示 两个的值都为NULL。不知为什么?

    我想在oldvalue更新至当前value前记录下oldvalue,以便撤销相应的更改。(我只要更改了控件,然后关闭窗体的话,这个oldvalue就已经更新至当前的编辑值了。所以,想用这种方法暂周全一下。 不知各位是否还有更好的方法? 在afterupdate事件处理中,oldvalue与当前的编辑值还是不同的,我用另一个单值字段跟踪了一下。)

    谢谢!

                    

 

 

Top
竹笛 发表于:2008-09-02 16:39:39

在更新后事件中加一句:

me.refresh

然后再msgbox



proby 发表于:2008-09-02 16:52:01

不好意思,我如你的建议修改了一下代码,但问题依旧存在。具体代码如下:

Private Sub RAM_AfterUpdate()
ModifiedMark = True
OldRAM = Me.RAM.OldValue '记录用户操作前的原记录
Me.Refresh
MsgBox "old RAM" & Me.RAM.OldValue & "cur RAM" & Me.RAM.value 'refresh后,oldvalue与value值应该一致(我用单值字段测试过)
End Sub

这段代码运行时的错误在于,尽管多值字段RAM原先是有值的,并且我更改后,其值仍然不为空。但Debug结果显示 Me.RAM.oldValue=NULL

 Me.RAM.Value=Null

 不知这个问题怎么解决?

多值字段真有些头大。。。

谢!



金宇 发表于:2008-09-03 22:06:41
你可以在组合框旁边放个隐藏的文本框用来获取旧的值,文本框名称为oldvalue

总记录:3篇  页次:1/1 9 1 :