Foxtable(狐表)用户栏目专家坐堂 → [求助]求助,数据更新的问题


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

主题:[求助]求助,数据更新的问题

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


加好友 发短信
等级:婴狐 帖子:38 积分:398 威望:0 精华:0 注册:2013/7/15 14:16:00
[求助]求助,数据更新的问题  发帖心情 Post By:2013/11/7 10:47:00 [只看该作者]

请各位帮个忙,实例已上传,就是第一次做了“户主信息”,以后每季度都有变动,我如何把村一级管理的已导出数据,直接更新到镇一级的系统里,比如“更新数据源”文件夹里的是村上上报新数据,乍样能智能地自动追加到前面已做好的表里,我设置了个数据更新窗口,里面设置一个数据更新按钮,乍样能点一下数据更新按钮,自动追加数据,(要求:前一次没有的(身份证号)新数据增加在原表里,与原有的数据身份证号相同时不增加记录,身份证后面的每列数据自动覆盖前一次的数据,最好在原表里再显最后更新时间),谢谢各位了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:农户信息管理.rar



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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/7 10:56:00 [只看该作者]

编码合并,想怎么样就怎么样!


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


加好友 发短信
等级:婴狐 帖子:38 积分:398 威望:0 精华:0 注册:2013/7/15 14:16:00
  发帖心情 Post By:2013/11/7 15:12:00 [只看该作者]

请各位帮一下忙啊,谢谢了,用编码合并的只能导入新增加的,新修改的没法覆盖原来的数据啊,

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/7 15:15:00 [只看该作者]

呵呵,不是让你完全复制他的代码呢.

而是说这样你可以随意操作,合并的时候每读取一条数据 可以利用

找到对应身份证号码的行,如果找到的话,那么就不要增加行了,直接覆盖赋值.

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/7 16:19:00 [只看该作者]

以上面的帮助中的例子为例,如果已经存在的更新,不存在的添加,只需将代码改为:

 

 

Dim Book As New XLS.Book("c:\test\订单.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"编号","产品","客户","雇员","单价","折扣","数量","日期"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
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
End If
Next
Tables("订单").ResumeRedraw()


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


加好友 发短信
等级:婴狐 帖子:38 积分:398 威望:0 精华:0 注册:2013/7/15 14:16:00
[求助]  发帖心情 Post By:2013/11/7 21:45:00 [只看该作者]

狐爸,我做了还是不对,实例上传,麻烦您给看一上,谢谢

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



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


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

 我看了一下,你把代码 家庭人口 改成 家庭人口数,就正确了

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


加好友 发短信
等级:婴狐 帖子:38 积分:398 威望:0 精华:0 注册:2013/7/15 14:16:00
  发帖心情 Post By:2013/11/7 21:56:00 [只看该作者]

导入的是重复的啊,户主身份证号相同时,其数据不会覆盖,面是重复一条,不知乍会事?

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


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

 如下代码,测试有效

Dim Book As New XLS.Book(ProjectPath & "更新数据源\户主信息表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("户主信息").StopRedraw()
''注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"户主姓名","户主身份证号","镇","村","社","家庭人口数","耕地面积","林地面积","退耕还林面积","家庭年收入","计生信息","家庭情况","贫困原因","是否双联户","拥有农机具情况"}
For n As Integer = 1 To Sheet.Rows.Count -1
    If sheet(n, 1).text <> "" Then
        Dim sfzh As String = sheet(n,1).Text
        Dim dr As DataRow = DataTables("户主信息").Find("户主身份证号 = '" & sfzh & "'")
        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
    End If
Next
Tables("户主信息").ResumeRedraw()
MessageBox.show("户主信息已成功更新")

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


加好友 发短信
等级:婴狐 帖子:38 积分:398 威望:0 精华:0 注册:2013/7/15 14:16:00
  发帖心情 Post By:2013/11/7 22:22:00 [只看该作者]

谢谢,我试了成功了,谢谢您啊!

 回到顶部