以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  提取子表数据到单元格内  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184952)

--  作者:xuzihang
--  发布时间:2023/1/19 14:31:00
--  提取子表数据到单元格内
两个表A表有列【电话】和【主要联系人姓名】、【主要联系人电话】B表有列【姓名】和【手机号】,
问题1、父A、子B关联后,想实现电话自动提取到子B表行里的【手机号】到A表列【电话】里,一行一组还是,逗号分开(电话盒子来电话能弹屏用)
问题2、父A自动提取到同表的【主要联系人电话】到列【电话】里,融合问题1,一行一组还是,逗号分开(电话盒子来电话能弹屏用)
问题3、AB表部关联代码的区别
问题4、之前一行就一组时候的代码如下,现在一个单元格多个组电话了如何相应调整代码,谢谢老师
If drCurrentRow IsNot Nothing Then 
        Dim dr As DataRow = DataTables("A").Find("电话 = \'" & drCurrentRow("电话号码") & "\'")
        If dr IsNot Nothing Then
            Dim idx As Integer = Tables("A").FindRow(dr)
            If idx >= 0 Then
                Tables("A").Position = idx
                Forms("通话弹窗").Open()
            End If
        Else
            Forms("弹窗").Open() 
        End If

--  作者:有点蓝
--  发布时间:2023/1/19 14:59:00
--  
截图表格数据说明一下。一行一组是什么意思?
--  作者:xuzihang
--  发布时间:2023/1/19 15:15:00
--  
单元格里 一行一组;
13901098888
15505555555
16656666666
单元格里 逗号分:
13901098888,15505555555,16656666666

--  作者:有点蓝
--  发布时间:2023/1/19 15:35:00
--  
Dim dr As DataRow = DataTables("A").Find("电话 = \'" & drCurrentRow("电话号码") & "\'")
改为
Dim dr As DataRow = DataTables("A").Find("\',\'+电话+\',\' like \'%," & drCurrentRow("电话号码") & ",%\'")

--  作者:xuzihang
--  发布时间:2023/1/19 15:41:00
--  
谢谢蓝老师:
问题1、父A、子B关联后,想实现从B表列【手机号】里提取到A表列【电话】里,用,逗号分开(电话盒子来电话能弹屏用)怎么写?
--  作者:有点蓝
--  发布时间:2023/1/19 15:48:00
--  
参考:http://www.foxtable.com/webhelp/topics/1472.htm

B表的DataColChanged事件代码设置为:

Select Case e.DataCol.Name
    Case
 "
手机号"
        
Dim pr As DataRow
        pr = 
DataTables("A").Find("
主要联系人姓名 = \'" & e.DataRow("姓名") & "\'")
        If
 pr IsNot Nothing Then
            DataTables
("
A").DataCols("主要联系人姓名").RaiseDataColChanged(pr)
        End
 If
End
 Select


A表的DataColChanged事件代码设置为:

If e.DataCol.Name = "主要联系人姓名" Then
    Dim
 Filter As String = "[
姓名] = \'" & e.NewValue & "\'"
    e.
DataRow("
电话") = DataTables("B"). getcomboliststring("手机号", Filter).replace("|",",")
End
 If


--  作者:xuzihang
--  发布时间:2023/1/19 16:05:00
--  
蓝老师辛苦了,AB表是【编号】关联的,A父。
达到下面效果,从B【手机】行 提取到 A【电话】单元格里,排除重复的

A表【电话】
单元格里 逗号分:
13901098888,15505555555,16656666666

B表  【手机号】如:
行1    13901098888
行2    15505555555
行3    16656666666
行4    13901098888

--  作者:有点蓝
--  发布时间:2023/1/19 16:15:00
--  
一样的用法,把条件列改为编号即可
--  作者:xuzihang
--  发布时间:2023/1/19 16:25:00
--  
我改了好久都没成功,辛苦蓝老师改下
--  作者:有点蓝
--  发布时间:2023/1/19 16:39:00
--  
主要联系人姓名、姓名都改为编号即可