以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]导入数据时,如何只更新变化的数据,其他数据不变呢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=110480)

--  作者:hrw68529
--  发布时间:2017/12/4 13:22:00
--  [求助]导入数据时,如何只更新变化的数据,其他数据不变呢
如下代码:现在我只想更新面试顺序的内容,其他列内容不变,如何写代码呢,现在的代码必须全部更新,谢谢

代码:
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls|Word文件|*.doc|Access文件|*.mdb" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim Book As New XLS.Book(dlg.FileName)
    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()
End If

图:数据表:
图片点击可在新窗口打开查看此主题相关图片如下:截图02.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2017/12/4 14:25:00
--  

1楼的代码没有问题,只会修改 身份证号、面试顺序 两列的数据的。

 

如果有问题,具体可以做个例子发上来测试。


--  作者:hrw68529
--  发布时间:2017/12/4 14:31:00
--  
上例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.zip


--  作者:有点甜
--  发布时间:2017/12/4 14:54:00
--  

汗,如果报错,你应该说一下,报错吧?

 

Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls|Word文件|*.doc|Access文件|*.mdb" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim Book As New XLS.Book(dlg.FileName)
    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()
End If


--  作者:hrw68529
--  发布时间:2017/12/4 15:34:00
--  
有点甜:把标红的去掉吗
--  作者:有点甜
--  发布时间:2017/12/4 15:45:00
--  
以下是引用hrw68529在2017/12/4 15:34:00的发言:
有点甜:把标红的去掉吗

 

改成4楼的代码,注意标红的地方。