以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  产品代号筛选  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=128302)

--  作者:宁老师SQE
--  发布时间:2018/12/3 14:35:00
--  产品代号筛选

图片点击可在新窗口打开查看此主题相关图片如下:360截图16640325443035.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:360截图16640325443035.png
图片点击可在新窗口打开查看

能不能通过输入产品代号就能弹出来已经通过开发的全部供应商呢    因为我们是外贸公司 供应商实在是太多了 
只能通过产品代号和供应商跨表引用数据了

--  作者:宁老师SQE
--  发布时间:2018/12/3 14:35:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:360截图163311255711677.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/12/3 14:54:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/1457.htm

 

http://www.foxtable.com/webhelp/scr/1459.htm

 


--  作者:宁老师SQE
--  发布时间:2018/12/19 8:22:00
--  
如果供应商唯一  我希望在输入产品代号时候直接把这个唯一供应商相关信息直接跨表引用数据了  怎么办呢


--  作者:宁老师SQE
--  发布时间:2018/12/19 8:27:00
--  

\'如果刚刚输入的是省市或县市列
If
e.DataCol.Name = "省市" Orelse e.DataCol.Name = "县市" Then
    Dim
dr As DataRow
   
Dim Filter As
String
    Filter = "[省市] = \'" & e.DataRow("省市") & "\' And [县市] = \'" & e.DataRow("县市") & "\'"
    dr = DataTables("行政区域").Find(
Filter) \'在行政区域表查找所输入省市和县市的行
    If
dr IsNot Nothing Then \'如果找到
        \'将找到行的区号和邮编内容填入到正在输入的行中

        e.DataRow("区号") = dr("区号")
        e.DataRow("邮编") = dr("邮编")
    Else
       
\'否则清除区号和邮编两列的内容
        e.DataRow("区号") = Nothing
        e.DataRow("邮编") = Nothing
    End
If
End
If


就像这段代码  我想做唯一值判断怎么改写呢



--  作者:有点甜
--  发布时间:2018/12/19 9:01:00
--  
If e.DataCol.Name = "省市" Orelse e.DataCol.Name = "县市" Then
    Dim Filter As String
    Filter = "[省市] = \'" & e.DataRow("省市") & "\' And [县市] = \'" & e.DataRow("县市") & "\'"
    Dim drs = DataTables("行政区域").select(Filter) \'在行政区域表查找所输入省市和县市的行
    If drs.count = 1 Then \'如果找到
        \'将找到行的区号和邮编内容填入到正在输入的行中
        e.DataRow("区号") = drs(0)("区号")
        e.DataRow("邮编") = drs(0)("邮编")
    Else
        \'否则清除区号和邮编两列的内容
        e.DataRow("区号") = Nothing
        e.DataRow("邮编") = Nothing
    End If
End If

--  作者:宁老师SQE
--  发布时间:2018/12/19 9:46:00
--  
If e.DataCol.Name = "产品代号" OrElse e.DataCol.Name = "供应商" Then
    Dim Filter As String
    Filter = "[产品代号] = \'" & e.DataRow("产品代号") & "\' And [供应商] = \'" & e.DataRow("供应商") & "\' And [开发关闭] =  True  "
    Dim drs = DataTables("新产品开发阶段表").Select(Filter) \'在行政区域表查找所输入省市和县市的行
    If drs.count > 1 Then \'
        e.DataRow("供应商联系人") = drs("供应商联系人")
        e.DataRow("联系电话") = drs("供应商联系电话")
        e.DataRow("供应商_铸造价格") = drs("产品单价_铸造价格")
        e.DataRow("供应商_加工价格") = drs("产品单价_加工价格")
        e.DataRow("供应商管理SQE") = drs("供应商管理SQE")
