以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何利用“更新同主键记录”更新记录  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=40977)

--  作者:反思
--  发布时间:2013/10/8 15:08:00
--  如何利用“更新同主键记录”更新记录

在利用EXCEL进行数据导入时,选择“更新同主键记录”方式更新记录,但是在选定表中还是没有更新记录而是在表后面增加记录。

请问如何解决,如何设计主键。


--  作者:Bin
--  发布时间:2013/10/8 15:09:00
--  
你确定主键是相同的吗? 默认主键是 _IDentify 列哦
--  作者:反思
--  发布时间:2013/10/8 15:11:00
--  

 是我采用的是默认主键是 _IDentify 列哦

但是在EXCEL里就不知道在哪里设置。


--  作者:Bin
--  发布时间:2013/10/8 15:12:00
--  
Excel表格有 _Identify列吗? 没有的话怎么对比? 当然是全部都没重复 全部都添加啦.
--  作者:反思
--  发布时间:2013/10/8 15:48:00
--  

利用ACCESS 导入也不行

在ACCESS设置了主键

还是不行。请指导。


--  作者:Bin
--  发布时间:2013/10/8 15:59:00
--  
呵呵,不会的.上个例子看看.
--  作者:有点甜
--  发布时间:2013/10/8 21:02:00
--  
 多嘴说一句,自带的高速合并真心不好用,至少可以给用户指定主键/指定要对比的列嘛,这样才合理简单易用。

 现在只能用代码自己导入了。


--  作者:反思
--  发布时间:2013/10/9 0:16:00
--  
测试的项目如下:
1)在县分公司表内进行数据导入,导入文件为“县分.mdb”
2)导入的两个表格都试过都未能成功
3)希望的结果是附件“县分1.XLS”
试了很多次都未成功。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip


--  作者:有点甜
--  发布时间:2013/10/9 23:13:00
--  
 up一下,暂无时间做。参考7楼代码先自己弄弄。
--  作者:有点甜
--  发布时间:2013/10/9 23:22:00
--  
 把下面的代码赋值到 命令窗口 或者 做成一个按钮执行。

Dim dlg As new OpenFileDialog
dlg.Filter = "excel文件|*.xls;*.xlsx"
If dlg.ShowDialog Then
    Dim Book As New XLS.Book(dlg.FileName)
    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 fdr As DataRow = DataTables("县分公司").Find("编号 = \'" & bh & "\'")
        If fdr Is Nothing Then \'如果不存在同编号的订单
            fdr = DataTables("县分公司").AddNew()
        End If
        For m As Integer = 0 To nms.Length - 1
            fdr(nms(m)) = Sheet(n,m).Value
        Next
        
    Next
    Tables("县分公司").ResumeRedraw()
End If