以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]自动更新  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141564)

--  作者:冷泉
--  发布时间:2019/10/4 15:04:00
--  [求助]自动更新
If e.DataCol.Name = "供应商名称" Then \'发生变化的是产品编号吗?
    \'在产品表找出该产品
    Dim dr As DataRow
    dr = DataTables("供应商资料").Find("供应商名称 = \'" & e.DataRow("供应商名称") & "\'" )
    If dr IsNot Nothing \'如果找到, 则设置各列内容
        e.DataRow("供应商名称") = dr("供应商名称")
        e.DataRow("地址") = dr("地址")
        e.DataRow("联系人") = dr("联系人")
        e.DataRow("电话") = dr("电话")
        
    End If
End If

Select Case e.DataCol.name
    Case "供应商名称"
        Dim dr As DataRow = DataTables("供应商资料").Find("供应商名称 = \'" & e.newValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("供应商资料").AddNew()
            dr("供应商名称") = e.DataRow("供应商名称")
            dr("地址") = e.DataRow("地址")
            dr("联系人") = e.DataRow("联系人")
            dr("电话") = e.DataRow("电话")
        Else
            dr("供应商名称") = e.DataRow("供应商名称")
        End If
        
    Case "供应商名称","地址","联系人","电话"
        Dim dr As DataRow = DataTables("供应商资料").Find("供应商名称 = \'" & e.DataRow("供应商名称") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

我在入库单,录入了一个新的供应商名称,在供应商资料表格里面会自动增加该供应商信息,在下一个入库单,如果下拉框选择该供应商,供应商信息表,任然还会重复添加该供应商名称。
这个代码是哪里错误,麻烦老师指导下

--  作者:有点酸
--  发布时间:2019/10/4 16:02:00
--  
代码没看出问题,做个简单例子发上来看看。
--  作者:冷泉
--  发布时间:2019/10/7 22:29:00
--  

好的,已经上传了,主要问题是:
我录采购单,录入供应商A信息然后点击保存,供应商信息表里面会自动新增A的资料,继续录采购单,再录入供应商B信息同样保存,供应商信息里面会新增B的资料,然后继续录采购单,下拉框选择B,保存,然后继续录采购单,下拉框选择B
我发现在供应商基础信息表里面,原有的A信息,会被变成B信息,而且后面采购单如果继续录B供应商的采购单,供应商资料表会重复添加B信息,代码是哪里错了吗,我是希望,采购单里面输入新的供应商信息(供应商资料里面没有该供应商),
供应商资料表自动新增即可,不要重复新增旧值。麻烦老师指导下
[此贴子已经被作者于2019/10/7 23:17:00编辑过]

--  作者:有点蓝
--  发布时间:2019/10/8 9:18:00
--  
是指下拉框没有新增的供应商可选择吧?看看:http://www.foxtable.com/webhelp/topics/1457.htm
--  作者:冷泉
--  发布时间:2019/10/8 17:55:00
--  
额,为什么不能上传附件了,上传了好几天都不行,不是下拉框没有更新,是下拉框选择了供应商名称,后面供应商资料表那里会重复添加该供应商名称
--  作者:有点蓝
--  发布时间:2019/10/8 20:40:00
--  
Select Case e.DataCol.name
    Case "供应商名称"
        Dim dr As DataRow = DataTables("供应商资料").Find("供应商名称 = \'" & e.newValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("供应商资料").AddNew()
            dr("供应商名称") = e.DataRow("供应商名称")
            dr("地址") = e.DataRow("地址")
            dr("联系人") = e.DataRow("联系人")
            dr("电话") = e.DataRow("电话")
        End If
        
    Case "地址","联系人","电话"
        Dim dr As DataRow = DataTables("供应商资料").Find("供应商名称 = \'" & e.DataRow("供应商名称") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select