Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:幼狐 帖子:183 积分:1434 威望:0 精华:0 注册:2014/11/7 21:15:00
[求助]  发帖心情 Post By:2015/3/1 20:10:00 [只看该作者]

版主您好,我写的代码是想把“XLS”表中数据导入系统表中更新“账号","客户号","户名","账户性质","开户日期","存款余额","年日均余额”等列,"XLS"为最新数据,怎样写代码导入最新数据列,同时删除系统表中有而"XLS"没有“账号”列的行。谢谢。
If msgbox("导入更新可以导入客户基础数据和最新的存款余额和年日均余额,是否进行?",65,"提示") = 1 Then
    Dim Book As New XLS.Book("D:\khdaxt\drgx\dgdrgx.xls")
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("对公客户明细").StopRedraw()
    Dim nms() As String = {"账号","客户号","户名","账户性质","开户日期","存款余额","年日均余额"}
    For n As Integer = 0 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)) = trim(Sheet(n,m).Value)
        Next
    Next
    Tables("对公客户明细").ResumeRedraw()
    msgbox("客户数据导入更新完毕!",64,"提示")
End If

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


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

那你还不如删除所有表数据,再重新添加数据,效率绝对比你查找数据要来得高

 

If msgbox("导入更新可以导入客户基础数据和最新的存款余额和年日均余额,是否进行?",65,"提示") = 1 Then
    DataTables("对公客户明细").DataRows.Clear
    Dim Book As New XLS.Book("D:\khdaxt\drgx\dgdrgx.xls")
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    DataTables("对公客户明细").StopRedraw()
    Dim nms() As String = {"账号","客户号","户名","账户性质","开户日期","存款余额","年日均余额"}
    For n As Integer = 0 To Sheet.Rows.Count -1
        Dim bh As String = sheet(n,0).Text
        'Dim dr As DataRow = DataTables("对公客户明细").Find("账号 = '" & bh & "'")
        Dim dr As DataRow = DataTables("对公客户明细").AddNew
        If dr Is Nothing Then '如果不存在同编号的订单
            dr =  DataTables("对公客户明细").AddNew()
        End If
        For m As Integer = 0 To nms.Length -1
            dr(nms(m)) = trim(Sheet(n,m).Value)
        Next
    Next
    DataTables("对公客户明细").ResumeRedraw()
    msgbox("客户数据导入更新完毕!",64,"提示")
End If


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


加好友 发短信
等级:幼狐 帖子:183 积分:1434 威望:0 精华:0 注册:2014/11/7 21:15:00
  发帖心情 Post By:2015/3/1 20:31:00 [只看该作者]

版主您好,我不能删除系统中数据,因为我只想更新每行中部分列数据,同时删除“XLS”表中有“账号”行而系统表中没有“账号”的行。谢谢

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


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

If msgbox("导入更新可以导入客户基础数据和最新的存款余额和年日均余额,是否进行?",65,"提示") = 1 Then
    Dim Book As New XLS.Book("D:\khdaxt\drgx\dgdrgx.xls")
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    DataTables("对公客户明细").StopRedraw()
    Dim nms() As String = {"账号","客户号","户名","账户性质","开户日期","存款余额","年日均余额"}
    Dim zhs As String = ""
    For n As Integer = 0 To Sheet.Rows.Count -1
       
        Dim bh As String = sheet(n,0).Text
        zhs &= "'" & bh & "',"
        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)) = trim(Sheet(n,m).Value)
        Next
    Next
    DataTables("对公客户明细").DeleteFor("账号 not in (" & zhs.Trim(",") & ")")
    DataTables("对公客户明细").ResumeRedraw()
    msgbox("客户数据导入更新完毕!",64,"提示")
End If

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


加好友 发短信
等级:幼狐 帖子:183 积分:1434 威望:0 精华:0 注册:2014/11/7 21:15:00
  发帖心情 Post By:2015/3/1 21:02:00 [只看该作者]

谢谢版主,已解决!

 回到顶部