以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28256)

--  作者:wsxdwh
--  发布时间:2013/1/23 15:34:00
--  [求助]

从林老师那里学习到跨表引用数据,进行了修改,加了一个防止重复引入的条件,执行时不报错,但没反应。请指教!!!

     从报名表引用数据到DataTables(""& xzb.text & ""),不加防止重复引入的条件时,执行正常。

 

Dim jsmc As WinForm.ComboBox = e.Form.Controls("竞赛名称")
Dim xzb As WinForm.ComboBox = e.Form.Controls("选择表")
Dim xm As WinForm.ComboBox = e.Form.Controls("项目")
Dim dt As DataTable = DataTables(""& xzb.text & "")
Dim dt1 As DataTable = DataTables("报名表")
Dim dr,fr As DataRow
Dim Ary As String()

Dim qus As List(Of String)= dt.GetUniqueValues("", "竞赛名称")
Dim xxs As List(Of String)= dt.GetUniqueValues("", "编号")

For Each qu As String In qus
    For Each xx As String In xxs
        Dim flt As String  = "竞赛名称 = \'" & qu & "\'  And  编号 = \'" & xx & "\'"
        If dt.Find(flt) Is Nothing Then
           
            For Each Ary In dt1.GetUniqueValues("竞赛名称=\'" & jsmc.text & "\' And 参赛项目  like \'*" & xm.Text & "*\'","编号","中小学","学校","姓名","场地","参赛项目","竞赛名称")
                dr = dt.AddNew
                dr("编号") = Ary(0)
                dr("中小学") = Ary(1)
                dr("学校") = Ary(2)
                dr("姓名") = Ary(3)
                dr("场地") = Ary(4)
                dr("参赛项目") = Ary(5)
                dr("竞赛名称") = Ary(6)
            Next
        End If
    Next
Next

DataTables(""& xzb.text & "").AllowEdit = False


--  作者:lin_hailun
--  发布时间:2013/1/23 15:46:00
--  
 呃……哪有你这样的引用数据?太混乱了吧?

 你是想填充数据还是想怎样,没看懂你代码想表达写什么。

--  作者:wsxdwh
--  发布时间:2013/1/23 16:59:00
--  

这是从您那里学习的引用语句,执行正常,现在想加入一个防止重复引用的条件

Dim xzb As WinForm.ComboBox = e.Form.Controls("选择表")
Dim xm As WinForm.ComboBox = e.Form.Controls("项目")
Dim dt As DataTable = DataTables(""& xzb.text & "")
Dim dt1 As DataTable = DataTables("报名表")
Dim dr,fr As DataRow
Dim Ary As String()
For Each Ary In dt1.GetUniqueValues("参赛项目  like \'*" & xm.Text & "*\'","编号","中小学","学校","姓名","组别","场地")
    dr = dt.AddNew
    dr("编号") = Ary(0)
    dr("中小学") = Ary(1)
    dr("学校") = Ary(2)
    dr("姓名") = Ary(3)
    dr("组别") = Ary(4)
    dr("场地") = Ary(5)
Next

DataTables(""& xzb.text & "").AllowEdit = False


--  作者:lin_hailun
--  发布时间:2013/1/23 17:02:00
--  
不清楚你的逻辑是什么不过估计这样可以。

Dim jsmc As WinForm.ComboBox = e.Form.Controls("竞赛名称")
Dim xzb As WinForm.ComboBox = e.Form.Controls("选择表")
Dim xm As WinForm.ComboBox = e.Form.Controls("项目")
Dim dt As DataTable = DataTables(""& xzb.text & "")
Dim dt1 As DataTable = DataTables("报名表")
Dim dr,fr As DataRow
Dim Ary As String()

For Each Ary In dt1.GetUniqueValues("竞赛名称=\'" & jsmc.text & "\' And 参赛项目  like \'*" & xm.Text & "*\'","编号","中小学","学校","姓名","场地","参赛项目","竞赛名称")
    Dim flt As String  = "竞赛名称 = \'" & ary(0) & "\'  And  编号 = \'" & ary(6) & "\'"
    If dt1.Find(flt) Is Nothing Then    
        dr = dt.AddNew
        dr("编号") = Ary(0)
        dr("中小学") = Ary(1)
        dr("学校") = Ary(2)
        dr("姓名") = Ary(3)
        dr("场地") = Ary(4)
        dr("参赛项目") = Ary(5)
        dr("竞赛名称") = Ary(6)
    End If
Next

DataTables(""& xzb.text & "").AllowEdit = False
[此贴子已经被作者于2013-1-23 17:10:42编辑过]

--  作者:wsxdwh
--  发布时间:2013/1/23 17:08:00
--  
某一名学生已经被引入,下一次引入时不会再把他引入进来。
--  作者:lin_hailun
--  发布时间:2013/1/23 17:12:00
--  
 其实我觉得你应该用这种填充吧?

Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
For Each dr1 As DataRow In DataTables("表A").Select("[金额] > 100")
    Dim dr2 As DataRow = DataTables("表B").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next

--  作者:wsxdwh
--  发布时间:2013/1/24 10:34:00
--  

经过测试,还是可以重复引用。再想想办法,拜托了!

你说的填充方案我学习了,感觉不适用我的方案。

 

[此贴子已经被作者于2013-1-24 10:37:56编辑过]

--  作者:lin_hailun
--  发布时间:2013/1/24 10:50:00
--  
以下是引用wsxdwh在2013-1-24 10:34:00的发言:

经过测试,还是可以重复引用。再想想办法,拜托了!

你说的填充方案我学习了,感觉不适用我的方案。

 

[此贴子已经被作者于2013-1-24 10:37:56编辑过]


楼主,你要进步啊,变通一下啊。好吧?

Dim flt As String  = "竞赛名称 = \'" & ary(6) & "\'  And  编号 = \'" & ary(0) & "\'"

--  作者:wsxdwh
--  发布时间:2013/1/24 10:58:00
--  

哦!这我早就改过来试了,根本就不执行。

现在又试了一次,还是不执行,也没有错误提示。

 


--  作者:lin_hailun
--  发布时间:2013/1/24 11:04:00
--  
以下是引用wsxdwh在2013-1-24 10:58:00的发言:

哦!这我早就改过来试了,根本就不执行。

现在又试了一次,还是不执行,也没有错误提示。

 


不空谈,项目,数据。