实现用户权限的添加及删除:一个窗体有3个listbox;3个ACCESS表  表1:用户名表;表2:用户所具有的权限表;表3:总的权限表(如有“系统管理员”和“普通人员”两个)
listbox1:显示当前数据库中的用户名 如有admin和guest两个用户。
listbox2:当在listbox1中单击某个用户名时,显示该用户现在所具有的权限列表
          如点admin后,listbox2显示“系统管理员”(admin当前所具有的权限)。
listbox3:当在listbox1中单击某个用户名时,把表2与表3比较(前提是用户名等于在listbox1中
          被点中的用户),显示表3中某用户没有的权限。如:
          如点admin后,listbox3显示“普通人员”。
请问应该怎么写程序,数据表结构应该是怎么样的呢??  
我使用select * from 表2 where 表2字段 not in (select 表3的字段 from 表3) 好像得不到想要的结果。
55555555555555555求解

解决方案 »

  1.   

    晕,你一个listbox搞一个ADOQuery来对应不就得了?依照前面一个选项来进行过滤。
    比方说listbox1.onclick里写 
    ADOQuery2.filtered := false;
    ADOQuery2.filter := 'userid='+ intToStr(ADOQuery1.FieldbyName('userid').AsInteger);
    ADOQuery2.filtered := true;
      

  2.   

    但是listbox2显示已有的权限listbox3显示他不具有的权限 应该怎么写
      

  3.   

    *********                  ************               ************
    * admin *                  *系统管理员*               *普通人员  *
    *       *-----listbox1     *          *----listbox2   *          *----listbox3
    *       *                  *          *               *          *
    *********                  ************               ************点了"admin"后  listbox2,listbox3显示如上
    表结构上贴也说了  求解
      

  4.   

    没有关联
    你怎么设计的表结构?要实现上述功能需要将表关联起来才行。
    按照我的设想,可以只要两个表,一个用户表,一个权限表。
    用户表:ID(KEY),USERNAME,QX_ID
    权限表:ID(KEY),QX_NAME
    你在用户表里将用户绑上权限的ID,这样就方便查了。