Access交流中心

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

[5分]采购部的员工

风水师  发表于:2010-02-07 12:41:30  
复制

Private Sub Form_Load()
    Dim strUserID As String
    '获得当前登录的操作员
    strUserID = Forms!usysfrmLogin!txtUserName
    If strUserID = "000001" Then    '如果是管理员,就显示全部
       Me.RecordSource = "SELECT qryCgsq.* FROM qryCgsq"
    Else    '如果不是管理员,就只显示操作员自已录入的
        Me.RecordSource = "SELECT tblCgsq.* FROM tblCgsq WHERE tblCgsq.czyid='" & strUserID & "'"
    End If
   
    If qry_Cgbm.bmid = "采购部" Then  '此种写法,估计是错的.
      MsgBox "该员工属于采购部"

      [forms]![frmCgsq_child_Add]![frmchild]!cgfk.enabled=false

      [forms]![frmCgsq_child_Add]![frmchild]!gys.enabled=false

      [forms]![frmCgsq_child_Add]![frmchild]!cgsl.enabled=false

      [forms]![frmCgsq_child_Add]![frmchild]!dhfk.enabled=false
      [forms]![frmCgsq_child_Add]![frmchild]!dhsl.enabled=false

      [forms]![frmCgsq_child_Add]![frmchild]!dhrq.enabled=false

      End If

    End Sub

如果一个登陆的员工,不属于采购部的话,就让cgfk(采购反馈),gys(供应商),cgsl(采购数量),dhfk(到货反馈),dhsl(倒货数量),dhrq(到货日期)这几个字段变成灰色.

 

     qry_Cgbm的内容如下:

     SELECT tblCode_yg.Id, tblCode_yg.bmid  FROM tblCode_yg  WHERE (((tblCode_yg.bmid)="采购部"));

我本来想照下列格式编写,但是如果我不在的话,或者采购部换了员工,新增了员工,我岂不是又要自己动手,我希望能够一步到位,让程序自动判断它是不是采购部员工

 

    If strUserID = "000001" Then    '如果是管理员,就显示全部
       Me.RecordSource = "SELECT qryCgsq.* FROM qryCgsq"
    Else    '如果不是管理员,就只显示操作员自已录入的
        Me.RecordSource = "SELECT tblCgsq.* FROM tblCgsq WHERE tblCgsq.czyid='" & strUserID & "'"
    End If


   

 

Top
竹笛 发表于:2010-02-08 12:30:26


    If qry_Cgbm.bmid = "采购部" Then  '此种写法,估计是错的.
 

上面的写法肯定是错的。你应该想法获得当前操作员是哪个部门。如果你权限是按部门来设置的,即按表:usystblUser表的话,就可以利用dlookup函数,来获取部门ID,进而获得部门名称。



michaelx 发表于:2010-02-08 20:17:33

我大概理解你的意思,要解决不难,但你提供的信息不足,你先回答以下问题:

1、  tblCode_yg 和 tblCgsq两个表分别存放什么数据,有没有关联的字段

2、  qry_Cgbm跟窗体Me之间是什么关系?,最好把文件打包或把界面截图发上来。

 

如果tblCode_yg 和 tblCgsq有关联的字段,则估计只需要修改以下的语句就可以解决

    

qry_Cgbm的内容如下:

SELECT tblCode_yg.Id, tblCode_yg.bmid  FROM tblCode_yg  WHERE (((tblCode_yg.bmid)="采购部"));



风水师 发表于:2010-02-08 21:50:45

tblCode_yg中有如下字段:ID,mc,xinbie,mob,fdid,bmid,zwid,remarks.

tblCgsq中有sqid,fdid,sqr,sqhs,czyid,czsj

 

tblCode_yg与usystblUser是有关联的。

 



风水师 发表于:2010-02-09 22:42:35

下午向风请教之后,风用了两三分钟就把我考虑了几天的问题给秒杀了.

If DLookup("[bmid]", "tblCode_yg", "[Id] = '" & Forms!usysfrmlogin!txtUserName & "'") = "采购部" Then  '如果是管理员,就显示全部
   MsgBox "你是采购部员工!努力工作吧!"
End If



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