以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]批量新值替换旧值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=113196)

--  作者:工匠
--  发布时间:2018/1/10 23:17:00
--  [求助]批量新值替换旧值
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新值替换旧值.foxdb

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新值.xls


老师好:
    有种情况,原来表A料号列对应的值列,很多行都发生了变化,和系统里不一样了,需要从EXCEL整理出来的表格料号对应的值进行替换,请问要如何实现进行一次性替换,万分感谢!

谢谢!

--  作者:有点甜
--  发布时间:2018/1/11 9:56:00
--  
Dim dlg As new OpenFileDialog
If dlg.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    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("表A").Find("料号 = \'" & bh & "\'")
        If dr Is Nothing Then \'如果不存在同编号的订单
            dr =  DataTables("订单").AddNew()
        End If
        For m As Integer = 0 To nms.Length - 1
            dr(nms(m)) = Sheet(n,m).Value
        Next
    Next
   
End If

--  作者:工匠
--  发布时间:2018/1/11 10:56:00
--  
谢谢有点甜老师,我还是小白,不懂怎么实现,请有时间帮我做个例子,通过点击窗口按钮合并:如果合并表(新值)的料号和系统表A料号相同的,就直接替换原来表A料号对应的值,如果不一样的料号,则合并新增加入这些不一样的料号和对应值。万分感谢!我原来笨办法是:在系统做一个新表,列名一样的,新值合并到新表,再旧表加个数值02列,用料号关联,当数值02列表达式等于新表数值列有数据时,再不显示空值,进行把数值02列复制到数值列,不过这样太麻烦了。
--  作者:工匠
--  发布时间:2018/1/11 10:58:00
--  
谢谢有点甜老师,我还是小白,不懂怎么实现,请有时间帮我做个例子,通过点击窗口按钮合并:如果合并表(新值)的料号和系统表A料号相同的,就直接替换原来表A料号对应的值,如果不一样的料号,则合并新增加入这些不一样的料号和对应值。万分感谢!我原来笨办法是:在系统做一个新表,列名一样的,新值合并到新表,再旧表加个数值02列,用料号关联,当数值02列表达式等于新表数值列有数据时,再不显示空值,进行把数值02列复制到数值列,不过这样太麻烦了。

--  作者:有点甜
--  发布时间:2018/1/11 11:09:00
--  
做一个按钮,执行2楼的代码,即可。
--  作者:工匠
--  发布时间:2018/1/11 11:27:00
--  
谢谢老师,可以了。建议官方集合一些点赞的表情包在论坛,方便广大学员使用...