以文本方式查看主题

-  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=118675)

--  作者:lungby
--  发布时间:2018/5/8 17:38:00
--  修改数据权限的问题
有两个表,一个表是“委托台账”,有委托编号,和检测员两列,检测员是2个人名
一个表是“工作日志”,有委托编号列,和检测员两列,委托编号列为手输入的,但是该表的检测员是固定的一个人,增加新行后直接写入登录者的用户名
现在希望在“工作日志”表中新增行后,手输入委托编号后,如果该编号在“委托台账”中查询相应的检测员,如果该登录用户不是“委托台账”检测员列中的任何一名,则弹出对话框,告知不是你做的实验,然后清空委托编号,等待重新输入,
请问有相关的例子或者告知下代码如何写么?
谢谢……

--  作者:有点甜
--  发布时间:2018/5/8 18:55:00
--  

首先,跨表查找数据

 

http://www.foxtable.com/webhelp/scr/1451.htm

 

然后,在validateEdit或者datacolchanging事件写代码,判断查找的数据是否包含当前用户。


--  作者:lungby
--  发布时间:2018/5/9 17:25:00
--  
额,判断查找的数据是否包含当前用户。。。怎么写……
麻烦了

--  作者:有点甜
--  发布时间:2018/5/9 17:41:00
--  

ValidateEdit事件

 

If e.Col.Name = "委托编号" Then    
    Dim fdr As DataRow = DataTables("委托台账").Find("委托编号 = \'" & e.Text & "\'")    
    If fdr IsNot Nothing Then        
        If cstr(fdr("检测员")).Contains(User.name) = False Then            
            msgbox("不能编辑此编号")            
            e.Cancel = True            
        End If        
    End If   
End If