以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多条件跨表引用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149138)

--  作者:BATASC750206
--  发布时间:2020/4/24 11:51:00
--  多条件跨表引用
早上好!
      请问多条件跨表引用多列文本代码怎么写?
      如“订单”表和“订单资料”表,条件“客户名称,PO,产品编号,颜色”,引用“订单资料”表里的”客品编号,产品描述,英文颜色,客户色号“这几列的内容引用到”订单“表里。
请问代码怎么写?

Select Case e.DataCol.Name
    Case
"客户名称","PO",
"产品编号","颜色"
       
Dim dr As DataRow = e.DataRow
       
Dim pr As DataRow
       
If dr.IsNull("客户名称") OrElse dr.IsNull("PO") OrElse dr.IsNull("产品编号"OrElse dr.IsNull("产品编号") Then

            dr("客品编号") = Nothing

    dr("产品描述") = Nothing

            dr("英文颜色") = Nothing

            dr("客户色号") = Nothing
       
Else
            
Dim filter As String

            filter = "客户名称 = \'" & dr("客户名称") & "\' And PO = \'" & dr("PO") & "\' And 产品编号 = \'" & dr("产品编号") & "\'"
            pr =
DataTables("订单资料").Find(filter)
            If
pr IsNot Nothing
Then
                dr(
"客品编号") = pr("客品编号")
dr("产品描述") = pr("产品描述")
dr("英文颜色") = pr("英文颜色")
dr("客户色号") = pr("客户色号")
            End
If
       
End If
End
Select
以上代码没作用?请问哪里有问题?
[此贴子已经被作者于2020/4/24 11:51:39编辑过]

--  作者:有点蓝
--  发布时间:2020/4/24 11:55:00
--  
代码放到datacolchanged事件,如果颜色也是条件

filter = "客户名称 = \'" & dr("客户名称") & "\' And PO = \'" & dr("PO") & "\' And 产品编号 = \'" & dr("产品编号") & "\' and 颜色 = \'" & dr("颜色") & "\'"

如果还不行,就是没有同时符合这4个条件的数据



--  作者:BATASC750206
--  发布时间:2020/4/24 17:17:00
--  
有符合条件的,但不知为何?就是引用不了!是不是代码有问题?请再帮忙看看

[此贴子已经被作者于2020/4/24 17:17:17编辑过]

--  作者:有点蓝
--  发布时间:2020/4/24 17:27:00
--  
看不出什么问题。这些列有没有是表达式列的?

msgbox(filter)把显示的条件单独拿到数据库执行有没有数据