Foxtable(狐表)用户栏目专家坐堂 → 导入更新,但有新数据不会自动追加。如何修改代码


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

主题:导入更新,但有新数据不会自动追加。如何修改代码

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2019/10/9 15:53:00 [显示全部帖子]

用Excel的数据更新foxtable现有数据的代码,比简单地将将Excel数据添加到狐表,前者不是更复杂吗?
你能写出以上复杂的代码,做一些变通调整不至于不会啊。

更新和新增数据,帮助都有例子:

http://www.foxtable.com/webhelp/topics/2334.htm


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2019/10/9 22:37:00 [显示全部帖子]

帮助:


其中有个例子,如果存在相同编号的订单,则覆盖原来的订单,否则新增一个订单,代码为:

Dim Book As New XLS.Book("c:\test\订单.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").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("订单").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
Tables("订单").ResumeRedraw()

如果要改为:如果编号为空,不执行操作,如果存在相同编号的订单,则覆盖原来的订单,否则新增一个订单,代码稍作调整即可:

Dim Book As New XLS.Book("c:\test\订单.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
Dim nms() As String = {"编号","产品","客户","雇员","单价","折扣","数量","日期"}
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text
     if bn = "" Then 
       Continue for
     End if
    Dim dr As DataRow = DataTables("订单").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
Tables("订单").ResumeRedraw()

代码并不复杂,自己体会消化。


[此贴子已经被作者于2019/10/9 22:37:41编辑过]

 回到顶部