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


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

主题:求助

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


加好友 发短信
等级:婴狐 帖子:34 积分:277 威望:0 精华:0 注册:2014/1/17 23:02:00
求助  发帖心情 Post By:2014/3/28 12:36:00 [只看该作者]

我现有一段代码,已能成功地将"面积计算表"导入到"订单明细表",我是以"单号"

做为不能重复导入的条件,现有个问题麻烦各路高手帮忙解决一下,问题是我原来的“订单明细表”中有了  单号为80  的这一行,如果我要导入的“面积计算表”中也有  单号为80  的这一行,要给我个提示,且不做导入,在改正后再执行以下代码,请帮忙,谢谢

Dim Book As New XLS.Book("e:\面积计算表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("订单明细表").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"单号","客户订单号","工程名称","编号","数量","长度1","长度2","长度3","长度4","宽度1","宽度2","宽度3","宽度4"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim dh As String = sheet(n,0).Text
    If DataTables("订单明细表").Find("单号 = '" & dh & "'") Is Nothing Then '如果不存在同编号的订单
        Dim r As Row = Tables("订单明细表").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next
Tables("订单明细表").ResumeRedraw()


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


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

你上面的已经不会重复导入了,要提示的话:

 

Dim Book As New XLS.Book("e:\面积计算表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim s as string
Tables("订单明细表").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"单号","客户订单号","工程名称","编号","数量","长度1","长度2","长度3","长度4","宽度1","宽度2","宽度3","宽度4"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim dh As String = sheet(n,0).Text
    If DataTables("订单明细表").Find("单号 = '" & dh & "'") Is Nothing Then '如果不存在同编号的订单
        Dim r As Row = Tables("订单明细表").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next

     Else

          s = s & " " & dh
    End If
Next

Tables("订单明细表").ResumeRedraw()

if s > "" then

    Messagebox.show("以下单号重复,没有导入:" & s)

end if


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


加好友 发短信
等级:婴狐 帖子:34 积分:277 威望:0 精华:0 注册:2014/1/17 23:02:00
  发帖心情 Post By:2014/3/28 16:35:00 [只看该作者]

如果要要把数据导入子表的话能不能实现?比如说导入到“订单管理主表.订单明细表”中


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


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

当然可以:

 

Dim Book As New XLS.Book("e:\面积计算表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim s as string
Tables("订单明细表").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"单号","客户订单号","工程名称","编号","数量","长度1","长度2","长度3","长度4","宽度1","宽度2","宽度3","宽度4"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim dh As String = sheet(n,0).Text
    If DataTables("订单明细表").Find("单号 = '" & dh & "'") Is Nothing Then '如果不存在同编号的订单
        Dim r As Row = Tables("订单明细表").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next

        r("订单编号") = Tables("订单").Current("订单编号")

     Else

          s = s & " " & dh
    End If
Next

Tables("订单明细表").ResumeRedraw()

if s > "" then

    Messagebox.show("以下单号重复,没有导入:" & s)

end if


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


加好友 发短信
等级:婴狐 帖子:34 积分:277 威望:0 精华:0 注册:2014/1/17 23:02:00
  发帖心情 Post By:2014/3/28 17:47:00 [只看该作者]

导入到“订单管理主表.订单明细表”中,不成功请 狐狸爸爸 帮忙解决,谢谢

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


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

Dim Book As New XLS.Book("e:\面积计算表.xls")
Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim s as string
Tables("订单明细表").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"单号","客户订单号","工程名称","编号","数量","长度1","长度2","长度3","长度4","宽度1","宽度2","宽度3","宽度4"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim dh As String = sheet(n,0).Text
    If DataTables("订单明细表").Find("单号 = '" & dh & "'") Is Nothing Then '如果不存在同编号的订单
        Dim r As DataRow = DataTables("订单明细表").AddNew()
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next

        r("订单编号") = Tables("订单").Current("订单编号")

     Else

          s = s & " " & dh
    End If
Next

Tables("订单明细表").ResumeRedraw()

if s > "" then

    Messagebox.show("以下单号重复,没有导入:" & s)

end if


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


加好友 发短信
等级:婴狐 帖子:34 积分:277 威望:0 精华:0 注册:2014/1/17 23:02:00
  发帖心情 Post By:2014/3/28 22:13:00 [只看该作者]

已成功,谢谢

 回到顶部