以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 导入数据的同时将更新的内容记录下来 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146630) |
-- 作者:季朝龙 -- 发布时间:2020/2/28 9:49:00 -- 导入数据的同时将更新的内容记录下来 通过以下代码导入数据,如果存在同编号的订单,更新数据,同时将列“供应链回复”更新前的数据保存在列“供应链上次回复”上, 我在DataColChanged事件中写了如下代码,但是无法实现需求,求助狐狸爸爸 DataColChanged事件代码 Select Case e.DataCol.name Case "采购部更新" e.DataRow("采购部最近更新时间") = now Case "供应链回复" If e.OldValue Is Nothing Then Else e.DataRow("供应链上次回复") = e.OldValue DataTables("周计划会").Save() End If End Select 按钮代码 If User.Name = "陈兰秀" Then MainTable = Tables("周计划会") Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "(*.*)|*.*" \'设置筛选器,不限制文件格式 If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Dim Book As New XLS.Book(dlg.FileName) Dim Sheet As XLS.Sheet = Book.Sheets("原始数据") \'定义需要导入的excel工作部内工作表的名称 Tables("周计划会").StopRedraw() Dim nms() As String = {"工单编号","订单类型","期望交货日期","需求源头","PN码","型号","小类名称","生产数量","在制量","项目情况说明","排单优先级","销管需求","齐套时间","齐套否","缺料情况","供应链回复","订单数量","导入日期"} \'定义需要导入的列名称,且列名称顺序要与excel表的顺序一致 For n As Integer = 1 To Sheet.Rows.Count -1 Dim bh As String = sheet(n,0).Text \'定义需导入excel表个第一列的值 Dim bh1 As String = sheet(n,5).Text \'定义需导入excel表个第六列的值 Dim dr As DataRow = DataTables("周计划会").SqlFind("工单编号 = \'" & 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 dr.save Next Tables("周计划会").ResumeRedraw() \'恢复绘制表 End If DataTables("周计划会").DeleteFor("工单编号 Is Null") \'删除符合条件的行 DataTables("周计划会").LoadFilter = "导入日期 = #" & Date.Today & "#" DataTables("周计划会").Load Else MessageBox.Show("您没有导入数据权限!") End If |
-- 作者:有点蓝 -- 发布时间:2020/2/28 10:46:00 -- 代码看不出什么。请上传实例测试 |