以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  代码错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=146340)

--  作者:jick0526
--  发布时间:2020/2/21 17:37:00
--  代码错误
老师,麻烦帮我看下下面的代码哪里错了,我放在BeforeLoadlnnerTable属性里,我想要在加载外部表达时候如果用户名是经理或员工,那么执行下面代码,否则不执行

If e.User.Name <> "经理" AndAlso e.User.Name <> "员工" 
DataTables("表A").LoadFilter = "日期 >= \'" &  Date.Today.AddYears(-1) & "\'"
DataTables("表A").Load
End If

--  作者:程兴刚
--  发布时间:2020/2/21 19:12:00
--  
仔细看该事件下面的说明:

If e.User.Name <> "经理" AndAlso e.User.Name <> "员工"
    If e.DataTableName = "表A"
        e.Filter = "[日期] >= #" &Date.Today.AddYears(-1)  & "#"
    End If
End If

--  作者:jick0526
--  发布时间:2020/2/23 16:54:00
--  
老师,上面的代码放在BeforeLoadOuterTable属性里面后出现下面错误提示

错误提示Filter不是BeforeLoadOuterTable的成员

--  作者:有点蓝
--  发布时间:2020/2/23 21:47:00
--  
BeforeLoadlnnerTable和BeforeLoadOuterTable的用法不一样的,先仔细看看帮助 :http://www.foxtable.com/webhelp/topics/0670.htm

If e.User.Name <> "经理" AndAlso e.User.Name <> "员工"
    If e.DataTableName = "表A"
        e.SelectString = "Select * From 表A where [日期] >= #" &Date.Today.AddYears(-1)  & "#"
    End If
End If

--  作者:jick0526
--  发布时间:2020/2/24 13:59:00
--  
老师,我试了下面的代码还是会加载所有的行,而不是一年内的

If e.User.Name <> "经理" AndAlso e.User.Name <> "员工"
    If e.DataTableName = "表A"
        e.SelectString = "Select * From 表A where [日期] >= #" &Date.Today.AddYears(-1)  & "#"
    End If
End If

--  作者:有点蓝
--  发布时间:2020/2/24 14:06:00
--  
只有是"经理" , "员工"之外的用户登录,并且是表A才能使用这个条件。

另外看看其它地方是不是又重新加载数据了

--  作者:jick0526
--  发布时间:2020/2/24 15:23:00
--  
老师,不能加载,提示无法完成延迟准备,无法预定义语句
--  作者:有点蓝
--  发布时间:2020/2/24 15:33:00
--  
有使用了外部数据源吗?什么数据库?access还是SqlServer?
--  作者:jick0526
--  发布时间:2020/2/24 15:38:00
--  
提示“#”附近有语法错误,我不知道为什么不能上传图片
--  作者:jick0526
--  发布时间:2020/2/24 16:07:00
--  
是外部数据源SqlServer