以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  复制来源表的行有空值,怎么也能复制  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154050)

--  作者:第一次学软件
--  发布时间:2020/9/2 11:48:00
--  复制来源表的行有空值,怎么也能复制
蓝老师,从一张表向另一张表复制数据的时候,如果需有复制行的某一单元格为空,比如来源表“第一类 履历材料”
的“材料类别”有一单元格为空,如何把空值也能复制到接收表的“项目”行中?
Dim tab As WinForm.TabControl = e.Form.Controls("TabControl1")
If tab.SelectedPage.Name = "第一类 履历材料"
Dim Cols1() As String = {"档案编号","类号","材料类别","备注"}
Dim Cols2() As String = {"档案编号","类号","项目","备注"}
For Each dr1 As DataRow In DataTables("第一类履历材料").Select("[备注] <>\'\'")
    Dim dr2 As DataRow = DataTables("缺材料和补充情况").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next
End If
[此贴子已经被作者于2020/9/2 11:50:41编辑过]

--  作者:有点蓝
--  发布时间:2020/9/2 13:35:00
--  
默认就是这样的,来源单元格是空值,目的单元格赋值后肯定也是空值
--  作者:第一次学软件
--  发布时间:2020/9/2 16:02:00
--  
目前结果只要在来源表中{"档案编号","类号","材料类别","备注"}有一个是空值,整行就不复制,只复制全部有数据的行
--  作者:有点蓝
--  发布时间:2020/9/2 16:12:00
--  
只复制全部有数据的行?

For Each dr1 As DataRow In DataTables("第一类履历材料").Select("[备注] is not null and 档案编号 is not null and ...........")

--  作者:第一次学软件
--  发布时间:2020/9/3 13:27:00
--  
我可能没有表达清楚,我的意思是,有的列是空值时,怎么能够复制整行
--  作者:有点蓝
--  发布时间:2020/9/3 14:17:00
--  
还是没搞懂您的意思。列是不是空值,不会影响复制的结果

如果是指不要添加条件,直接这样

For Each dr1 As DataRow In DataTables("第一类履历材料").datarows

--  作者:第一次学软件
--  发布时间:2020/9/7 11:09:00
--  
蓝老师,实例中的【数据合并】按钮没用你帮我看看我这里是什么问题?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目11.table

Select Case e.Sender.Name

Case "name"

End Select
这样写可以么,有什么区别

[此贴子已经被作者于2020/9/7 11:23:28编辑过]

--  作者:有点蓝
--  发布时间:2020/9/7 11:27:00
--  
页签只有标题,没有设置名称。

If tab.SelectedPage.Name = "第一类材料"
改为
If tab.SelectedPage.text = "第一类材料"

--  作者:第一次学软件
--  发布时间:2020/9/7 11:33:00
--  
像这样的问题,即何时用name,何时用text,帮助中有么?
--  作者:有点蓝
--  发布时间:2020/9/7 11:50:00
--  
这个要看具体要做什么,没有办法简单说何时用name,何时用text。像7楼的实例,根本就没有name,想用也用不了