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 109 110
| Private Function TraitEtat() As Boolean
'Déclaration de variable
Dim chTrace As String ' chaine à tracer dans le fichier log
Dim rs As Recordset ' Résultat de la requete
Dim sql As String ' Requête à exécuter
Dim sqlIns As String ' Requête d'insertion
Dim I, j, k As Long ' index de boucle
Dim verif As Boolean ' variable de controle
Dim id_etat_equip, id_etat_domaine, id_etat_nature, id_etat_lib_associe As Integer
Dim Hall As String
'Initialisation des variables
I = 0
j = 0
k = 100
sql = ""
On Error GoTo ErreurSQL
'--------Sélection des enregistrements non traités
sql = "select * from evenement where (cpec=0 and vartype<>'SYS') order by satt6,satt7,rects"
Set rs = db.OpenRecordset(sql)
While Not (rs.EOF)
'Construction des requêtes d'insertion
'initialisation des identifiants
id_etat_equip = 0
id_etat_domaine = 0
id_etat_nature = 0
id_etat_lib_associe = 0
'Récupération id_etat_equip
For I = 0 To UBound(Tab_eqt)
If Tab_eqt(I).ch3 = rs.Fields("satt6") Then
id_etat_equip = Tab_eqt(I).ch1
Exit For
End If
Next I
'Récupération id_etat_domaine
For I = 0 To UBound(Tab_attr1)
If Tab_attr1(I).ch2 = rs.Fields("satt1") Then
id_etat_domaine = Tab_attr1(I).ch1
Exit For
End If
Next I
'Récupération id_etat_nature
For I = 0 To UBound(Tab_attr2)
If Tab_attr2(I).ch2 = rs.Fields("satt2") Then
id_etat_nature = Tab_attr2(I).ch1
Exit For
End If
Next I
'Récupération id_etat_lib_associe
For I = 0 To UBound(Tab_libass)
If Tab_libass(I).ch2 = rs.Fields("evttype") Then
id_etat_lib_associe = Tab_libass(I).ch1
Exit For
End If
Next I
'Récupération du Hall
If rs.Fields("satt3") = "HALLB" Then
Hall = rs.Fields("satt3")
Else
Hall = rs.Fields("satt4")
End If
'Requête d'insertion
sqlIns = sqlIns + "insert into tEtat (Etat,Nom_var,libelle,operateur,date,id_etat_equip,id_etat_domaine,id_etat_nature,id_etat_lib_associe,nom_hall) " & _
"values (" & rs.Fields("nval") & ",'" & rs.Fields("name") & "','" & TraiterApostrophe(rs.Fields("title")) & "','" & rs.Fields("username") & "','" & _
CDate(rs.Fields("rects")) & "'," & id_etat_equip & "," & id_etat_domaine & "," & _
id_etat_nature & "," & id_etat_lib_associe & ",'" & Hall & "');" & Strings.Chr$(13) & Strings.Chr$(10)
'Insertion des enregistrements toutes les 100 requêtes
If j >= k Then
'appel de la procédure exécute sql
If ExecuteSQL(sqlIns, 3) Then
sqlIns = ""
End If
sqlIns = ""
k = k + 100
End If
j = j + 1
rs.MoveNext
Wend
'*****Insertion des données dans la table tEtat
If Not (sqlIns = "") Then
verif = ExecuteSQL(sqlIns, 3)
End If
'*****Mise à jour des données insérées dans la table evenement
'mise à jour des données traitées et les données invalides de la table compteur ( mise à 1 du champ cPec )
sql = "update evenement set cpec=1 where cpec=0"
Set rs = db.OpenRecordset(sql)
'fermeture du recordset
rs.Close
Set rs = Nothing
chTrace = "Fin de traitement des données concernant les états - Table tEtat"
TraceLog (chTrace)
TraitEtat = True
Exit Function
ErreurSQL:
TraitEtat = False
chTrace = "Erreur de mise à jour de la table Etat , Erreur : " + Err.Description
TraceLog (chTrace)
ControlEssai = False
End Function |
Partager