以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]跨表引用和自动填入功能,求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=32491)

--  作者:hsinly
--  发布时间:2013/5/3 10:42:00
--  [求助]跨表引用和自动填入功能,求助
现有表A 和表B 两个表

表A  有 “姓名  电话   登记时间   最后一次消费(时间)”
表B  有“姓名 电话  预约消费时间”

想实现功能。
1.通过操作表B   输入姓名   电话   预约消费时间。。。表A 如果有相同的姓名  电话,。则同步更新   最后一次消费(时间)=预约消费时间
2.通过操作表B   输入姓名   电话   预约消费时间。。。表A 如果姓名  电话  有一项不匹配  ,则表A 自动新增一行  
同步更新  姓名  电话。
同时 最后一次消费(时间)=预约消费时间    登记时间=预约消费时间

求大神帮忙理个思路,求代码写法

--  作者:hsinly
--  发布时间:2013/5/3 11:03:00
--  
Select Case e.DataCol.Name
    Case
 "姓名","电话",
"预约消费时间"
        
Dim dr As DataRow = e.DataRow
        
Dim pr As DataRow
        
If dr.IsNull("姓名"OrElse dr.IsNull("电话"Then
            dr(
"预约时间") = Nothing
        
Else
            
Dim filter As String
            filter = 
"姓名 = \'" & dr("姓名") & "\' And 电话 = \'" & dr("电话") & "\'"
            pr = 
DataTables("表A").Find(filter)
            If
 pr IsNot Nothing 
Then
                dr(
"预约时间") = pr("最后一次消费")
            End
 
If
        
End If
End
 Select


这样子是不是只能先匹配然后更新,,但不能新增对吧

--  作者:Bin
--  发布时间:2013/5/3 11:05:00
--  
发例子帮你完善
--  作者:狐狸爸爸
--  发布时间:2013/5/3 11:08:00
--  
Select Case e.DataCol.Name
    Case "姓名","电话","预约消费时间"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow
        If dr.IsNull("姓名") OrElse dr.IsNull("电话") Then
            dr("预约时间") = Nothing
        Else
            Dim filter As String
            filter = "姓名 = \'" & dr("姓名") & "\' And 电话 = \'" & dr("电话") & "\'"
            pr = DataTables("表A").Find(filter)
            If pr IsNot Nothing Then
                dr("预约时间") = pr("最后一次消费")
            Else
                pr = DataTables("表A").Addnew()
                pr("姓名") = dr("姓名")
                pr("电话") = dr("电话")
                pr("登记时间") = dr("预约时间")
                \'...
            End If
        End If
End Select
[此贴子已经被作者于2013-5-3 11:08:57编辑过]

--  作者:hsinly
--  发布时间:2013/5/3 11:12:00
--  
狐爸。。我的代码搞错了。。应该是修改表B 的数据的时候。。表A 的数据跟着更新。。。我把例子发上来。。你帮我改一下。。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


--  作者:Bin
--  发布时间:2013/5/3 11:20:00
--  
稍微改了一下.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table

没发现有什么大问题啊.哪里不行吗?
--  作者:hsinly
--  发布时间:2013/5/3 11:27:00
--  
以下是引用Bin在2013-5-3 11:20:00的发言:
稍微改了一下.
 下载信息  [文件大小:288.0 KB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table

没发现有什么大问题啊.哪里不行吗?
想实现功能。
1.通过操作表B   输入姓名   电话   预约消费时间。。。表A 如果有相同的姓名  电话,。则同步更新   表A 的最后一次消费(时间)=   表B预约消费时间
2.通过操作表B   输入姓名   电话   预约消费时间。。。表A 如果姓名  电话  有一项不匹配  ,则表A 自动新增一行  
同步更新  姓名  电话。
同时 表A 最后一次消费(时间)=表B预约消费时间    表A 登记时间=表B预约消费时间


--  作者:hsinly
--  发布时间:2013/5/3 11:37:00
--  
登记时间   同步不过去
--  作者:Bin
--  发布时间:2013/5/3 11:47:00
--  
我测试了.时间同步没问题啊.
--  作者:hsinly
--  发布时间:2013/5/3 11:48:00
--  
以下是引用Bin在2013-5-3 11:47:00的发言:
我测试了.时间同步没问题啊.
.通过操作表B   输入姓名   电话   预约消费时间。。。表A 如果姓名  电话  有一项不匹配  ,则表A 自动新增一行  
同步更新  姓名  电话。
同时 表A 最后一次消费(时间)=表B预约消费时间    表A 登记时间=表B预约消费时间