Salut tout le monde
Ca fait plus de 2h que je me casse la tête à comprendre il est ou le beug et je ne trouve pas. C'est pour ça que je me tourne vers les experts
Comme vous voyez si dessous, je fais donc tourné une boucle qui parcourt tout les lignes de mon tableau 'Vulnérabilité'
et selon les valeur qu'il y a dans les colonnes je remplis la colonne 'EtatCons' par une valeur. Sauf le pb, c'est ce que j'ai fait ne marche pas bien ( Et oui!! vous en doutez, sinon pourquoi serais-je là )
Alors le pb c'est que normalement la boucle dois etre parcouru 15 fois, sauf qu' elle ne se parcours que deux fois!
Voila le code:
Option Compare Database
Public Sub Mo()
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'% Déclaration des Variables %
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Dim db As Database ' Variable de type base de donnée
Dim rst, rst1, rst2 As DAO.Recordset ' Variables de type enrgistrement
Dim i, j As Integer ' Variables de type entier
Dim rqSQL, rqSQL1, rqSQL2, rqSQL3 As String ' Variables de type chaines de caractère
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'% Initialisation %
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Set db = CurrentDb() ' Affectation de la variable db à la base de donnée actuelle
rqSQL = "select COUNT(*) AS Nbre_Lignes from Vulnérabilité" ' Chaine de caractère type SQL
Set rst1 = db.OpenRecordset(rqSQL) ' Définir un nouveau enregistrement
j = CLng(rst1!Nbre_Lignes) ' Affectation à la variable j le nombre de lignes de la Table Vulnérabilité
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'% Modification EtatCons %
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
For i = 1 To j
'%%%%%%%
rqSQL1 = "SELECT * FROM [Vulnérabilité] WHERE [Id]<> " & i & ";"
Set rst2 = db.OpenRecordset(rqSQL1)
'%%%%%%%
If rst2!Rudéralisation = "Pas de dégradation" And rst2!Embroussaillement = "Pas de dégradation" And rst2!Errosion = "Pas de dégradation" Then
With rst2
.Edit
!EtatCons = "Bon"
.Update
End With
'%%%%%%%
ElseIf rst2!Rudéralisation = "Pas de dégradation" And rst2!Embroussaillement = "Pas de dégradation" And rst2!Errosion = "Faible à moyen" Then
With rst2
.Edit
!EtatCons = "Moyen"
.Update
End With
'%%%%%%%
ElseIf rst2!Rudéralisation = "Faible à moyen" And rst2!Embroussaillement = "Pas de dégradation" And rst2!Errosion = "Pas de dégradation" Then
With rst2
.Edit
!EtatCons = "Moyen"
.Update
End With
'%%%%%%%
ElseIf rst2!Rudéralisation = "Pas de dégradation" And rst2!Embroussaillement = "Faible à moyen" And rst2!Errosion = "Pas de dégradation" Then
With rst2
.Edit
!EtatCons = "Moyen"
.Update
End With
'%%%%%%%
ElseIf rst2!Rudéralisation = "Non renseigné" And rst2!Embroussaillement = "Non renseigné" And rst2!Errosion = "Non renseigné" Then
With rst2
.Edit
!EtatCons = "Non renseigné"
.Update
End With
'%%%%%%%
Else
With rst2
.Edit
!EtatCons = "Mauvais"
.Update
End With
'%%%%%%%
End If
Next
End Sub
Pourtant la valeur de j est bien 15
Croyez vous que je dois plutot créer un nouvelle Recorset à chaque increment de i?
Si quelqu'un peut m'aidé ça serait super Génial
Merci d'avance!