Access交流中心

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

根据部门自动生成员工ID

yaxun  发表于:2008-04-23 17:08:54  
复制

我做了根据部门生成员工ID 的程式,但是不能区分每个部门最后一个ID号,只能以员工总表记录最后录值自动生成一个员工ID


如:行政部门代码为:ADM  财为:AC,表中已有ADM01,AC01 AC02 ,AC04,

当在窗体中输入部门ID:行政,时系统自动生成一个以ADM为行政部代码的AMD02,而不是ADM05

 

Top
yaxun 发表于:2008-04-23 17:11:49

Private Sub 部门ID_LostFocus()

'定义部门ID变量
Dim DEPID As String
'定义用于循环的整型变量
Dim i As Integer

'定义字符型变量
Dim STemp As String
'定义数据集变量
Dim rs As ADODB.Recordset

'为定义的数据集变量分配空间
Set rs = New ADODB.Recordset
'为打开数据表“查询语句”字符变量赋值
STemp = "Select * From 员工基本资料"
'打开“员工基本资料表”数据表
rs.Open STemp, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
'查与部门之部门名称相对应的部门ID
If IsNull(Me.部门ID) Then

Me.员工ID = Null
Else

DEPID = DLookup("部门ID", "部门表", "[部门名称]= '" & Me![部门ID] & "'")
    '根据“部门表”数据表中的记录数量来自动生成“员工ID”
    Select Case rs.RecordCount
        Case 0 To 9
            Me![员工ID] = DEPID & "000" & rs.RecordCount
        Case 10 To 99
            Me![员工ID] = DEPID & "00" & rs.RecordCount
        Case 100 To 999
            Me![员工ID] = DEPID & "0" & rs.RecordCount
        Case 1000 To 9999
            Me![员工ID] = EDPID & rs.RecordCount
    End Select
    '释放系统为Rs数据集分配的空间
    Set rs = Nothing
End If

          
End Sub
代码



钱玉炜 发表于:2008-04-24 07:54:50
可以查看帖子右边的帖子列表,稍做修改即可以满足你的要求

yaxun 发表于:2008-04-24 09:45:16

不明



yaxun 发表于:2008-04-24 09:50:17

没有人理呀



黎红军 发表于:2008-04-25 20:42:16


黎红军 发表于:2008-04-25 20:44:19


黎红军 发表于:2008-04-25 20:45:02
凯旋 发表于:2008-05-17 20:35:37

我也想看看



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