Else If  e.DataCol.Name = "产品代号" OrElse e.DataCol.Name = "供应商" Then
        Dim Filtera As String
        Filtera = "[产品代号] = \'" & e.DataRow("产品代号") & "\' And [供应商] = \'" & e.DataRow("供应商") & "\' And [开发关闭] =  True  "
        Dim drn = DataTables("新产品开发阶段表").Select(Filtera)
        If drn.count = 1 Then \'
        e.DataRow("供应商") = drn("供应商")
        e.DataRow("供应商联系人") = drn("供应商联系人")
        e.DataRow("联系电话") = drn("供应商联系电话")
        e.DataRow("供应商_铸造价格") = drn("产品单价_铸造价格")
        e.DataRow("供应商_加工价格") = drn("产品单价_加工价格")
        e.DataRow("供应商管理SQE") = drn("供应商管理SQE")
    Else
        e.DataRow("供应商") = Nothing
        e.DataRow("供应商联系人") = Nothing
        e.DataRow("联系电话") = Nothing
        e.DataRow("供应商_铸造价格") = Nothing
        e.DataRow("供应商_加工价格") = Nothing
        e.DataRow("供应商管理SQE") = Nothing
    End If
    End If
End If
  修改的有问题吗   怎么老是提醒异常呢


--  作者:有点甜
--  发布时间:2018/12/19 12:33:00
--  

If e.DataCol.Name = "产品代号" OrElse e.DataCol.Name = "供应商" Then
    Dim Filter As String
    Filter = "[产品代号] = \'" & e.DataRow("产品代号") & "\' And [供应商] = \'" & e.DataRow("供应商") & "\' And [开发关闭] =  True  "
    Dim drs = DataTables("新产品开发阶段表").Select(Filter) \'在行政区域表查找所输入省市和县市的行
    If drs.count = 1 Then \'
        e.DataRow("供应商") = drs(0)("供应商")
        e.DataRow("供应商联系人") = drs(0)("供应商联系人")
        e.DataRow("联系电话") = drs(0)("供应商联系电话")
        e.DataRow("供应商_铸造价格") = drs(0)("产品单价_铸造价格")
        e.DataRow("供应商_加工价格") = drs(0)("产品单价_加工价格")
        e.DataRow("供应商管理SQE") = drs(0)("供应商管理SQE")
    Else
        e.DataRow("供应商") = Nothing
        e.DataRow("供应商联系人") = Nothing
        e.DataRow("联系电话") = Nothing
        e.DataRow("供应商_铸造价格") = Nothing
        e.DataRow("供应商_加工价格") = Nothing
        e.DataRow("供应商管理SQE") = Nothing
    End If
End If

--  作者:宁老师SQE
--  发布时间:2018/12/19 13:21:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:360截图16530715101103150.png
图片点击可在新窗口打开查看
一个是  代码写进去后调试并没有出现我想要的情况
图片点击可在新窗口打开查看此主题相关图片如下:360截图16411203728366.png
图片点击可在新窗口打开查看


二个是   drs(0)("供应商")  这个(0)是什么意思

--  作者:有点甜
--  发布时间:2018/12/19 14:40:00
--  

If e.DataCol.Name = "产品代号" OrElse e.DataCol.Name = "供应商" Then
    Dim Filter As String   
    If e.DataRow("供应商") = Nothing Then       
        Filter = "[产品代号] = \'" & e.DataRow("产品代号") & "\' And [开发关闭] =  True  "       
    Else
        Filter = "[产品代号] = \'" & e.DataRow("产品代号") & "\' And [供应商] = \'" & e.DataRow("供应商") & "\' And [开发关闭] =  True  "       
    End If
    Dim drs = DataTables("新产品开发阶段表").Select(Filter) \'在行政区域表查找所输入省市和县市的行
    If drs.count = 1 Then \'
        e.DataRow("供应商") = drs(0)("供应商")
        e.DataRow("供应商联系人") = drs(0)("供应商联系人")
        e.DataRow("联系电话") = drs(0)("供应商联系电话")
        e.DataRow("供应商_铸造价格") = drs(0)("产品单价_铸造价格")
        e.DataRow("供应商_加工价格") = drs(0)("产品单价_加工价格")
        e.DataRow("供应商管理SQE") = drs(0)("供应商管理SQE")
    Else
        e.DataRow("供应商") = Nothing
        e.DataRow("供应商联系人") = Nothing
        e.DataRow("联系电话") = Nothing
        e.DataRow("供应商_铸造价格") = Nothing
        e.DataRow("供应商_加工价格") = Nothing
        e.DataRow("供应商管理SQE") = Nothing
    End If
End If