以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  从2个表上读取数据,出现 不能传递数据的错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=27543)

--  作者:ljh29206
--  发布时间:2013/1/4 11:26:00
--  从2个表上读取数据,出现 不能传递数据的错误

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:2012-10-15.txt

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

增加了从1个表上查找后 出错, 麻烦老师帮下忙 看下附件.


--  作者:lin_hailun
--  发布时间:2013/1/4 12:03:00
--  
 楼主,是因为在你的部品明细表里,没有对应的条码,查找不出对应的值,所以报错。

Dim t As Table = Tables("总表.子表")
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter= "文本文件|*.txt" \'设置筛选器
If dlg.ShowDialog = DialogResult.OK Then
    Dim strs As String = FileSys.ReadAllText(dlg.FileName)
    strs = strs.Replace(vblf, "")
    Dim rs() As String = strs.Split(vbcr)
    For i As Integer = 0 To rs.Length - 1
        Dim cs() As String = rs(i).Split(",")
        If cs.Length = 4 Then
            Dim dr4 As Row = Tables("总表").Current
            Dim fdr As DataRow = t.DataTable.Find("条码 = \'" & cs(1) & "\' and 编号 = \'" & dr4("编号") & "\'")
            Dim dr3 As DataRow = DataTables("部品明细").Find("条码 = \'" & cs(1) & "\'")
            If dr3 IsNot Nothing Then
                If fdr Is Nothing Then
                    Dim r As Row = t.Addnew()
                    r("条码") = cs(1)
                    r("品番") = dr3("品番")
                    r("数量") = cs(2) * dr3("包装规格")
                Else
                    fdr("数量") = fdr("数量")   +  cs(2) * dr3("包装规格")
                End If
            End If
        End If
    Next
End If

--  作者:ljh29206
--  发布时间:2013/1/4 13:08:00
--  

哦  明白了  原来   is nothing 是这么用的

学到了.

多谢  林老师 ,下次再做 会注意了