ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2561|回复: 8

[求助] 怎么样要求输入相应的工号才能进入窗体

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-9-24 15:43 | 显示全部楼层 |阅读模式
我设计了一个ACCESS是由很多人在使用的,我希望设置一下,要求打开窗体时务必先输入他们的工号,输入工号后窗体内的所有数据都是属于这个工号的,请问怎么设置,谢谢大家帮忙。

111.rar

14.97 KB, 下载次数: 21

TA的精华主题

TA的得分主题

发表于 2009-9-24 15:47 | 显示全部楼层
这里有个例子,可能帮的上你。

进销存管理系统.rar (246.72 KB, 下载次数: 132)

TA的精华主题

TA的得分主题

发表于 2009-9-24 15:49 | 显示全部楼层
它的机制是利用权限表格,设置不同工号的权限,然后利用VBA语句实现:

Option Compare Database
Option Explicit

'用户登录的“用户编号”
Public UserID As String
'用户登录的“用户名”
Public UserName As String
Public varTemp(5) As Variant

Function OpenForm(FormID As Integer)
On Error GoTo Err_OpenForm
Dim i As Integer
Dim STemp As String
Dim Rs1 As ADODB.Recordset
Dim Rs2 As ADODB.Recordset
Set Rs1 = New ADODB.Recordset
Set Rs2 = New ADODB.Recordset
'打开“系统权限”数据表
STemp = "Select * From 系统权限"
Rs1.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'打开“系统窗体”数据表
STemp = "Select * From 系统窗体"
Rs2.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Dim blnOpen As Boolean
Dim FormName As String
    blnOpen = False
    '判断“系统权限”数据是否为空
    If Rs1.RecordCount < 1 Then
        blnOpen = False
    Else
        Rs1.MoveFirst
        '判断当前“登录用户”是否有权限打开FormID对应的窗体
        For i = 1 To Rs1.RecordCount
            If Rs1("用户编号") = UserID And Rs1("窗体编号") = FormID _
                    And Rs1("权限") = True Then
                blnOpen = True
            Else
                Rs1.MoveNext
            End If
        Next i
    End If
    '在“系统窗体”数据表中搜索待打开窗体的“名称”
    Rs2.MoveFirst
    For i = 1 To Rs2.RecordCount
        If Rs2("窗体编号") = FormID Then
            FormName = Rs2("窗体名称")
        Else
            Rs2.MoveNext
        End If
    Next i
    '判断用户是否有权限打开窗体,blnOpen为“真”有权限
    If blnOpen = False Then
        MsgBox "您没有权限使用" & "“" & FormName & "”窗体", vbCritical, "无权使用"
    Else
        DoCmd.OpenForm FormName, acNormal, , , , acWindowNormal
    End If
    Set Rs1 = Nothing
    Set Rs2 = Nothing
    Exit Function
Err_OpenForm:
    Set Rs1 = Nothing
    Set Rs2 = Nothing
    MsgBox Err.Description, vbOKOnly, "窗体打开错误"
End Function

TA的精华主题

TA的得分主题

发表于 2009-9-24 15:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
问一下LZ,是怎么样实现一个ACCESS多人使用呢,思路框架是怎么样的呀?

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-25 13:45 | 显示全部楼层

回复 4楼 gteng 的帖子

是这样的,我这有许多数据,需要20多个人进ACCESS去打,我这保存一张总表(包含所有数据),等他们打完我这就能看到结果,我是放在局堿网中让他们去打的,为了数据不乱,所以希望每个人进去时要输他们自己的工号,谢谢帮忙哦

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-9-25 14:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 2楼 gteng 的帖子

您给我的进销存管理系统我看过了,非常的好,不过我好象不用这么复杂(多是新手,太难的我实在弄不来,嘿嘿),我只要输工号或输人员中的一个就行,最好能不用什么工式,能在EXCEL表里就完成吗?谢谢指教。

TA的精华主题

TA的得分主题

发表于 2010-3-5 18:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-9-20 16:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-11-14 10:00 | 显示全部楼层
gteng 发表于 2009-9-24 15:47
这里有个例子,可能帮的上你。

我怎么进不去呢?
是不是版本不同?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-7 06:10 , Processed in 0.026417 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表