以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助表与表之间的数据回写功能  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=121217)

--  作者:zyxhx
--  发布时间:2018/7/1 23:09:00
--  求助表与表之间的数据回写功能
本人愚钝,基础太差,想了很久没有想出来的一个问题,特向老师请教:

就是想实现一表与表之间的数据回写功能:

假设表A,表B中分别有“身份证号码”列和“联系电话”列,新建一个窗口绑定表A,在窗口中增加一个保存按钮。如果在表A中修改了“联系电话”列的多个内容,单击保存按钮,自动更新表B中对应的联系电话,我为保存按钮写了很多代码都没有实现,请老师指点。

--  作者:有点甜
--  发布时间:2018/7/1 23:36:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/1453.htm

 

具体问题,做个例子说明。


--  作者:zyxhx
--  发布时间:2018/7/2 9:31:00
--  请老师看例子
请老师看例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


希望实现:当表A中的联系电话列更新后,单击保存按钮,自动将表A中已经更新的联系电话列更新到对应的表B联系电话列中。不是平时用的在表事件中的DataColChanged实现一行行自动更新,而是在表A中修改所有联系电话后,单击保存按钮后更新表B中的全部修改过的联系电话列数据。

--  作者:有点甜
--  发布时间:2018/7/2 10:01:00
--  
For Each dr As DataRow In DataTables("表A").Select("身份证号码 is not null")
    If dr.RowState <> DataRowState.Unchanged Then
        Dim fdr = DataTables("表B").find("身份证号码 = \'" & dr("身份证号码") & "\'")
        If fdr Is Nothing Then
            fdr = DataTables("表B").addnew
        End If
        fdr("身份证号码") = dr("身份证号码")
        fdr("联系电话") = dr("联系电话")
    End If
Next

--  作者:zyxhx
--  发布时间:2018/7/2 10:26:00
--  谢谢老师
谢谢老师!foxtable功能的确太强大了,只有想不到,没有做不到。只是奈何自己基础太差了,很多问题都要麻烦老师您了。

虽然功能已经实现,但对代码中的一些函数的意思不能完全理解:如 dr.RowState <> DataRowState.Unchanged 
[此贴子已经被作者于2018/7/2 10:45:17编辑过]

--  作者:有点甜
--  发布时间:2018/7/2 11:15:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/0428.htm