Advertisement
Guest User

Untitled

a guest
Jul 13th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VBScript 25.00 KB | None | 0 0
  1. Option Compare Database
  2. Option Explicit
  3.  
  4. Dim db As DAO.Database
  5. Dim rst(1 To 6) As DAO.Recordset
  6. Dim strDocName As String, strFN As String, strKType As String, strForm As String
  7. Dim strSQL As String, strCompID As String, strUserID As String, strID As String
  8. Dim strComments As String, strEmpID As String, strEventTitle As String
  9. Dim strFindEmpID As String, strMsg As String, strK_ID As String, strEmpName As String
  10. Dim lngRecID As Long, lngAwardID As Long, lngPType As Long, lngErrNum As Long, lngID As Long
  11. Dim lngAward As Long, lngPromoID As Long
  12. Dim intOpt As Integer, ansMsgBox As Integer, intCount As Integer, intMax As Integer
  13. Dim intLastAwardSeq As Integer, intMaxQtyPer As Integer, intQtyAvail As Integer, intMaxSetSeq As Integer
  14. Dim intMaxSeq As Integer, intLastSeq As Integer, intNextSeq As Integer, intSetID As Integer
  15. Dim dteDate As Date
  16. Dim blnPromo As Boolean
  17.  
  18. Private Sub Form_Activate()
  19.     DoCmd.Maximize
  20. End Sub
  21.  
  22. Private Sub Form_Open(Cancel As Integer)
  23.     DoCmd.Maximize
  24.    
  25.     strCompID = MachName()
  26.    
  27.     DoCmd.SetWarnings False
  28.        
  29.         strSQL = "DELETE * FROM TempEntry WHERE CompID='" & strCompID & "';"
  30.         DoCmd.RunSQL strSQL
  31.    
  32.         strSQL = "UPDATE KaizenHdr SET KaizenHdr.Mark = False WHERE MarkCompID='" & strCompID & "';"
  33.         DoCmd.RunSQL strSQL
  34.    
  35.     DoCmd.SetWarnings True
  36.    
  37.     TempEntry_Subform.Requery
  38.     optCloseGrantAwards.Enabled = False
  39.     optCloseNoAwards.Enabled = False
  40. End Sub
  41.  
  42. Private Sub ExitApp_Click()
  43. On Error GoTo Err_ExitApp_Click
  44.     DoCmd.Quit
  45. Exit_ExitApp_Click:
  46.     Exit Sub
  47. Err_ExitApp_Click:
  48.     MsgBox Err.Description
  49.     Resume Exit_ExitApp_Click
  50. End Sub
  51.  
  52. Private Sub Form_Unload(Cancel As Integer)
  53.     strCompID = MachName()
  54.    
  55.     DoCmd.SetWarnings False
  56.        
  57.         strSQL = "UPDATE KaizenHdr SET KaizenHdr.Mark = False WHERE MarkCompID='" & strCompID & "';"
  58.         DoCmd.RunSQL strSQL
  59.    
  60.     DoCmd.SetWarnings True
  61. End Sub
  62.  
  63. Private Sub GenerateReport_Click()
  64.     On Error GoTo ErrHandler
  65.    
  66.     Dim db As DAO.Database
  67.     Dim rst(1 To 2) As DAO.Recordset
  68.     Dim sList As String
  69.     Dim numRecs As Long
  70.     Dim fOpened_rst(1 To 2) As Boolean
  71.     Dim idx As Long
  72.    
  73.     Set db = CurrentDb
  74.    
  75.     numRecs = KaizenHdr_subform.Form.DSSelHeight
  76.    
  77.     MsgBox numRecs
  78.    
  79.     strCompID = MachName()
  80.    
  81.     DoCmd.SetWarnings False
  82.        
  83.         strSQL = "DELETE * FROM TempReport WHERE CompID='" & strCompID & "';"
  84.         DoCmd.RunSQL strSQL
  85.    
  86.     DoCmd.SetWarnings True
  87.    
  88.     Set rst(1) = KaizenHdr_subform.Form.RecordsetClone
  89.     fOpened_rst(1) = True
  90.  
  91.     strSQL = "SELECT * FROM TempReport;"
  92.     Set rst(2) = db.OpenRecordset(strSQL, dbOpenDynaset)
  93.    
  94.     fOpened_rst(2) = True
  95.    
  96.     For idx = 1 To numRecs
  97.         sList = sList & KaizenHdr_subform.Form.RecID.Value & vbCrLf
  98.        
  99.         If (Not (rst(1).EOF)) Then
  100.             KaizenHdr_subform.Form.Bookmark = rst(1).Bookmark
  101.             With rst(2)
  102.                 .AddNew
  103.                     !RecID = KaizenHdr_subform.Form.RecID.Value
  104.                     !CompID = strCompID
  105.                 .Update
  106.             End With
  107.             rst(1).MoveNext
  108.             KaizenHdr_subform.Form.Bookmark = rst(1).Bookmark
  109.         End If
  110.     Next idx
  111.    
  112. CleanUp:
  113.  
  114.     If (fOpened_rst(1)) Then
  115.         rst(1).Close
  116.         Set rst(1) = Nothing
  117.         fOpened_rst(1) = False
  118.     End If
  119.    
  120.     If (fOpened_rst(2)) Then
  121.         rst(2).Close
  122.         Set rst(2) = Nothing
  123.         fOpened_rst(2) = False
  124.     End If
  125.    
  126.     Set rst(1) = Nothing
  127.     Set rst(2) = Nothing
  128.     numRecs = 0
  129.    
  130.     Exit Sub
  131.  
  132. ErrHandler:
  133.     MsgBox "Error in GenerateReport_Click() in" & vbCrLf & _
  134.         Me.Name & " form." & vbCrLf & vbCrLf & _
  135.         "Error #" & Err.Number & vbCrLf & vbCrLf & Err.Description
  136.     Err.Clear
  137.    
  138.     GoTo CleanUp
  139. End Sub
  140.  
  141. Private Sub GoToMainMenu_Click()
  142. On Error GoTo Err_GoToMainMenu_Click
  143.  
  144.     strFN = Me.Name
  145.  
  146.     strDocName = "MainMenu"
  147.     DoCmd.OpenForm strDocName
  148.    
  149.     DoCmd.Close acForm, strFN
  150.    
  151. Exit_GoToMainMenu_Click:
  152.     Exit Sub
  153. Err_GoToMainMenu_Click:
  154.     MsgBox Err.Description
  155.     Resume Exit_GoToMainMenu_Click
  156. End Sub
  157.  
  158. Private Sub AddRecord_Click()
  159. On Error GoTo Err_AddRecord_Click
  160.     Dim intTotalAvail As Integer, intBalAvail As Integer
  161.    
  162.     Set db = CurrentDb
  163.    
  164.     strCompID = MachName()
  165.     strUserID = UserID()
  166.    
  167.     strSQL = "SELECT TempEntry.EmpID FROM TempEntry WHERE (((TempEntry.CompID)='" & strCompID & "'));"
  168.     Set rst(1) = db.OpenRecordset(strSQL, dbReadOnly)
  169.    
  170.     If rst(1).RecordCount = 0 Then
  171.         MsgBox "You have not entered any participants for this record!!!", vbCritical, "Add Record Aborted - No Participants"
  172.         GoTo MissingData
  173.     End If
  174.    
  175.     dteDate = DateValue(KaizenDate1.Value)
  176.     strKType = Nz(KaizenType1, "NA")
  177.     lngPType = Nz(ProjectType1, -1)
  178.     strEmpID = Nz(TeamLeader, "000000")
  179.     strEventTitle = Nz(Trim(EventTitle), "NA")
  180.     strComments = Left(Nz(Trim(Comments), ""), 255)
  181.    
  182.     If strKType = "NA" Then
  183.         MsgBox "Please Enter Kaizen Type", vbExclamation, "Missing Kaizen Type"
  184.         KaizenType1.SetFocus
  185.         GoTo MissingData
  186.     End If
  187.    
  188.     If lngPType = -1 Then
  189.         MsgBox "Please Enter Project Type", vbExclamation, "Missing Project Type"
  190.         ProjectType1.SetFocus
  191.         GoTo MissingData
  192.     End If
  193.    
  194.     Select Case strKType
  195.    
  196.         Case "E"
  197.             If strEmpID = "000000" Then
  198.                 MsgBox "Please Enter Team Leader", vbExclamation, "Missing Team Leader"
  199.                 TeamLeader.SetFocus
  200.                 GoTo MissingData
  201.             End If
  202.             If strEventTitle = "NA" Then
  203.                 MsgBox "Please Enter Event Title", vbExclamation, "Missing Event Title"
  204.                 EventTitle.SetFocus
  205.                 GoTo MissingData
  206.             End If
  207.         Case "I"
  208.             strEmpID = "000000"
  209.        
  210.     End Select
  211.    
  212.     strSQL = "SELECT K_ID, K_Date, K_Type, ProjectType, TeamLeader, EventTitle, Comments, UserID, CompID, Status FROM KaizenHdr;"
  213.     Set rst(2) = db.OpenRecordset(strSQL, dbOpenDynaset)
  214.    
  215.     strID = NextID(strKType)
  216.    
  217.     With rst(2)
  218.         .AddNew
  219.             !K_ID = strID
  220.             !K_Date = dteDate
  221.             !K_Type = strKType
  222.             !TeamLeader = strEmpID
  223.             !EventTitle = strEventTitle
  224.                 If strKType = "E" Then
  225.                     !Status = 1
  226.                 ElseIf strKType = "I" Then
  227.                     !Status = 2
  228.                 End If
  229.             !ProjectType = lngPType
  230.             !Comments = strComments
  231.             !UserID = strUserID
  232.             !CompID = strCompID
  233.         .Update
  234.     End With
  235.  
  236.     lngRecID = DLookup("[RecID]", "KaizenHdr", "K_ID = '" & strID & "'")
  237.    
  238.     strSQL = "SELECT RecID, EmpID FROM KaizenParticipants;"
  239.     Set rst(3) = db.OpenRecordset(strSQL, dbOpenDynaset)
  240.    
  241.     rst(1).MoveFirst
  242.        
  243.     Do
  244.         With rst(3)
  245.             .AddNew
  246.                 !RecID = lngRecID
  247.                 !EmpID = rst(1)!EmpID
  248.             .Update
  249.         End With
  250.        
  251.         rst(1).MoveNext
  252.     Loop While Not rst(1).EOF
  253.    
  254. ''  Award Promo
  255.    
  256.     blnPromo = Promo
  257.    
  258.     If blnPromo = True Then
  259.         If PromoAward.ListIndex = -1 Then
  260.             MsgBox "Please select Promo Award!", vbExclamation, "Promo Award Not Selected"
  261.             GoTo MissingData
  262.         End If
  263.         lngPromoID = PromoAward
  264.         intTotalAvail = DLookup("[QtyAvail]", "Awards", "[AwardID]=" & lngPromoID)
  265.         intBalAvail = intTotalAvail - Nz(DCount("[Award]", "KaizenAwards", "[Award]=" & lngPromoID), 0)
  266.         intMaxQtyPer = DLookup("[MaxQtyPer]", "Awards", "[AwardID]=" & lngPromoID)
  267.     End If
  268.    
  269.     strSQL = "SELECT KaizenParticipants.ID, KaizenParticipants.EmpID FROM KaizenHdr INNER JOIN " _
  270.         & "KaizenParticipants ON KaizenHdr.RecID = KaizenParticipants.RecID WHERE (((KaizenHdr.K_ID)='" & strID & "')) " _
  271.         & "ORDER BY KaizenParticipants.EmpID;"
  272.     Set rst(4) = db.OpenRecordset(strSQL, dbOpenSnapshot)
  273.    
  274.     strSQL = "SELECT ID, Award, AwardDate, Points, Comments FROM KaizenAwards;"
  275.     Set rst(5) = db.OpenRecordset(strSQL, dbOpenDynaset)
  276.    
  277.     rst(4).MoveFirst
  278.        
  279.     Do
  280.         strEmpID = rst(4)!EmpID
  281.        
  282.         ''  Modified 6/1/2016
  283.        ''  Determin last award sequence for employee and K_Type
  284.        intLastSeq = LastAwardSeq(strEmpID, strKType)
  285.         ''  Determine SetID
  286.        intSetID = GetSetID(strKType, intLastSeq)
  287.         ''  Determine maximum sequence number for award type and SetID
  288.        intMaxSetSeq = GetMaxSetSeq(strKType, intSetID)
  289.        
  290.         If intLastSeq < 0 Then intLastSeq = 0
  291.        
  292.         lngAwardID = 0
  293.        
  294.         If intLastSeq = intMaxSetSeq Then
  295.                
  296.             If strKType = "I" Then
  297.                 ''  Check if Event set is not complete for current SetID
  298.                If CheckEventSetComplete(strEmpID, intSetID) = False Then
  299.                     ''  Event set is not complete for SetID
  300.                    lngAwardID = 1001 'Implemented set complete
  301.                    intNextSeq = 0
  302.                     'Debug.Print strEmpID & " - " & "A"
  303.                Else
  304.                     If intLastSeq = MaxSeq_K_Type(strKType) Then
  305.                         ''  All current Implemeted awards have been issued
  306.                        lngAwardID = 1001 'Implemented set complete
  307.                        intNextSeq = 0
  308.                         'Debug.Print strEmpID & " - " & "B"
  309.                    Else
  310.                         ''  Event set is complete for SetID then award next implemented tool
  311.                        intNextSeq = intLastSeq + 1
  312.                         'Debug.Print strEmpID & " - " & "C"
  313.                    End If
  314.                 End If
  315.             ElseIf strKType = "E" Then
  316.                 intNextSeq = intLastSeq + 1
  317.                 'Debug.Print strEmpID & " - " & "D"
  318.            End If
  319.            
  320.         Else
  321.             If strKType = "I" Then
  322.                 intNextSeq = intLastSeq + 1
  323.                 'Debug.Print strEmpID & " - " & "E"
  324.            ElseIf strKType = "E" Then
  325.                 intNextSeq = intLastSeq + 1
  326.                 'Debug.Print strEmpID & " - " & "F"
  327.            End If
  328.            
  329.         End If
  330.        
  331.         If strKType = "E" Then GoTo PromoGone
  332.          
  333.         strSQL = "SELECT AwardID, K_Type, Seq FROM Awards WHERE Inactive=False AND K_Type='" & strKType & "' AND Seq=" & intNextSeq & ";"
  334.         Set rst(6) = db.OpenRecordset(strSQL, dbOpenSnapshot)
  335.        
  336.         rst(6).MoveFirst
  337.        
  338. '' Award Promo if needed
  339.  
  340.         If blnPromo = True Then
  341.             ''  Checks if employee has reached Promo Max Limit
  342.            intBalAvail = intTotalAvail - Nz(DCount("[Award]", "KaizenAwards", "[Award]=" & lngPromoID), 0)
  343.            
  344.             If intBalAvail <= 0 Then
  345.                 MsgBox "Promo Supply has been exhausted!", vbExclamation, "Promo Complete"
  346.                 Promo = False
  347.                 PromoAward = ""
  348.                 GoTo PromoGone
  349.             End If
  350.                
  351.             If Nz(DLookup("[PromoCount]", "PromoCountByEmpID", "[EmpID]='" & strEmpID & "'"), 0) < intMaxQtyPer Then
  352.                 If Left(strEmpID, 1) = "X" Then
  353.                     ' Do nothing
  354.                Else
  355.                     With rst(5)
  356.                         rst(5).AddNew
  357.                             !ID = rst(4)!ID
  358.                             !Award = lngPromoID
  359.                             !AwardDate = Now()
  360.                         rst(5).Update
  361.                     End With
  362.                 End If
  363.             End If
  364.         End If
  365.  
  366. PromoGone:
  367.  
  368.         Do
  369.             With rst(5)
  370.                
  371.                 If strKType = "E" Then
  372.                     rst(5).AddNew
  373.                         rst(5)!ID = rst(4)!ID
  374.                        
  375.                         If Left(strEmpID, 1) = "X" Then
  376.                             rst(5)!Award = 1005
  377.                         Else
  378.                             rst(5)!Award = 1003
  379.                         End If
  380.                    
  381.                         rst(5).Update
  382.                     GoTo NoAward
  383.                 End If
  384.                
  385.                 rst(5).AddNew
  386.                     !ID = rst(4)!ID
  387.                     If strKType = "I" Then
  388.                         If lngAwardID = 0 Then
  389.                             If Left(strEmpID, 1) = "X" Then
  390.                                 rst(5)!Award = 1005
  391.                             Else
  392.                                 !Award = rst(6)!AwardID
  393.                             End If
  394.                             !AwardDate = Now()
  395.                         ElseIf lngAwardID = 1001 Then
  396.                             'Implemented set complete
  397.                            !Award = lngAwardID
  398.                             !Points = 1
  399.                             !AwardDate = Now()
  400.                         End If
  401.                     End If
  402.                 rst(5).Update
  403.             End With
  404.  
  405.             rst(6).MoveNext
  406.         Loop While Not rst(6).EOF
  407. NoAward:
  408.         rst(4).MoveNext
  409.     Loop While Not rst(4).EOF
  410.  
  411. EventType:
  412.  
  413.     DoCmd.SetWarnings False
  414.         strSQL = "DELETE * FROM TempEntry WHERE CompID='" & strCompID & "';"
  415.         DoCmd.RunSQL strSQL
  416.     DoCmd.SetWarnings True
  417.  
  418.     TempEntry_Subform.Requery
  419.     ProjectType1 = ""
  420.     TeamLeader = ""
  421.     EventTitle = ""
  422.    
  423.     MsgBox "Record ID: " & strID & " has been added!!!", vbInformation, "Add Record Confirmation"
  424.    
  425.     KaizenHdr_subform.Requery
  426.     KaizenDate1.SetFocus
  427.     PromoDetail.Requery
  428.    
  429. MissingData:
  430.     Set rst(1) = Nothing
  431.     Set rst(2) = Nothing
  432.     Set rst(3) = Nothing
  433.     Set rst(4) = Nothing
  434.     Set rst(5) = Nothing
  435.     Set rst(6) = Nothing
  436.     Set db = Nothing
  437.  
  438. Exit_AddRecord_Click:
  439.     Exit Sub
  440. Err_AddRecord_Click:
  441.     lngErrNum = Err.Number
  442.    
  443.     Select Case lngErrNum
  444.         Case Else
  445.             MsgBox "lngErrNum: " & lngErrNum & vbCrLf & "ErrDesc: " & Err.Description, vbCritical, "Error In AddRecord Module"
  446.             Resume Exit_AddRecord_Click
  447.     End Select
  448. End Sub
  449.  
  450. Private Sub KaizenType1_AfterUpdate()
  451.    
  452.     strKType = KaizenType1
  453.    
  454.     Select Case strKType
  455.    
  456.         Case "E"
  457.             lblKaizenHdr_subform.Caption = "Kaizen Events"
  458.             optCloseGrantAwards.Enabled = True
  459.             optCloseNoAwards.Enabled = True
  460.             TeamLeader.Enabled = True
  461.             EventTitle.Enabled = True
  462.             Promo = False
  463.             Promo.Enabled = False
  464.             PromoAward = ""
  465.             PromoAward.Enabled = False
  466.         Case "I"
  467.             lblKaizenHdr_subform.Caption = "Kaizen Implemented"
  468.             optCloseGrantAwards.Enabled = False
  469.             optCloseNoAwards.Enabled = False
  470.             TeamLeader = ""
  471.             TeamLeader.Enabled = False
  472.             EventTitle = Null
  473.             EventTitle.Enabled = False
  474.             Promo.Enabled = True
  475.             PromoAward.Enabled = True
  476.         Case "S"
  477.        
  478.     End Select
  479.    
  480.     Call ClearMarked
  481.    
  482.     KaizenHdr_subform.Requery
  483.     SelectPartAwards.Requery
  484. End Sub
  485.  
  486. Private Sub optMenu_AfterUpdate()
  487.    
  488.     intOpt = optMenu.Value
  489.     optMenu.Value = 0
  490.    
  491.     strCompID = MachName()
  492.     intCount = DCount("[Mark]", "KaizenHdr", "[MarkCompID]='" & strCompID & "'")
  493.    
  494.     If intCount = 0 Then Exit Sub
  495.    
  496.     Select Case intOpt
  497.         Case 1 'Award Summary Report
  498.            If CheckPrinter = False Then
  499.                 MsgBox "Your Current Default Printer is NOT capable of " _
  500.                     & vbCrLf & "Printing or Previewing the Award Summary Report!!!" & vbCrLf & vbCrLf _
  501.                     & "Please select a different default printer.", vbExclamation, "Windows Default Printer Alert"
  502.                 Exit Sub
  503.             End If
  504.             strDocName = "AwardSummaryReport"
  505.             DoCmd.OpenReport strDocName, acPreview
  506.         Case 2 'Close Event - Grant Awards
  507.            ansMsgBox = MsgBox("Are you sure you want to Close Event and Grant Awards?", vbYesNo, "Confirm Close Event/Grant Awards")
  508.             If ansMsgBox = vbNo Then Exit Sub
  509.             Call CloseEvent
  510.             ansMsgBox = MsgBox("Would you like to clear the records that you had marked?", vbYesNo, "Confirm Clear Marked Records")
  511.             If ansMsgBox = vbYes Then Call ClearMarked
  512.         Case 3 'Print Labels for Tool Distribution
  513.            Call PrintAll
  514.             ansMsgBox = MsgBox("Would you like to clear the records that you had marked?", vbYesNo, "Confirm Clear Marked Records")
  515.             If ansMsgBox = vbYes Then Call ClearMarked
  516.         Case 4 'Close Event - No Awards
  517.            ansMsgBox = MsgBox("Are you sure you want to Close Event Without Granting Awards?", vbYesNo, "Confirm Close Event/DO NOT Grant Awards")
  518.             If ansMsgBox = vbNo Then Exit Sub
  519.             Call CloseEvent
  520.             ansMsgBox = MsgBox("Would you like to clear the records that you had marked?", vbYesNo, "Confirm Clear Marked Records")
  521.             If ansMsgBox = vbYes Then Call ClearMarked
  522.     End Select
  523.    
  524. End Sub
  525.  
  526. 'Private Sub PrintAwardLabels_Click()
  527. 'On Error GoTo Err_PrintAwardLabels_Click
  528.  
  529. '    Dim strDocName As String
  530.  
  531. '    strDocName = "AwardSummaryReport"
  532. '   DoCmd.OpenReport strDocName, acNormal
  533.  
  534. 'Exit_PrintAwardLabels_Click:
  535. '    Exit Sub
  536.  
  537. 'Err_PrintAwardLabels_Click:
  538. '    MsgBox Err.Description
  539. '    Resume Exit_PrintAwardLabels_Click
  540.    
  541. 'End Sub
  542.  
  543. Sub ClearMarked()
  544.     strCompID = MachName()
  545.    
  546.     DoCmd.SetWarnings False
  547.         strSQL = "UPDATE KaizenHdr SET KaizenHdr.Mark = False, KaizenHdr.MarkCompID = Null WHERE (((KaizenHdr.MarkCompID)='" & strCompID & "'));"
  548.         DoCmd.RunSQL strSQL
  549.     DoCmd.SetWarnings True
  550.    
  551.     Me.KaizenHdr_subform.Requery
  552. End Sub
  553.  
  554. Private Sub ProjectType1_KeyDown(KeyCode As Integer, Shift As Integer)
  555.     ProjectType1.Dropdown
  556. End Sub
  557.  
  558. Private Sub Promo_AfterUpdate()
  559.     If Promo = False Then
  560.         PromoAward = ""
  561.         PromoAward.Enabled = False
  562.         PromoDetail.Requery
  563.         PromoDetail.Enabled = False
  564.     End If
  565.     If Promo = True Then
  566.         PromoAward.Enabled = True
  567.         PromoDetail.Enabled = True
  568.     End If
  569. End Sub
  570.  
  571. Private Sub PromoAward_AfterUpdate()
  572.     PromoDetail.Requery
  573. End Sub
  574.  
  575. Private Sub TeamLeader_AfterUpdate()
  576.     strEmpID = Nz(TeamLeader, "NA")
  577.     strCompID = MachName()
  578.    
  579.     DoCmd.SetWarnings False
  580.         strSQL = "DELETE * FROM TempEntry WHERE CompID='" & strCompID & "' AND Leader=True;"
  581.         DoCmd.RunSQL strSQL
  582.         If strEmpID = "NA" Then GoTo 1
  583.         strSQL = "INSERT INTO TempEntry ( EmpID, CompID, Leader ) SELECT '" & strEmpID & "', '" & strCompID & "', True;"
  584.     DoCmd.RunSQL strSQL
  585. 1
  586.     DoCmd.SetWarnings True
  587.    
  588.     TempEntry_Subform.Requery
  589. End Sub
  590.  
  591. Private Sub TeamLeader_KeyDown(KeyCode As Integer, Shift As Integer)
  592.     TeamLeader.Dropdown
  593. End Sub
  594.  
  595. Private Sub AddAttendee_Click()
  596. On Error GoTo Err_AddAttendee_Click
  597.    
  598.     strForm = "AddNewEmployee"
  599.     DoCmd.OpenForm strForm
  600.  
  601. Exit_AddAttendee_Click:
  602.     Exit Sub
  603. Err_AddAttendee_Click:
  604.     MsgBox Err.Description
  605.     Resume Exit_AddAttendee_Click
  606. End Sub
  607.  
  608. Function CloseEvent()
  609.     On Error GoTo Err_CloseEvent
  610.     ''  This process assumes that there will only be 1 Award for each sequence when Event "E" is the K_Type
  611.    
  612.     Set db = CurrentDb
  613.    
  614.     strCompID = MachName()
  615.  
  616.     ''  Modified 6/2/2016
  617.    intMax = MaxSeq_K_Type("E")
  618.     '' Modified 6/18/2015 to exclude terminated employees
  619.    strSQL = "SELECT KaizenHdr.RecID, KaizenParticipants.ID, KaizenParticipants.EmpID, KaizenHdr.Status " _
  620.         & "FROM Employees INNER JOIN (KaizenHdr INNER JOIN KaizenParticipants ON KaizenHdr.RecID = " _
  621.         & "KaizenParticipants.RecID) ON Employees.EmpID = KaizenParticipants.EmpID WHERE (((KaizenHdr.Status)=1) " _
  622.         & "AND ((KaizenHdr.Mark)=True) AND ((KaizenHdr.MarkCompID)=MachName()) AND ((Employees.Status)<>'T'));"
  623.     Set rst(1) = db.OpenRecordset(strSQL, dbOpenSnapshot)
  624.    
  625.     If rst(1).RecordCount = 0 Then
  626.         MsgBox "You have not selected any records or the Status of the records selected = Closed", vbExclamation, "No Valid Records Selected"
  627.         Set rst(1) = Nothing
  628.         Set db = Nothing
  629.         Exit Function
  630.     End If
  631.    
  632.     strSQL = "SELECT KaizenHdr.K_ID, KaizenHdr.RecID, KaizenParticipants.ID, Employees.EmpName, " _
  633.         & "KaizenHdr.Status, Employees.Status FROM KaizenHdr INNER JOIN (Employees INNER JOIN KaizenParticipants " _
  634.         & "ON Employees.EmpID = KaizenParticipants.EmpID) ON KaizenHdr.RecID = KaizenParticipants.RecID " _
  635.         & "WHERE (((KaizenHdr.Mark)=True) AND ((KaizenHdr.MarkCompID)= MachName())) " _
  636.         & "GROUP BY KaizenHdr.K_ID, KaizenHdr.RecID, KaizenParticipants.ID, Employees.EmpName, " _
  637.         & "KaizenHdr.Status, Employees.Status HAVING (((KaizenHdr.Status)=1) AND ((Employees.Status)='T'));"
  638.     Set rst(3) = db.OpenRecordset(strSQL, dbOpenSnapshot)
  639.    
  640.     If rst(3).RecordCount > 0 Then
  641.        
  642.         DoCmd.SetWarnings False
  643.        
  644.         strSQL = "UPDATE (Employees INNER JOIN (KaizenHdr INNER JOIN KaizenParticipants ON KaizenHdr.RecID = " _
  645.             & "KaizenParticipants.RecID) ON Employees.EmpID = KaizenParticipants.EmpID) INNER JOIN KaizenAwards " _
  646.             & "ON KaizenParticipants.ID = KaizenAwards.ID SET KaizenAwards.Award = 1006, AwardDate = Date() WHERE " _
  647.             & "(((KaizenHdr.Status)=1) AND ((KaizenHdr.Mark)=True) AND ((KaizenHdr.MarkCompID)= MachName()) AND " _
  648.             & "((Employees.Status)='T'));"
  649.         DoCmd.RunSQL strSQL
  650.        
  651.         DoCmd.SetWarnings True
  652.        
  653.     End If
  654.    
  655.     With rst(1)
  656.         .MoveFirst
  657.        
  658.         Do
  659.             .MoveNext
  660.         Loop While Not .EOF
  661.        
  662.     End With
  663.    
  664.     With rst(1)
  665.         rst(1).MoveFirst
  666.    
  667.         Do
  668.             lngRecID = rst(1)!RecID
  669.             lngID = rst(1)!ID
  670.             strEmpID = rst(1)!EmpID
  671.            
  672.             ''  Get last award for current record Employee
  673.            strSQL = "SELECT Awards.K_Type, Max(Awards.Seq) AS MaxOfSeq FROM KaizenParticipants INNER JOIN " _
  674.                 & "(Awards INNER JOIN KaizenAwards ON Awards.AwardID = KaizenAwards.Award) ON KaizenParticipants.ID = " _
  675.                 & "KaizenAwards.ID WHERE (((KaizenParticipants.EmpID)='" & strEmpID & "')) GROUP BY Awards.K_Type HAVING " _
  676.                 & "(((Awards.K_Type)='E'));"
  677.             Set rst(2) = db.OpenRecordset(strSQL, dbOpenDynaset)
  678.            
  679.             If Left(strEmpID, 1) = "X" Then
  680.                 lngAward = 1005
  681.                 GoTo FirstAward
  682.             End If
  683.            
  684.             If rst(2).RecordCount = 0 Then
  685.                 lngAward = DLookup("[AwardID]", "Awards", "[Seq]= 1 AND [K_Type]='E' AND [Inactive]= False")
  686.                 GoTo FirstAward
  687.             End If
  688.            
  689.             rst(2).MoveFirst
  690.            
  691.             ''  Determine last award granted
  692.            intLastAwardSeq = Nz(rst(2)!MaxOfSeq, 0)
  693.            
  694.             ''  Determine next award to grant
  695.            If intLastAwardSeq >= MaxSeq_K_Type("E") Then
  696.                 lngAward = 1002
  697.             Else
  698.                 lngAward = DLookup("[AwardID]", "Awards", "[Seq]=" & intLastAwardSeq + 1 & " AND [K_Type]='E' AND [Inactive]= False")
  699.             End If
  700.            
  701. FirstAward:
  702.    
  703.             DoCmd.SetWarnings False
  704.            
  705.             If intOpt = 2 Then ''   Close and Grant Awards
  706.                
  707.                 strSQL = "UPDATE KaizenHdr SET KaizenHdr.Status = 2 WHERE (((KaizenHdr.RecID)=" & lngRecID & "));"
  708.                 DoCmd.RunSQL strSQL
  709.                
  710.                 strSQL = "UPDATE KaizenAwards SET KaizenAwards.Award =" & lngAward & ", KaizenAwards.AwardDate = Now() " _
  711.                     & "WHERE (((KaizenAwards.ID)=" & lngID & "));"
  712.                 DoCmd.RunSQL strSQL
  713.             ElseIf intOpt = 4 Then ''   Close DO NOT Grant Awards
  714.                lngAward = 1004
  715.                
  716.                 strSQL = "UPDATE KaizenHdr SET KaizenHdr.Status = 3 WHERE (((KaizenHdr.RecID)=" & lngRecID & "));"
  717.                 DoCmd.RunSQL strSQL
  718.                
  719.                 strSQL = "UPDATE KaizenAwards SET KaizenAwards.Award =" & lngAward & ", KaizenAwards.AwardDate = Now() " _
  720.                     & "WHERE (((KaizenAwards.ID)=" & lngID & "));"
  721.                 DoCmd.RunSQL strSQL
  722.             End If
  723.            
  724.             DoCmd.SetWarnings True
  725.            
  726.             rst(1).MoveNext
  727.         Loop Until rst(1).EOF
  728.    
  729.     End With
  730.    
  731.     KaizenHdr_subform.Requery
  732.     SelectPartAwards.Requery
  733.    
  734. Exit_CloseEvent:
  735.     Set rst(1) = Nothing
  736.     Set rst(2) = Nothing
  737.     Set rst(3) = Nothing
  738.     Set db = Nothing
  739.    
  740.     Exit Function
  741. Err_CloseEvent:
  742.     lngErrNum = Err.Number
  743.    
  744.     Select Case lngErrNum
  745.         Case Else
  746.             MsgBox "ErrNum: " & lngErrNum & vbCrLf & "ErrDesc: " & Err.Description, vbCritical, "Error In AddRecord Module"
  747.             Resume Exit_CloseEvent
  748.     End Select
  749. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement