Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

Modeste

XLDnaute Barbatruc
Re : Fonction If a deux conditions

Bonjour M4I3E,

Pas certain, mais ne faut-il pas écrire
Code:
If r!Status = "In Use" Or r!Status = "Comes To End" Then


au lieu de:
Code:
If r!Status = "In Use" Or "Comes To End" Then
 

Discussions similaires

Réponses
5
Affichages
284
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…