1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
Option Compare Database
Option Explicit
Public Sub Bilan()
Dim rs As Recordset
Dim Rs_Id As Recordset
Dim SQl As String
Dim Derniere_date As String
Dim Chaine As String 'critères de tri
Dim ExcelSheet As Object, Worksheet As Object
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim Chemin As String
Dim Nom As String
DoCmd.SetWarnings False
SQl = "delete * from TMP"
DoCmd.RunSQL SQl
MAJqtepourPPM
' extract de réclamation vers TMP des PAC ouverts et ce ceux fermé avec une quantité non confirmée
SQl = " SELECT T_Utilisateur.nom_user, T_Utilisateur.Email, T_Reclamation.re_numero AS Numero_PAC, T_clients.cl_nom, T_Reclamation.re_reclamation_client, T_Reclamation.re_date_emission_rc, T_Reclamation.re_designation_produit, T_Reclamation.re_reference_produit_flers AS Ref_Faurecia, T_Reclamation.re_quantité_produit_defectueux, T_Reclamation.re_PPM, IIf([re_PPM_CC]=-1,'OUI','NON') AS [Quantité confirmée ?], First(T_Reclamation.re_libelle_defaut) AS Libelle_defaut, T_Reclamation.re_date_creation_dossier AS Date_PAC, T_upa.up_nom, First(T_Reclamation.re_cause_non_detec_defaut) AS Cause_non_detec_defaut, First(T_Reclamation.re_cause_defaut) AS Cause_defaut, Sum(T_couts.co_cout) AS Somme_cout, IIf([re_type_produit]='Série','Série','PNX') AS Type_produit, T_Reclamation.prd_type AS Famille_produit, IIf([re_origine]='1','Interne','Externe') AS Origine_defaut_Faurecia, T_origine_defaut.or_etudes AS Origine_Defaut, " _
& " T_type_defaut.ty_aspect_peinture AS Type_defaut, IIf(T_Reclamation.re_gravite_defaut='1','Léger',IIf(T_Reclamation.re_gravite_defaut='2','Moyen','Haut')) AS gravité, T_Reclamation.re_date_cloture, IIf(T_Reclamation.re_recurrence=0,'NON','OUI') AS Recurrence, IIf(T_Reclamation.re_prise_en_compte=2,'OUI',IIf(T_Reclamation.re_prise_en_compte=1,'NON','COMEX')) AS Prise_En_Compte, T_type_produit.prd_usine INTO TMP " _
& " FROM T_type_defaut RIGHT JOIN ((T_origine_defaut RIGHT JOIN (T_Utilisateur RIGHT JOIN (((T_upa RIGHT JOIN (T_Reclamation LEFT JOIN T_clients ON T_Reclamation.cl_code = T_clients.cl_code) ON T_upa.up_code = T_Reclamation.re_upa) LEFT JOIN T_type_produit ON T_Reclamation.prd_type = T_type_produit.prd_type) LEFT JOIN T_Produit_retour ON T_Reclamation.re_numero = T_Produit_retour.rt_numero_reclamation_client) ON T_Utilisateur.login = T_Reclamation.re_createur) ON T_origine_defaut.or_code = T_Reclamation.or_code) LEFT JOIN T_couts ON T_Reclamation.re_numero = T_couts.re_numero) ON T_type_defaut.ty_code = T_Reclamation.ty_code " _
& " GROUP BY T_Utilisateur.nom_user, T_Utilisateur.Email, T_Reclamation.re_numero, T_clients.cl_nom, T_Reclamation.re_reclamation_client, T_Reclamation.re_date_emission_rc, T_Reclamation.re_designation_produit, T_Reclamation.re_reference_produit_flers, T_Reclamation.re_quantité_produit_defectueux, T_Reclamation.re_PPM, IIf([re_PPM_CC]=-1,'OUI','NON'), T_Reclamation.re_date_creation_dossier, T_upa.up_nom, IIf([re_type_produit]='Série','Série','PNX'), T_Reclamation.prd_type, IIf([re_origine]='1','Interne','Externe'), T_origine_defaut.or_etudes, T_type_defaut.ty_aspect_peinture, IIf(T_Reclamation.re_gravite_defaut='1','Léger',IIf(T_Reclamation.re_gravite_defaut='2','Moyen','Haut')), T_Reclamation.re_date_cloture, IIf(T_Reclamation.re_recurrence=0,'NON','OUI'), IIf(T_Reclamation.re_prise_en_compte=2,'OUI',IIf(T_Reclamation.re_prise_en_compte=1,'NON','COMEX')), T_type_produit.prd_usine, T_Reclamation.re_prise_en_compte " _
& " HAVING (((T_Reclamation.re_numero) Like ""qfr*"") AND ((T_Reclamation.re_PPM) Is Null) AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""OUI"") AND ((T_Reclamation.re_date_cloture) Is Not Null)) OR (((T_Reclamation.re_numero) Like ""qfr*"") AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""NON"") AND ((T_Reclamation.re_date_cloture) Is Not Null)) OR (((T_Reclamation.re_numero) Like ""qfr*"") AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""NON"") AND ((T_Reclamation.re_date_cloture) Is Null)) OR (((T_Reclamation.re_numero) Like ""qfr*"") AND ((T_Reclamation.re_PPM) Is Null) AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""OUI"") AND ((T_Reclamation.re_date_cloture) Is Null)) OR (((T_Reclamation.re_numero) Like ""qfr*"") AND ((T_Reclamation.re_PPM) Is Not Null) AND ((IIf([re_PPM_CC]=-1,'OUI','NON'))=""OUI"") AND ((T_Reclamation.re_date_cloture) Is Null)) " _
& " ORDER BY T_Utilisateur.nom_user, T_Reclamation.re_numero, T_clients.cl_nom;"
DoCmd.RunSQL SQl
'sélection de chacun des utilisateur et création de l'analyse pour chacun d'eux
SQl = "SELECT TMP.nom_user, TMP.Email FROM TMP GROUP BY TMP.nom_user, TMP.Email;"
Set Rs_Id = CurrentDb.OpenRecordset(SQl, dbOpenDynaset)
Rs_Id.MoveLast
Rs_Id.MoveFirst
For K = 1 To Rs_Id.RecordCount
'selections des infos relatives à l'utilisateur Rs_Id(0)
SQl = "SELECT TMP.* FROM TMP WHERE (((TMP.nom_user)=""" & Rs_Id(0) & """));"
Set rs = CurrentDb.OpenRecordset(SQl, dbOpenDynaset)
Set ExcelSheet = GetObject(fExtractUntilLast(CurrentDb.Name, "\") & "\excel\bilan mensuel.xls")
ExcelSheet.Application.DisplayAlerts = False
If Not ExcelSheet.Application.Visible = True Then ExcelSheet.Application.Visible = True
ExcelSheet.Application.Windows("bilan mensuel.xls").Visible = True
rs.MoveLast
rs.MoveFirst
With ExcelSheet.sheets(1)
For I = 2 To rs.RecordCount + 1
For J = 1 To 27
.cells(I, J + 1) = rs(J - 1)
Next
rs.MoveNext
Next
.Rows("2:" & rs.RecordCount + 1).RowHeight = 13
End With
Chemin = left(CurrentDb.Name, 30) & "Documents\"
Nom = "Bilan mensuel " & Rs_Id(0) & " " & Day(Now) & "-" & Month(Now) & "-" & Year(Now)
ExcelSheet.SaveAs Chemin & Nom & ".xls"
ExcelSheet.Application.DisplayAlerts = True
If ExcelSheet.Application.workbooks.Count > 1 Then
ExcelSheet.Application.workbooks(Chemin & Nom & ".xls").Close
Else
ExcelSheet.Application.Quit
End If
SQl = "Salut, " & Chr(10) & Chr(10) & "Vous trouverez ci-joint le bilan périodique des réclamations que vous avez créées depuis le 01/01/05."
mailer 1, 1, "" & Chemin & Nom & ".xls", Rs_Id(1), "", "", "", "", "", "", "", "", "", "Bilan mensuel des réclamations", SQl, , False
Rs_Id.MoveNext
Next
Set rs = Nothing
Set Rs_Id = Nothing
Set ExcelSheet = Nothing
DoCmd.SetWarnings True
End Sub |
Partager