以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  调用错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=149306)

--  作者:nbsugu_z
--  发布时间:2020/4/28 15:37:00
--  调用错误
\'填入计息本金自动
Select Case e.DataCol.name
    Case "cpbm","fxrq","qxrq"
        If e.DataRow.IsNull("fxrq") Then
            e.DataRow("jsbj") = Nothing
        Else
            Dim cp As DataRow
            Dim dd As Date = e.DataRow("qxrq")
            Dim dd1 As Date = dd.AddDays(-1)
            Dim dr As DataRow
            dr = DataTables("dk_lxb").Find("[cpbm] = \'" & cp("cpbm")  & "\' And [zxrq] = # \'" & dd1 & "\'#")
            
            If dr IsNot Nothing
                e.DataRow("jsbj") = dr("ye")
                
            End If
        End If
    
End Select

上面代码保存时没提示有问题,运行重置时提示调用错误

--  作者:有点蓝
--  发布时间:2020/4/28 15:45:00
--  
dr = DataTables("dk_lxb").Find("[cpbm] = \'" & cp("cpbm")  & "\' And [zxrq] = # \'" & dd1 & "\'#")把日期里面的单引号去掉,再把第一个#号后面的空格去掉
--  作者:nbsugu_z
--  发布时间:2020/4/28 16:20:00
--  
NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.4.19.8
错误所在事件:表,dk_lxb,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

Select Case e.DataCol.name
    Case "cpbm","fxrq","qxrq"
        If e.DataRow.IsNull("fxrq") Then
            e.DataRow("jsbj") = Nothing
        Else
            Dim cp As DataRow
            Dim dd As Date = e.DataRow("qxrq")
            Dim dd1 As Date = dd.AddDays(-1)
            Dim dr As DataRow
            dr = DataTables("dk_lxb").Find("[cpbm] = \'" & cp("cpbm")  & "\' And [zxrq] = #" & dd1 & "#")
            
            If dr IsNot Nothing
                e.DataRow("jsbj") = dr("ye")
                
            End If
        End If
    
End Select

去掉了还是有问题,还有地方不对吗

--  作者:有点蓝
--  发布时间:2020/4/28 16:25:00
--  
dr = DataTables("dk_lxb").Find("[cpbm] = \'" & e.DataRow("cpbm")  & "\' And [zxrq] = #" & dd1 & "#")
--  作者:nbsugu_z
--  发布时间:2020/4/28 16:50:00
--  
添加或减去的值产生无法表示的 DateTime。
参数名: value

\'填入计息本金自动
Select Case e.DataCol.name
   Case "cpbm","fxrq","qxrq"
        If e.DataRow.IsNull("fxrq") Then
            e.DataRow("jsbj") = Nothing
        Else
           Dim dd As Date = e.DataRow("qxrq")
            Dim dd1 As Date = dd.AddDays(-1)
            Dim dr As DataRow
            dr = DataTables("dk_lxb").Find("[cpbm] = \'" & e.DataRow("cpbm")  & "\' And [zxrq] = #" & dd1 & "#")
            If dr IsNot Nothing
         e.DataRow("jsbj") = dr("ye")
              
            End If
        End If
    
End Select

还是不行,难道问题出在第一行?因为首行是找不到,如果“dd1”不在表内,这e.DataRow("jsbj") = dr("ye")有问题了,这个判断如何加呢?估计问题出在这里了
[此贴子已经被作者于2020/4/28 16:54:32编辑过]

--  作者:有点蓝
--  发布时间:2020/4/28 17:02:00
--  
日期没有值吧

 If e.DataRow.IsNull("fxrq") orelse e.DataRow.IsNull("qxrq") Then
e.DataRow("jsbj") = Nothing