以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]代码错误,求指正 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61703) |
-- 作者:huangfanzi -- 发布时间:2014/12/17 15:58:00 -- [求助]代码错误,求指正 以下代码写在原料采购入库明细的DataColChanged事件 代码用意: 1、当表“原料采购入库明细”中录入“凭证号”(即原料采购入库通知单的通知单号),表“原料采购入库通知明细”的逻辑列“是否入库”打上TRUE,此功能已经实现 2、当表“原料采购入库明细”“凭证号”列发生变化后,检查表“原料采购入库通知明细”中的“通知单号”是否出现在“原料采购入库明细”中,如果不存在,将通知单的逻辑列“是否入库”打上False,说明还没入库。 现在出现一个问题,dr3 = DataTables("原料采购入库明细").Find("[凭证号] <> \'" & dr2.("通知单号") & "\'") 此条语句错误,不知错哪了,无法保存表事件 \'凭证号录入后锁定对应的"原料采购入库通知明细"的"是否入库"列 If e.DataCol.Name = "凭证号" Then \'如果内容发生变动的是凭证号列 If e.NewValue Is Nothing Then \'如果新值是空白 e.DataRow("牌号") = Nothing \'那么清空此行此列的内容 e.DataRow("厚度") = Nothing \'那么清空此行此列的内容 e.DataRow("宽度") = Nothing \'那么清空此行此列的内容 e.DataRow("重量") = Nothing \'那么清空此行此列的内容 Else Dim dr1 As DataRow \'在"原料采购入库通知明细"查找凭证号的行 dr1 = DataTables("原料采购入库通知明细").Find("[通知单号] = \'" & e.NewValue & "\'") If dr1 IsNot Nothing Then \'如果找到了,也就是dr不是Nothing dr1("是否入库")=True End If ‘以上代码执行正常,下面的开始出错 For Each dr2 As DataRow In DataTables("原料采购入库通知明细").DataRows Dim dr3 As DataRow dr3 = DataTables("原料采购入库明细").Find("[凭证号] <> \'" & dr2.("通知单号") & "\'") If dr3 IsNot Nothing Then \'如果找到了,也就是dr3不是Nothing dr2("是否入库")=False End If Next End If End If
|
-- 作者:有点甜 -- 发布时间:2014/12/17 16:03:00 -- dr3 = DataTables("原料采购入库明细").Find("[凭证号] <> \'" & dr2("通知单号") & "\'") |
-- 作者:huangfanzi -- 发布时间:2014/12/17 16:09:00 -- 第一次自己编这样复杂的代码,不像之前抄来的,想不到在这么一个细小的地方出错了,来回看了5次才发现多了一个点,代码还是写的不熟悉,功能已经实现了,谢谢。 |