Access交流中心

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

关于员工调动的案列及代码

一杯绿茶  发表于:2012-09-13 17:20:29  
复制

我目前利用平台编写了一个人事管理软件,但是在编写员工调动的过程中,发现设置的代码虽然能实现调动,但不能再调动表里实现新增,也就是说,比如我新增加了一个调动编号为201203001关于张三的调动,然后我又要对李四进行调动时,问题出现了,李四的调动竟然在原来张三的记录基础上进行更改,而不是另起一行,形成新的记录。

搞了几天了,就搞不好,请高手指导呀!给个实例。

代码如下:

Option Compare Database

Private Sub frm调动_AfterUpdate()
'选项组的值 不选(0),1,2
On Error GoTo err_frm
    If Not IsNull(Me.工号) Then
        If Me.frm调动.Value = 1 Then
            Me.调前部门 = DLookup("[bmcode]", "tblyg", "[ygID] like '" & Me.工号 & "'")
            Me.调前部门.Locked = True
            Me.调后部门.Locked = False
            Me.调前岗位.Locked = True
            Me.调后岗位.Locked = True
            Me.调前部门.BackColor = 14540253
            Me.调后部门.BackColor = -2147483643
            Me.调前岗位.BackColor = 14540253
            Me.调后岗位.BackColor = 14540253
            Me.调前岗位 = Null
            Me.调后岗位 = Null
        ElseIf Me.frm调动.Value = 2 Then
            Me.调前岗位 = DLookup("[gwID]", "tblyg", "[ygID] like '" & Me.工号 & "'")
            Me.调前岗位.Locked = True
            Me.调后岗位.Locked = False
            Me.调前部门.Locked = True
            Me.调后部门.Locked = True
            Me.调前岗位.BackColor = 14540253
            Me.调后岗位.BackColor = -2147483643
            Me.调前部门.BackColor = 14540253
            Me.调后部门.BackColor = 14540253
            Me.调前部门 = Null
            Me.调后部门 = Null
        End If
    Else
        Me.frm调动.Value = 0
        MsgBox "请先选择要调动人员.", vbInformation + vbOKOnly
    End If
exit_frm:
    Exit Sub
err_frm:
    MsgBox Err.Description
    Resume exit_frm
End Sub

Private Sub lblOpen_Click()
On Error GoTo err_lblOpen:
    DoCmd.OpenForm "frmygxmxz", acNormal, , , , acDialog
    If strname <> "" Then
        Me.工号 = strname
        Me.工号.Locked = True
        Me.姓名.Locked = True
        Me.工号.BackColor = -2147483633
        Me.姓名.BackColor = -2147483633
'        MsgBox strName
    End If
exit_lblOpen:
    Exit Sub
err_lblOpen:
    MsgBox Err.Description
    Resume exit_lblOpen
End Sub

Private Sub lblSave_Click()
On Error GoTo err_lblSave
    If Not IsNull(Me.工号) Then
        DoCmd.RunCommand acCmdSave
        DoCmd.SetWarnings False
        If Me.调后部门 <> "" And Me.调后岗位 <> "" Then
            DoCmd.RunSQL "update tblyg set [bmCODE]= '" & Me.调后部门 & "',[gwID]='" & Me.调后岗位 & "'" & _
                    " where [ygID] like '" & Me.工号 & "'"
        ElseIf Me.调后部门 <> "" Then
            DoCmd.RunSQL "update tblyg set [bmCODE]= '" & Me.调后部门 & "' where [ygID] like '" & Me.工号 & "'"
        ElseIf Me.调后岗位 <> "" Then
            DoCmd.RunSQL "update tblyg set [gwID]= '" & Me.调后岗位 & "'where [ygID] like '" & Me.工号 & "'"
        End If
        DoCmd.SetWarnings True
        DoCmd.Close
    Else
        MsgBox "没有更改,不能保存!", vbInformation + vbOKOnly
        DoCmd.Close
    End If
exit_lblSave:
    Exit Sub
err_lblSave:
    MsgBox Err.Description
    Resume exit_lblSave
End Sub

 

 

Top
缪炜 发表于:2012-09-14 08:19:19
你应该是用了更新语句吧,你最把代码也加进来

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