以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- sqlreplacefor跨表自动更新 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178307) |
-- 作者:swagger -- 发布时间:2022/6/29 1:26:00 -- sqlreplacefor跨表自动更新 现在希望在产品表修改上述四列数据后,订单表能够自动更新这些列的数据,为此可以将产品表的DataColChanged事件设置为: Select
Case e.DataCol.Name
问题:删除行时,譬如删除产品编号为12345的行,希望把订单的”品名,型号,单号,通过“ 这四项清空内容,譬如用删除按钮代码 Tables("订单_Table1").Current("品名") = Nothing Tables("订单_Table1").Current("型号") = Nothing ... Tables("订单_Table1").Current.Delete 然后更新产品表后,这四项内容都是空。如果对应的产品编号没有加载,用replacefor,删除行,四项没有变化。用sqlreplace也没效,而且删除的速度变慢。
这个代码改怎么写呢? |
-- 作者:有点蓝 -- 发布时间:2022/6/29 8:34:00 -- 产品表datarowdeleting事件 Dim Filter As String = "[产品编号] = \'" & e.DataRow("产品编号") & "\'" dim dr as datarow = DataTables("订单").find(Filter ) if dr isnot nothing then dr("品名") = Nothing dr("型号") = Nothing …… end if 删除按钮代码 if Tables("订单_Table1").Current isnot nothing then Tables("订单_Table1").Current.Delete end if |
-- 作者:swagger -- 发布时间:2022/6/29 20:04:00 -- 不行呢,如果表数据没加载是没效的。譬如 订单表 编号为12345的这行的数据是加载的,删除产品表 编号为12345行, 订单表的四项内容就被清空,如果订单表的编号为12345没有加载的,删除产品表的12345,订单表的12345四项没被清空 |
-- 作者:swagger -- 发布时间:2022/6/30 0:10:00 -- 已经解决了,其实很简单用appendload就行,需注意的是,新增行的时候没有保存,然后同时另外的表加载其它数据。这时候删除行就不起效了,所以新增行同时保存行才能避免这个问题 |