Fonction If a deux conditions

M4I3E

XLDnaute Nouveau
Bonjour a tous,
Alors voila, j’ai un petit souci VBA.

Je suis débutant, donc j’ai repris un code d’une ancienne base de donnée pour l’approprier à mes besoins.

Je souhaite faire une fonction à « deux conditions » : (si la première condition est vraie alors passer a la deuxième condition et si celle-ci est également vrai alors appliquer la fonction qui est une modification de champs).

Dans mon cas, voici la fonction que je souhaite avoir :
A l’ouverture de la fonction « ComesToEnd », aller chercher dans la DataBase « CalibrationDataBase » la colonne « Status ». Pour chaque ligne, si la valeur de la colonne « Status » est égale a « In Use » ou « Comes To End » et que la valeur de la colonne « CalibrationDueDate » est supérieure a la date d’aujourd’hui, alors modifier le « Status » pour « Expired ».
Voici le code utilisé :

Code:
Sub Expired()

On Error Resume Next
Dim d As DAO.Database
  Dim r As Recordset
   Dim Status As Field, CalibrationDueDate As Field
   Set d = CurrentDb()
   Set r = CurrentDb.OpenRecordset("CalibrationDataBase")
   Set Status = r.Fields("Status")
   Set CalibrationDueDate = r.Fields("CalibrationDueDate")


Do Until r.EOF
If r!Status = "In Use" Or "Comes To End" Then
If DateDiff("d", Date, CalibrationDueDate) < 0 Then
      
      r.Edit
      
      r!Status = "Expired"
                 
      r.Update


End If
End If

      r.MoveNext
Loop
   r.Close


End Sub


Et le résultat que j’obtiens est qu’il ne prend pas en compte la première condition : La fonction prend en compte toutes les valeurs de « Status » alors qu’il ne devrait prendre en compte que les status « In Use » et « Comes To End ».

Voila si vous avez la solution cela me rendrai un énorme service car je me casse les dents depuis pas mal de temps…
Merci par avance pour votre aide.
 

Discussions similaires

Réponses
5
Affichages
275

Statistiques des forums

Discussions
312 913
Messages
2 093 534
Membres
105 750
dernier inscrit
fred13340