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 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
| 'Debug Mode
Dim debugmode As Boolean
debugmode = True
'Si on est en debug mode afficher les valeurs de tous les éléments du formulaire
If debugmode Then
Message = _
"Toutes les banques : " & checkToutes & vbCrLf & _
"Criticite " & listCriticite & vbCrLf & _
"Statut " & listStatut.Column(1) & vbCrLf & _
"BPALS " & checkBPALS & vbCrLf & _
"BPATL " & checkBPATL & vbCrLf & _
"BPCA " & checkBPCA & vbCrLf & _
"BPMC " & checkBPMC & vbCrLf & _
"BPOC " & checkBPOC & vbCrLf & _
"BPPS " & checkBPPS & vbCrLf & _
"BPA " & checkBPA & vbCrLf & _
"BP2L " & checkBP2L & vbCrLf & _
"BPBFC " & checkBPBFC & vbCrLf & _
"BPPO " & checkBPPO & vbCrLf & _
"BPN " & checkBPN & vbCrLf & _
"BPVF " & checkBPVF & vbCrLf & _
"BPLC " & checkBPLC & vbCrLf & _
"BPAz " & checkBPAz & vbCrLf & _
"BPSO " & checkBPSO & vbCrLf & _
"BPPC " & checkBPPC & vbCrLf & _
"BPRi " & checkBPRi
Style = vbOKOnly
titre = "DEBUG MODE!"
MsgBox Message, Style, titre
End If
'========================================================
' BANQUES
'========================================================
'Créer un tableau pour stocker les banques souhaitées
Dim arrayBanques(1 To 17) As String
Dim sqlClauseWhereBanque As String
'Si toutes les banques ont été demandées pas de clause where
If checkToutes Then
clauseSQLWhereBanque = ""
'Sinon, on construit une clause Where
Else
'Indice pour le tableau
Dim i As Integer
i = 1
'Vérifier toutes les cases à cocher une par une
If checkBPALS Then
arrayBanques(i) = "BPALS"
i = i + 1
End If
If checkBPATL Then
arrayBanques(i) = "BPATL"
i = i + 1
End If
If checkBPCA Then
arrayBanques(i) = "BPCA"
i = i + 1
End If
If checkBPMC Then
arrayBanques(i) = "BPMC"
i = i + 1
End If
If checkBPOC Then
arrayBanques(i) = "BPOC"
i = i + 1
End If
If checkBPPS Then
arrayBanques(i) = "BPPS"
i = i + 1
End If
If checkBPA Then
arrayBanques(i) = "BPA"
i = i + 1
End If
If checkBP2L Then
arrayBanques(i) = "BP2L"
i = i + 1
End If
If checkBPBFC Then
arrayBanques(i) = "BPBFC"
i = i + 1
End If
If checkBPPO Then
arrayBanques(i) = "BPPO"
i = i + 1
End If
If checkBPN Then
arrayBanques(i) = "BPN"
i = i + 1
End If
If checkBPVF Then
arrayBanques(i) = "BPVF"
i = i + 1
End If
If checkBPLC Then
arrayBanques(i) = "BPLC"
i = i + 1
End If
If checkBPAz Then
arrayBanques(i) = "BPAz"
i = i + 1
End If
If checkBPSO Then
arrayBanques(i) = "BPSO"
i = i + 1
End If
If checkBPPC Then
arrayBanques(i) = "BPPC"
i = i + 1
End If
If checkBPRi Then
arrayBanques(i) = "BPRi"
i = i + 1
End If
'Initialisation de la clause where
sqlClauseWhereBanque = " banque in ("
Dim nbBanquesDemandees As Integer
nbBanquesDemandees = 0
'Boucler sur le tableau pour trouver les banques qui ont été demandées et construire la clause where
For j = 1 To 17 Step 1
If Not arrayBanques(j) = "" Then
sqlClauseWhereBanque = sqlClauseWhereBanque & "'" & arrayBanques(j) & "',"
nbBanquesDemandees = nbBanquesDemandees + 1
End If
Next j
'Si aucune banque n'a été sélectionnée alors mettre à vide la clause
If nbBanquesDemandees = 0 Then
sqlClauseWhereBanque = ""
Else
'Supprimer la dernière virgule et ajouter une parenthèse fermante
sqlClauseWhereBanque = Left(sqlClauseWhereBanque, Len(sqlClauseWhereBanque) - 1) & ") "
'Afficher la requete si on est en debug mode
If debugmode Then
MsgBox sqlClauseWhereBanque, Style, titre
End If
End If
End If
'=======================================================
'CRITICITE
'=======================================================
Dim sqlClauseWhereCriticite As String
sqlClauseWhereCriticite = ""
If listCriticite Then
sqlClauseWhereCriticite = " criticite = " & listCriticite.Value & " "
End If
'Afficher la clause de criticite si on est en debug mode
If debugmode Then
MsgBox sqlClauseWhereCriticite, Style, titre
End If
'=======================================================
'STATUT
'=======================================================
Dim sqlClauseWhereStatut As String
If listStatut Then
sqlClauseWhereStatut = " statut = '" & listStatut.Column(1) & "' "
End If
'Afficher la clause de Statut si on est en debug mode
If debugmode Then
MsgBox sqlClauseWhereStatut, Style, titre
End If
'=======================================================
'REPONSE ATTENDUE
'=======================================================
Dim sqlClauseWhereReponseAttendue As String
If checkReponse Then
sqlClauseWhereReponseAttendue = " reponseAttendue = 'Oui' "
Else
sqlClauseWhereReponseAttendue = " reponseAttendue = 'Non' "
End If
'Afficher la clause de ReponseAttendue si on est en debug mode
If debugmode Then
MsgBox sqlClauseWhereReponseAttendue, Style, titre
End If
'=======================================================
'CONSTRUCTION DE LA REQUETE
'=======================================================
Dim requete As String
requete = "Select * from Echange "
'Si aucune clause n'est à ajouter on passe directement à l'exécution de la requête
If sqlClauseWhereBanque = "" And sqlClauseWhereCriticite = "" _
And sqlClauseWhereStatut = "" And sqlClauseWhereReponseAttendue = "" Then
GoTo Execution_Requete
Else
requete = requete & " WHERE "
If Not sqlClauseWhereBanque = "" Then
requete = requete & sqlClauseWhereBanque & " and"
End If
If Not sqlClauseWhereCriticite = "" Then
requete = requete & sqlClauseWhereCriticite & " and"
End If
If Not sqlClauseWhereStatut = "" Then
requete = requete & sqlClauseWhereStatut & " and"
End If
If Not sqlClauseWhereReponseAttendue = "" Then
requete = requete & sqlClauseWhereReponseAttendue & " and"
End If
End If
'Supprimer le dernièr And de la requete
requete = Left(requete, Len(requete) - 4)
'Afficher la requete si on est en debug mode
If debugmode Then
MsgBox requete, Style, titre
End If |
Partager