以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  代码出错 将对象引用设置到对象实例  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=104212)

--  作者:nbsugu_z
--  发布时间:2017/7/25 15:06:00
--  代码出错 将对象引用设置到对象实例
按上面的方法设计了一个电表抄表计算。二个数据表
 表A为各电表编号 全数字,如1123,列名为:编号、价格
表B:列名为:  月份   D1123dj    d1124dj  d1125dj .........
现在要每增加一个月份(增加一行)后,表B的对应的单价能从表A中获取。
因表B列名不能以数字开头,加了一个“D”,因为以后还有相应倍率的列行增加,所以单价后面加了个“ DJ"

现在写了如下代码,提示未将对象引用设置到对象实例,进入死环,请指教
If e.DataCol.name = "月" Then
    If e.DataCol.name Like "*dj*"  Then

    Dim name1 As String = Left(e.DataCol.Name.Replace("dj", ""),1) \'去掉后二位dj和第一位字符得到编号
    Dim drb As DataRow
                drb = DataTables("表A").Find("编号 = \'name1\'") \'找到表识别中编号为name1的行
                e.DataRow( "d"  &  name1 & "dj")  = drb("价格")   \'自动从"表识别"取数
     End if 
end if

以上 一个一个取数我已经会做的,现在想快速点,因为表B的电表列名去掉第一个字符和最后二个字符 就是表A的编号,有这个关系在,想直接一次性解决,减少代码,因为电表有很多。

--  作者:有点甜
--  发布时间:2017/7/25 17:33:00
--  

http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=104137&authorid=0&page=0&star=2