Foxtable(狐表)用户栏目专家坐堂 → [求助]请教根据条件筛选行复制到另一个表的问题


  共有2968人关注过本帖树形打印复制链接

主题:[求助]请教根据条件筛选行复制到另一个表的问题

帅哥哟,离线,有人找我吗?
tkxffb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:174 积分:1671 威望:0 精华:0 注册:2018/4/22 18:54:00
[求助]请教根据条件筛选行复制到另一个表的问题  发帖心情 Post By:2018/10/15 21:17:00 [只看该作者]

各位大师,项目中有一个窗口,通过窗口身份证号控件,筛选《在职人员任职经历信息表》中某一身份证号的行(该表中有多个身份证号相同的行),复制到《离职人员任职经历信息表》,代码如下:

Dim Cols1() As String = {"姓名","县市区","乡镇办","身份证号","职务","任职日期","离职日期","离职原因","任职年限","备注"}

Dim Cols2() As String = {"姓名","县市区","乡镇办","身份证号","职务","任职日期","离职日期","离职原因","任职年限","备注"}

For Each dr1 As DataRow In DataTables("在职人员任职经历信息表").Select("身份证号 Like '%" & e.form.controls("TextBox5").text & "%'")

    Dim dr2 As DataRow = DataTables("离职人员任职经历信息表").AddNew()

    For i As Integer = 0 To Cols1.Length -1

        dr2(Cols2(i)) = dr1(Cols1(i))

    Next

Next


现在的问题是:代码执行时,把《在职人员任职经历信息表》中所有的行都复制到《离职人员任职经历信息表》了,筛选没起作用,请大师修改一下代码,十分感谢!!!

窗口附图:


此主题相关图片如下:360截图20181015210626555.jpg
按此在新窗口浏览图片

[此贴子已经被作者于2018/10/15 21:20:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112401 积分:572273 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/15 21:25:00 [只看该作者]

Dim Cols1() As String = {"姓名","县市区","乡镇办","身份证号","职务","任职日期","离职日期","离职原因","任职年限","备注"}
Dim Cols2() As String = {"姓名","县市区","乡镇办","身份证号","职务","任职日期","离职日期","离职原因","任职年限","备注"}
Dim  dr1 As DataRow  = DataTables("在职人员任职经历信息表").Find("身份证号 Like '%" & e.form.controls("TextBox5").text & "%'")
If dr1 IsNot Nothing
    Dim dr2 As DataRow = DataTables("离职人员任职经历信息表").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
tkxffb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:174 积分:1671 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/10/16 13:07:00 [只看该作者]

感谢有点蓝老师的指导。
可能是我没表达清楚,有点蓝老师给出的方法实现不了我的设计目的。上面截图中的窗口要实现 的目的有两个:一是把在职人员信息从《在职人员信息表》复制到《离职人员信息表》;二是把与《在职人员信息表》关联的子表《在职人员任职经历表》中的多个行复制到《离职人员任职经历表》。第二个目的现在我通过下面的代码实现了:
1.窗口加载事件
  '-----以下是按TextBox5文本框中的身份证号筛选工作经历表中所有的行
Dim Filter As String   
With e.Form.Controls("TextBox5")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "身份证号 = '" & .Value & "'"
    End If
End With
If Filter > "" Then
    Tables("工作经历信息表").Filter = Filter 
End If

2.窗口确定按钮单击事件
'----以下是把本窗口Afterload事件筛选出来的工作经历信息表的多行复制到离职经历表的代码
Dim Cols1() As String = {"姓名","县市区","乡镇办","行政村","身份证号","民族","性别","政治面貌","文化程度","职务","任职日期","离职日期","离职原因","任职年限","备注"}
Dim Cols2() As String = {"姓名","县市区","乡镇办","行政村","身份证号","民族","性别","政治面貌","文化程度","职务","任职日期","离职日期","离职原因","任职年限","备注"}

For Each dr1 As DataRow In DataTables("工作经历信息表").Select("身份证号 Like '%" & Forms("在职转离职窗口").controls("TextBox5").text & "%'")
    Dim dr2 As DataRow = DataTables("离职人员工作经历信息表").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next

说实话,作为一个小白,我是把能想到的方法乱凑在一起的,不知道上面拼凑的代码是否合理,请老师指教
[此贴子已经被作者于2018/10/16 13:09:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112401 积分:572273 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/10/16 14:07:00 [只看该作者]

是否合理看不出来。测试有什么问题?

 回到顶部
帅哥哟,离线,有人找我吗?
tkxffb
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:174 积分:1671 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/10/18 10:20:00 [只看该作者]

能正常运行,没什么问题

 回到顶部
帅哥哟,离线,有人找我吗?
tkxffb
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:174 积分:1671 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/11/8 20:28:00 [只看该作者]

蓝老师和各位老师好,还想请教一个和这有关的问题:
按上面的代码,根据身份证号从《在职人员任职经历表》筛选出符合条件的行复制到《离职人员任职经历表》之后,需要删除《在职人员任职经历表》筛选出来的行,写了如下 的代码,可是代码执行后,把《在职人员任职经历表》中所有的行都删除了,请看看代码哪里不对,谢谢老师

DataTables("在职人员任职经历表").DeleteFor("身份证号 Like '%" & Forms("在职转离职窗口").controls("TextBox5").text & "%'")
[此贴子已经被作者于2018/11/8 20:28:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 20:37:00 [只看该作者]

1、msgbox(Forms("在职转离职窗口").controls("TextBox5").text) 弹出什么?

 

2、不会全部数据删除的,你试试改成

 

DataTables("在职人员任职经历表").DeleteFor("身份证号 Like '%" & Forms("在职转离职窗口").controls("TextBox5").text & "%'")

Tables("在职人员任职经历表").Filter = ""


 回到顶部
帅哥哟,离线,有人找我吗?
tkxffb
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:174 积分:1671 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/11/8 20:45:00 [只看该作者]

感谢甜老师,按你的方法改好了,完美。虽然有的地方看不懂,但发现FT真心好,功能齐全,逻辑严密,同时在位老师在线指导也很及时。大赞

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/8 20:48:00 [只看该作者]

以下是引用tkxffb在2018/11/8 20:45:00的发言:
感谢甜老师,按你的方法改好了,完美。虽然有的地方看不懂,但发现FT真心好,功能齐全,逻辑严密,同时在位老师在线指导也很及时。大赞

 

不是删除了,是你筛选了数据,把筛选还原即可

 

Tables("在职人员任职经历表").Filter = ""

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
tkxffb
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:174 积分:1671 威望:0 精华:0 注册:2018/4/22 18:54:00
  发帖心情 Post By:2018/11/8 21:21:00 [只看该作者]

甜老师,Tables("在职人员任职经历表").Filter = "" 的意思是不是把上一句代码的筛选给撤销了?执行上一句代码后,没选中的行其实并没删除,只不过是看不到了?

 回到顶部
总数 12 1 2 下一页