以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 跨表引用不能更新问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=151182) |
-- 作者:swagger -- 发布时间:2020/6/17 11:33:00 -- 跨表引用不能更新问题 有时候可以,有时候不行。 如果在窗口textbox里面在原有的内容基础上,增加内容,目标表不能更新。需要把textbox的内容删掉,然后重新复制粘贴,这样目标表就更新了。不知道什么原因?
|
-- 作者:swagger -- 发布时间:2020/6/17 11:35:00 -- 譬如两个表,表A,表B,表B是目标表。 表B引用表A的代码: If e.DataCol.Name = "产品编号" Then Dim nms() As String = {"产品名称"} If e.NewValue Is Nothing Then For Each nm As String In nms e.DataRow(nm) = Nothing Next Else Dim dr As DataRow dr = DataTables("表A").SQLFind("[产品编号] = \'" & e.NewValue & "\'") If dr IsNot Nothing For Each nm As String In nms e.DataRow(nm) = dr(nm) Next End If End If End If 表A的自动更新目标表B代码: Select Case e.DataCol.Name Case "产品名称" Dim Filter As String = "[产品编号] = \'" & e.DataRow("产品编号") & "\'" DataTables("表B").ReplaceFor(e.DataCol.Name, e.NewValue, Filter) End Select [此贴子已经被作者于2020/6/17 11:37:09编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/17 11:36:00 -- 请上传实例说明。 |
-- 作者:swagger -- 发布时间:2020/6/17 11:38:00 -- 请蓝版看看上述代码是否有问题 |
-- 作者:有点蓝 -- 发布时间:2020/6/17 11:41:00 -- 看不出什么问题。textbox输入完毕,按回车,或者点击其它控件,让textbox离开输入焦点试试 |
-- 作者:swagger -- 发布时间:2020/7/17 17:08:00 -- 找到原因了,原来是没有加载数据。窗口用的是自定义录入界面之四。如果用replacefor,未加载的数据不能更新,如果用sqlreplacefor,已加载的数据不能更新。如果在下拉窗口的表追加数据,数量大的话就会变得很慢。这个该怎么解决? |
-- 作者:有点蓝 -- 发布时间:2020/7/17 17:11:00 -- 2个都使用。先replacefor,再sqlreplacefor |