以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于datatablesFIND用法的疑问  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=84136)

--  作者:xiangwei_zeng
--  发布时间:2016/4/23 17:20:00
--  [求助]关于datatablesFIND用法的疑问
如下代码红色处如果是查询表则可以,只是table表就不行,这是什么原因?
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
Dim pr1 As DataRow
Dim pr2 As DataRow
Dim pr3 As DataRow
Select Case e.DataCol.Name
    Case "生产任务单号"
        If dr("核算确认")<>"Y" Then
            Dim filter As String
            filter = "编号 = \'" & dr("生产任务单号") & "\'"
            pr = DataTables("worksql003").Find(filter)
            If pr IsNot Nothing Then
                If pr.IsNull("销售订单号") Then
                    dr("订单号") = pr("预测单号")
                Else
                    dr("订单号") = pr("销售订单号")
                End If
            End If
            Dim filter1 As String
            Dim filter2 As String
            filter1 = "单据编号 = \'" & dr("订单号") & "\'"
            filter2 = "编号= \'" & dr("订单号") & "\'"
            pr1 = DataTables("销售订单序时簿sql").Find(filter1)
            pr2 = DataTables("预测订单sql").Find(filter2)
            If pr1 IsNot Nothing Then
                dr("产品编码") = pr1("产品长代码")
            ElseIf pr2 IsNot Nothing Then
                dr("产品编码") = pr2("物料长编码")
            End If
            If dr.IsNull("产品编码")=False Then
                Dim filter3 As String
                filter3 = "产品长代码= \'" & dr("产品编码") & "\'"
                pr3 = DataTables("装配产品系数表").Find(filter3)
                If pr3 IsNot Nothing Then
                    dr("产品类型") = pr3("产品类型")
                End If
            End If
        End If
End Select

--  作者:Hyphen
--  发布时间:2016/4/23 17:27:00
--  
table表就不行,具体怎么样个不行法,什么错误
--  作者:xiangwei_zeng
--  发布时间:2016/4/23 17:58:00
--  

此主题相关图片如下:截图00.jpg
按此在新窗口浏览图片


以预测订单的FIND为例,代码用预测订单表时就提示出错,用预测订单sql表时就OK.预测订单sql表就是查询的预测订单表,两个表都是打开状态。
 pr1 = DataTables("销售订单序时簿sql").Find(filter1)
 pr2 = DataTables("预测订单sql").Find(filter2)
如上代码OK,
 pr1 = DataTables("销售订单序时簿").Find(filter1)
 pr2 = DataTables("预测订单").Find(filter2)
如上代码NG,提示出错,预测订单表和销售订单序时簿是存在,不然也不会有对应的sql表,不过代码所在表与要查询引用的表不在同一个数据源。

[此贴子已经被作者于2016/4/23 18:00:28编辑过]

--  作者:Hyphen
--  发布时间:2016/4/24 11:04:00
--  
提示什么错误
--  作者:大红袍
--  发布时间:2016/4/24 12:55:00
--  

1、

 

msgbox(Filter1)

msgbox(Fitler2)

 

2、报什么错?提示什么错误?