以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多表取不重复值形成经常使用的表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152825)

--  作者:朱女士
--  发布时间:2020/7/23 9:55:00
--  多表取不重复值形成经常使用的表
老师您好!
      我有三个表都有“ylggddm,供应商,ylmc”三列。我能从三个表中分别取不重复值形成“ylgg”表,但是ylgg表中还有重复值,我想再从ylgg表中再取不重复值,继续存在此ylgg表中,作为常用外部数据表用。
    最后一步不知道怎么实现。请指教!谢谢!

--  作者:有点蓝
--  发布时间:2020/7/23 9:58:00
--  
从三个表中分别取不重复值形成“ylgg”表的时候就应该去重了,从第二个表开始往“ylgg”表填充数据的时候就应该使用find查重后再插入数据
--  作者:朱女士
--  发布时间:2020/7/23 10:00:00
--  
For Each nm As String In DataTables("ylqcb").GetValues("ylggddm")
    Dim dr As DataRow = DataTables("ylgg").AddNew()
    Dim pr As DataRow = DataTables("ylqcb").find("ylggddm=\'" & nm & "\'")
    dr("供应商") = pr("供应商")
    dr("ylmc") = pr("ylmc")
    dr("原料规格") = pr("原料规格")
    dr("ylggddm")=nm
Next

For Each nm As String In DataTables("ylrkb").GetValues("ylggddm")
    Dim dr As DataRow = DataTables("ylgg").AddNew()
    Dim pr As DataRow = DataTables("ylrkb").find("ylggddm=\'" & nm & "\'")
    dr("供应商") = pr("供应商")
    dr("ylmc") = pr("ylmc")
    dr("原料规格") =pr("原料规格")
    dr("ylggddm")=nm  
Next

For Each nm As String In DataTables("ylckb").GetValues("ylggddm")
    Dim dr As DataRow = DataTables("ylgg").AddNew()
    Dim pr As DataRow = DataTables("ylckb").find("ylggddm=\'" & nm & "\'")
    dr("供应商") = pr("供应商")
    dr("ylmc") = pr("ylmc")
    dr("原料规格") =pr("原料规格")
    dr("ylggddm")=nm   
Next


--  作者:有点蓝
--  发布时间:2020/7/23 10:03:00
--  
For Each nm As String In DataTables("ylqcb").GetValues("ylggddm")
    Dim dr As DataRow = DataTables("ylgg").AddNew()
    Dim pr As DataRow = DataTables("ylqcb").find("ylggddm=\'" & nm & "\'")
    dr("供应商") = pr("供应商")
    dr("ylmc") = pr("ylmc")
    dr("原料规格") = pr("原料规格")
    dr("ylggddm")=nm
Next

For Each nm As String In DataTables("ylrkb").GetValues("ylggddm")
    Dim dr As DataRow = DataTables("ylgg").find("ylggddm=\'" & nm & "\'")
if dr is nothing then
Dim dr As DataRow =DataTables("ylgg").AddNew()
    Dim pr As DataRow = DataTables("ylrkb").find("ylggddm=\'" & nm & "\'")
    dr("供应商") = pr("供应商")
    dr("ylmc") = pr("ylmc")
    dr("原料规格") =pr("原料规格")
    dr("ylggddm")=nm  
end if
Next

第三个表自己参考着改
[此贴子已经被作者于2020/7/23 10:03:07编辑过]

--  作者:朱女士
--  发布时间:2020/7/23 10:30:00
--  
老师:
    下面这段代码有错误信息:变量“dr"在封闭块中隐藏变量。
For Each nm As String In DataTables("ylrkb").GetValues("ylggddm")
    Dim dr As DataRow = DataTables("ylgg").find("ylggddm=\'" & nm & "\'")
if dr is nothing then
Dim dr As DataRow =DataTables("ylgg").AddNew()
    Dim pr As DataRow = DataTables("ylrkb").find("ylggddm=\'" & nm & "\'")
    dr("供应商") = pr("供应商")
    dr("ylmc") = pr("ylmc")
    dr("原料规格") =pr("原料规格")
    dr("ylggddm")=nm  
end if
Next
谢谢!

--  作者:有点蓝
--  发布时间:2020/7/23 10:31:00
--  
dr  =DataTables("ylgg").AddNew()
--  作者:朱女士
--  发布时间:2020/7/23 10:57:00
--  
老师还有错误信息:.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:窗口,新规格,Button1,Click
详细错误信息:
未将对象引用设置到对象的实例。
我没检查出来。

--  作者:朱女士
--  发布时间:2020/7/23 10:58:00
--  
还是第二段
--  作者:有点蓝
--  发布时间:2020/7/23 11:07:00
--  
贴出改后的代码
--  作者:朱女士
--  发布时间:2020/7/23 11:11:00
--  
For Each nm As String In DataTables("ylqcb").GetValues("ylggddm")
    Dim dr As DataRow = DataTables("ylgg").AddNew()
    Dim pr As DataRow = DataTables("ylqcb").find("ylggddm=\'" & nm & "\'")
    dr("供应商") = pr("供应商")
    dr("ylmc") = pr("ylmc")
    dr("原料规格") = pr("原料规格")
    dr("ylggddm")=nm
Next
For Each nm As String In DataTables("ylrkb").GetValues("ylggddm")
    Dim dr As DataRow = DataTables("ylgg").find("ylggddm=\'" & nm & "\'")

If dr Is Nothing Then
dr =DataTables("ylgg").AddNew()
    Dim pr As DataRow = DataTables("ylrkb").find("ylggddm=\'" & nm & "\'")
    dr("供应商") = pr("供应商")
    dr("ylmc") = pr("ylmc")
    dr("原料规格") =pr("原料规格")
    dr("ylggddm")=nm
End If

Next