Pb de code

Stev16 Messages postés 7 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 11 janvier 2008 - 7 mai 2007 à 10:49
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 - 7 mai 2007 à 19:03
S'il vous plait, quelqu'un peut il me dire ce qui ne va pas dans ce code ?
A la ligne rouge; Le message est le suivant: les arguments sont de type incorect, en de dehors des limites autorisées. Merci d'avance

Public Sub alarme()
connect
Set rs = New ADODB.Recordset
rs.Open "Entretien_preventif", cn, adOpenDynamic, adLockOptimistic



rs.Find "[Date_prochaine] <= Date()"
If rs.EOF Then
    rs.Find "[Date_prochaine] <= Date()-5"
    If rs.EOF Then
        MDIForm1.ShpAlarme.BackColor = vbGreen
    Else
        MDIForm1.ShpAlarme.BackColor = vbYellow
    End If
Else
  MDIForm1.ShpAlarme.BackColor = vbRed
End If


End Sub

6 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 mai 2007 à 11:23
Salut,

Moi je me demande pourquoi cette ligne et avant le recherche dans le recordset...?

A+
Exploreur

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 mai 2007 à 11:30
Salut,

De plus, je serais toi je ferai bien une requête sql, pour n'avoir que les données qui correspondent à ton crtitère de recherche..

du style :

Dim Sql As string

Sql = "SELECT * FROM Entretien_preventif WHERE Date_prochaine <=  # Date # "

rs.Open Sqk, cn, adOpenDynamic, adLockOptimistic

A+
Exploreur

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 mai 2007 à 11:31
Pardon, mauvais copier/coller :

rs.Open Sql, cn, adOpenDynamic, adLockOptimistic

A+
Exploreur

 
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 mai 2007 à 12:40
Salut
En VB6, Date() n'existe pas, Date sans les parenthèses à la rigueur.
Utilise Today (ou un Format de Today si tu ne veux que la date) ou une fonction de calcul de date comme DateDiff ou DateAdd

Lance toujours tes applications avec Ctrl-F5 (au lieu de F5) afin que l'IDE trouve ce genre d'erreur avant que ton programme ne tombe dessus (debuggage plus rapide)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Stev16 Messages postés 7 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 11 janvier 2008
7 mai 2007 à 18:52
Merci pour l'aide, mais je n'arrive pas toujour à resoudre mon pb. Pour être plus simple, voici le veritable Pb.
J'ai une table "Entretien_preventif" dans le quel se trouve un champ [Date_prochaine] de type Date. Je veux a l'aide d'un module, verifier trois chose dans la table
1) S' il ya une date > à today alors shpAlarme.Backcolor=Vbred
2)Si aucune date n'est > à today mais qu'il ya une date > à today -5 alors shpAlarme.Backcolor=VbYellow
3) Si aucune des premieres condition n'est verifié, alors shpAlarme.Backcolor=VbGreen

Merci pour la bonne comprehension !
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 mai 2007 à 19:03
Salut,

Jack, ta donné tout ce qui te faut pour faire ce que tu souhaites avec DateDiff, regarde ton aide en ligne...!!!

Regarde cette exemple :

toto = "12/01/2007"
toto1 = "13/01/2007"
tata = DateDiff("d", toto, toto1)
MsgBox tata & " différence en jours"

A+
Exploreur

 
0
Rejoignez-nous