以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  表间的赋值问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=29089)

--  作者:120931726
--  发布时间:2013/2/27 11:54:00
--  表间的赋值问题
我弄了一个窗口。里面有表A和表B。这两个数据表没有关联。有一个按钮。我选中了表A的其中一行。按下按钮,能不能通过代码使表B增加一行,然后表B里面新增的那行跟表A相同名称的列自动填充表A的值?
--  作者:狐狸爸爸
--  发布时间:2013/2/27 12:14:00
--  

可以参考:

 

http://www.foxtable.com/help/topics/2292.htm

 

 

如果要做成按钮,按钮代码类型:

 

Dim nma() As String = {"A1","A2","A3","A4"} \'A表数据来源列
Dim nmb() As String = {"B1","B2","B3","B4"} \'B表数据接收列
Dim r1 As Row = Tables("表A").Current
Dim r2 As Row = Tables("表B").AddNew
For i As Integer = 0 To nma.Length - 1
    r2(nmb(i)) = r1(nma(i))
Next

 

如果要自动匹配同名列:

 

Dim r1 As Row = Tables("表A").Current
Dim r2 As Row = Tables("表B").AddNew
For Each c As col In Tables("表A").Cols
    If Tables("表B").Cols.Contains(c.name) Then
        r2(c.name) = r1(c.name)
    End If
Next


--  作者:120931726
--  发布时间:2013/2/27 14:50:00
--  

如果。有多一个表C。表B是表C的子表。假如界面上,一开始选择了表C。然后表A的内容像刚才那样赋值给表B。怎么样才能保证表B新增的那一行,是表C的从表。假如是通过编号关联。也就是说,怎么样才能让表B增加的那一行的编号,是表C在界面上选择的那个编号?


--  作者:狐狸爸爸
--  发布时间:2013/2/27 14:57:00
--  

Dim r1 As Row = Tables("表A").Current
Dim r2 As Row = Tables("表B").AddNew

Dim r3 As Row = Tables("表C").Current

r2("关联列") =r3("关联列")
For Each c As col In Tables("表A").Cols
    If Tables("表B").Cols.Contains(c.name) Then
        r2(c.name) = r1(c.name)

     End If
Next