Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

对《利用登陆用户名实现权限限制》中公共变量写入表中在局域网应用中的问题

施巍巍  发表于:2015-06-13 13:46:30  
复制

今天在学习《利用登陆用户名实现权限限制》(http://www.accessoft.com/article-show.asp?id=8235)中,

摘 要:用户一旦登陆系统,系统就要要用户名分配相应的权限,只让其看该看的信息

1。在模块定义公共变量xm

2.将用户名赋值给公共变量。xm=me.text

3.将公共变量写入临时表,表名,字段名随便取,如表名wlj,字段名name。select "' & xm & '" as name into wlj.  这样生成一个名叫wlj的表。该表只有一个字段。用户每次登陆,都会这个表,新表自动覆盖旧表。采用docmd.setwarng false,屏蔽系统警告。

 4。利用dlookup函数,,间接将登陆名作为查询过滤条件。dlookup("[name]","wlj")这个函数的返回值就是登陆用户名。


那么有一个问题来了,如果这个系统是单机,这样没有问题;

但是如果是局域网共享的话,第一个人登录后,xm为第一个人,但是同时新的用户又登录的话,xm被更新成了新的人,那么第一个人所进行的查询会出现查询成新的人吗?

如果会的话,怎么解决会比较好呢?

 

Top
杜超 发表于:2015-06-13 20:57:58
将数据库分成前台与后台,后台存放数据用来共享,前台每台电脑都复制一份,就不会出现你说的矛盾现象了

杜超 发表于:2015-06-13 20:58:42
Access实现局域网数据共享方法之二\access联网共享教程\设置access2010联网步骤[Access软件网]
http://www.accessoft.com/article-show.asp?id=7599

施巍巍 发表于:2015-06-14 15:38:39

杜老师,你的意思是不是这样:在拆分数据库分成前后台时,不把这个表放到后台,这样每人自己都有一个这个表?

我还没有拆分过数据库,是否拆分的时候可以选择某些表放后台,某些表放前台?如果只能选择都放后台的话,第一个人叫“A”登录后,xm写成了“A”,这个时候查询什么都是调用临时表中姓名字段,以A来;但当B登录后,xm写成了“B”,这个时候A用户再来操作的话,他调用的姓名字段就变成了“B”,这样就出问题了。



易勋 发表于:2015-06-15 21:54:09

用数组或者表来保存用户名,不要用变量



施巍巍 发表于:2015-07-06 13:37:02
真正拆分后发现,没有出现自己考虑的问题

总记录:5篇  页次:1/1 9 1 :