Foxtable(狐表)用户栏目专家坐堂 → [求助]条件替换,合并时变相排重


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

主题:[求助]条件替换,合并时变相排重

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


加好友 发短信
等级:幼狐 帖子:104 积分:804 威望:0 精华:0 注册:2015/6/15 14:32:00
[求助]条件替换,合并时变相排重  发帖心情 Post By:2015/7/14 9:20:00 [只看该作者]

设“表A”有 A列,B列,C列,D列,E列,F列
现在想实现在合并的时候,若F列重复,则替换表内所有列的值
求老师指导

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/14 9:24:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:104 积分:804 威望:0 精华:0 注册:2015/6/15 14:32:00
  发帖心情 Post By:2015/7/14 9:56:00 [只看该作者]

Dim Book As New XLS.Book
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("URL表").StopRedraw()
Dim nms() As String = {"客户端二级栏目","客户端三级栏目","信息分类","地区","部门","类型","状态","网站名","内容标注","栏目标注","栏目名","网址"}
For n As Integer = 1 To Sheet.Rows.Count -1 
    Dim bh As String = sheet(n,0).Text 
    Dim dr As DataRow = DataTables("URL表").Find("网址 = '" & bh & "'") 
    If dr Is Nothing Then '如果不存在同编号的订单
        dr =  DataTables("URL表").AddNew()
    End If
    For m As Integer = 0 To nms.Length - 1
        dr(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables("URL表").ResumeRedraw()

我这样写的代码 放在表事件beforeadddatarow里的 可是没效果诶..

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/14 9:58:00 [只看该作者]

 不要写到beforeadddatarow事件,你单独弄一个按钮输入代码

 

Dim Book As New XLS.Book("d:\test.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("URL表").StopRedraw()
Dim nms() As String = {"客户端二级栏目","客户端三级栏目","信息分类","地区","部门","类型","状态","网站名","内容标注","栏目标注","栏目名","网址"}
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text
    Dim dr As DataRow = DataTables("URL表").Find("网址 = '" & bh & "'")
    If dr Is Nothing Then '如果不存在同编号的订单
        dr =  DataTables("URL表").AddNew()
    End If
    For m As Integer = 0 To nms.Length - 1
        dr(nms(m)) = Sheet(n,m).Value
    Next
Next
Tables("URL表").ResumeRedraw()


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/14 10:02:00 [只看该作者]

 或者去写datacolchanged事件

 

If e.DataCol.Name = "网址" Then
   
    Dim fdr As DataRow = DataTables("URL表").Find("网址 = '" & e.newValue & "'")
   
    If fdr IsNot Nothing Then '如果不存在同编号的订单
        Dim nms() As String = {"客户端二级栏目","客户端三级栏目","信息分类","地区","部门","类型","状态","网站名","内容标注","栏目标注","栏目名","网址"}
        For m As Integer = 0 To nms.Length - 1
            fdr(nms(m)) = e.DataRow(nms(m))
        Next
        e.DataRow.Delete
    End If
   
End If

 


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


加好友 发短信
等级:幼狐 帖子:104 积分:804 威望:0 精华:0 注册:2015/6/15 14:32:00
  发帖心情 Post By:2015/7/14 10:07:00 [只看该作者]

额 这样就有个问题 这个代码只能制定某一个.xls文件合并,我是想点击按钮后选择文件合并
这个怎么解额...

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/14 10:08:00 [只看该作者]

 这个简单,参考

 

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

 


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


加好友 发短信
等级:幼狐 帖子:104 积分:804 威望:0 精华:0 注册:2015/6/15 14:32:00
  发帖心情 Post By:2015/7/14 10:46:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3_201507141043.zip

为什么会出错呢...而且导入还是会把重复的导进来额.
[此贴子已经被作者于2015/7/14 10:47:34编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/7/14 10:53:00 [只看该作者]

你要注意bh为空值的情况要怎么处理

 

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls|Word文件|*.doc|Access文件|*.mdb" '设置筛选器
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("URL表").StopRedraw()
    Dim nms() As String = {"客户端二级栏目","客户端三级级栏目","信息分类","地区","部门","类型","状态","网站名","内容标注","栏目标注","栏目名","网址"}
    For n As Integer = 1 To Sheet.Rows.Count -1
        Dim bh As String = sheet(n,11).Text
        Dim dr As DataRow = DataTables("URL表").Find("网址 = '" & bh & "'")
        If dr Is Nothing Then
            dr =  DataTables("URL表").AddNew()
        End If
        For m As Integer = 0 To nms.Length - 1
            dr(nms(m)) = Sheet(n,m).Value
        Next
    Next
    Tables("URL表").ResumeRedraw()
end if


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


加好友 发短信
等级:幼狐 帖子:104 积分:804 威望:0 精华:0 注册:2015/6/15 14:32:00
  发帖心情 Post By:2015/7/14 11:07:00 [只看该作者]

啊...没注意  谢谢老师了

 回到顶部