Access交流中心

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

老问题,以部门生成员工ID

yaxun  发表于:2008-05-21 11:45:43  
复制

上次那位仁兄的方法,与之前没什么区别。问题未解决

问题:当在窗体中输入一部门ID时,员工据部门ID自动生成

原代码来为:

Private Sub 部门ID_LostFocus()      我段代码只能以员工基本资料的总表最大记录生成一个员工ID,不能以每部的最大记录生成员工ID

'定义部门ID变量                    原来效果为部门ID    员工ID                  想达到目的 : 员部门ID     工ID

'定义部门ID变量                                 ADM       ADM01                                   AMD          AMD01
Dim DEPID As String                             PMC       PMC02                                   PMC          PMC01    
'定义用于循环的整型变量                         AC        AC03                                    AC           AC01
Dim i As Integer                                ENG       ENG04                                   ENG          ENG01

'定义字符型变量
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", "部门表", "[部门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

          

 

Top
pc高手 发表于:2008-05-21 12:49:50

说了半天, 不知你要表达什么问题!

部门和员工是两个表吗?  建立关系后, 系统会自动帮你完成ID 的联系。

你把问题表达清楚了, 大家好帮助你。 这个问题很简单吗? ACCESS 没有不能完成的业务求。



pc高手 发表于:2008-05-21 12:50:36

说了半天, 不知你要表达什么问题!

部门和员工是两个表吗?  建立关系后, 系统会自动帮你完成ID 的联系。

你把问题表达清楚了, 大家好帮助你。 这个问题很简单吗? ACCESS 没有不能完成的业务需求。



yaxun 发表于:2008-05-21 13:47:23

原来是这样生成的:

部门ID    员工ID    

adm        adm01

ac         ac02

pmc        pmc03

 

现在想达样的目的:

部门ID      员工ID     

ADM         ADM01

AC          AC01

PMC         PMC01

ADM         ADM02

AC          AC02

PMC         PMC02

。。。。。。请问高手要怎样写代码才能完成这个功能

 

 

 

 

原代码:
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", "部门表", "[部门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-05-21 18:31:20

已故你做好了实例。http://www.accessoft.com/bbs/showtopic.asp?id=1289

效果如下:



符鸿敏 发表于:2008-05-21 23:17:08

1、首先,按不同部门各建一个分表。

2、其次,获取所需部门的最大ID并自动加1

3、保存时分别向员工总表和部门分表追加数据。

因为没有你的原始资料,我先这样考虑,管不管用,请先试试看。



符鸿敏 发表于:2008-06-13 23:25:25
我这做了一个较huangqinyong更为全面的实例,请下载试用吧点击下载此附件

十段 发表于:2008-06-14 01:20:29
哈哈哈,看了6楼网友上传的作品,代码、窗体的格式和我的作品一模一样吗,而且,建窗体的时间也是5月21日,见4楼网址。是不是你上传错了,把我的作品传上来了。

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