以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]加载当天数据时,如果没有会报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144375)

--  作者:天一生水
--  发布时间:2019/12/18 12:41:00
--  [求助]加载当天数据时,如果没有会报错

老师好!

有数据时没事,没有数据时报错如下图,用try语句也避免不了,是什么原因?

 

[日期]列是datatime格式(如:2019-07-02 19:49),数据是access内部数据源。

代码如下:
DataTables("邮件管理").LoadFilter  = "日期 >= #" & Date.today & "# and 日期 < #" & Date.today.adddays(1) & "#"
DataTables("邮件管理").Load()
 

 


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (1).jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/12/18 13:46:00
--  
勾选上面“显示详细信息”看是哪个事件有问题?改正代码
--  作者:天一生水
--  发布时间:2019/12/18 16:16:00
--  

是主表的CurrentChanged事件报错。

用的代码是副本Table之行位置联动,但是看不出什么问题?

 

If Forms("邮件管理").Opened Then \'如果窗口已经打开
    Dim dr As DataRow = e.Table.Current.DataRow
    Dim wz As Integer = Tables("邮件管理_Table1").FindRow(dr)
    If wz >=0 Then
        Tables("邮件管理_Table1").Position = wz
    End If
End If


--  作者:chen37280600
--  发布时间:2019/12/18 16:20:00
--  
dr你要判断是否为空
--  作者:天一生水
--  发布时间:2019/12/18 16:28:00
--  

开始是有判断的,如下,但是也不行。所以就改成帮助中的代码了。

 

If Forms("邮件管理").Opened Then \'如果窗口已经打开
    Dim dr As DataRow = e.Table.Current.DataRow
    If dr Is Nothing Then
        Return
    Else
        Dim wz As Integer = Tables("邮件管理_Table1").FindRow(dr)
        If wz >=0 Then
            Tables("邮件管理_Table1").Position = wz
        End If
    End If
End If


--  作者:有点蓝
--  发布时间:2019/12/18 16:29:00
--  
If Forms("邮件管理").Opened andalso e.Table.Current isnot nothing Then \'如果窗口已经打开


--  作者:天一生水
--  发布时间:2019/12/18 16:51:00
--  

谢谢蓝老师!

用老师的代码,然后把bin文件夹删除,才行了。