Variable date

Résolu
blangenois Messages postés 7 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 24 octobre 2005 - 17 oct. 2005 à 19:56
blangenois Messages postés 7 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 24 octobre 2005 - 21 oct. 2005 à 18:19
Bonjour,
j'ai un recordset1..MaDate, j'aimerai que celui ci soit surligné en jaune et écris en rouge lorsque cette date est dépassée ou du moins changer son aspect
je m'explique :
16/10/2005 donc aujourdhui il devait apparaitre sur ma page asp 16/10/2005 et surligner en jaune.
Pourriez vous m'aider....
Merci d'avance

Philippe

5 réponses

Nicolas_kojack Messages postés 136 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 25 mai 2012
19 oct. 2005 à 12:48
' au-dessus du <head>
<%
' Ta connexion à la base ( qui doit être en une ligne mais qui apparait ici en deux lignes )
Conn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.mapPath("date.mdb")


'La Sélection de la table et des champs
Set RS =Server.CreateObject("ADODB.Recordset")
sql = "SELECT * from mesdates"
Rs.Open sql, Conn, 3, 3


'Tu cree une variable jour qui aura pour valeur la date du jour
jour = date()
%>

'dans le body :

'Tu crée le début de ta boucle d'enregistrements ( positionnement sur le prmier enregistrement )
<%
if rs.recordcount > 0 then
rs.movefirst
do while not rs.eof

'Tu crée la variable champjour qui aura pour valeur le contenu de ton champ pour chaque enregistrement
champjour = rs("date")
%>


'Maintenant il te faut une condition, ici je décide que ma date soit surlignée en jaune et ecrit en rouge ( jusqu'à la borne
tout doit être sur la même ligne ):
<%if champjour = jour then%>#FF0000"><%=champjour%><%else%><%=champjour%><%end if%>

'Tu crée la fin de ta boucle d'enregistrement ( positionnement sur le champ suivant )
<%
rs.movenext
loop
else
end if
%>

'Ce bout de code surligne en jaune et ecrit en rouge la date du jour, mais si tu veux que toutes les dates d'avant apparaissent de la même manière, il te suffit de remplacer dans la condition <%if champjour = jour then%> par <%if champjour <= jour then%>. Etc ....

Voilà, en esperant que cela puisse t'aider.
Nicolas
3
Nicolas_kojack Messages postés 136 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 25 mai 2012
19 oct. 2005 à 21:05
Nurgle : oui pour moi aussi elle tient en une seule ligne, mais je ne suis pas venu depuis un moment et j'avais été habitué a ce qu'elle ne tienne pas sur une seule ligne... Bref dsl

Philippe ( Blangenois ) :

tu copies tout le code sur ta page. Pour information :

- la première ligne correspond à la connection avec ta base, "date.mdb" est donc le nom de ma base de donnée que j'ai mis à la racine ( pas conseillé d'ailleurs ) si pour ta part elle se trouve dans un répertoire autre que le répertoire racine tu dois mettre le chemin relatif avec des slashs comme s'il s'agissait d'une URL puis le nom de ta base avec extension ( je ne pense pas qu'il soit necessaire de le dire mais sait on jamais )

- la ligne sql = "SELECT * from mesdates" pose la limite de ton recordset. Ici mesdates est le nom de la table qui m'a servie. Tu dois remplacer mesdates par le nom de ta table. Le fait d'écrire SELECT *
veut dire que tu lui demande de choisir tous les champs de la table.

- la ligne if rs.recordcount > 0 then
( je supute que tu le saches, mais sait on jamais ... ) pose la condition : SI dans mon recordset j'ai + de zéro enregistrement ALORS( si tu ne mets pas une condition et que tu n'as pas d'enregistrement il te sortira une erreur )

- la ligne juste en dessous concerne les instruction à faire s'il y a au moins un enregistrement. rs.movefirst
veut dire que le recordset se place sur le premier enregistrement ( c a d la première ligne de ta table )

- La ligne encore en dessous do while not rs.eof
veut dire que l'opération doit se répéter tant que la condition est vraie ( ici tant qu'il y a un enregistrement en plus )

- champjour correspond à la valeur date sur la ligne en cours. Dans mon cas le champ date de ma table s'appelle date ( ce qui n'est pas non plus conseillé du tout ).
- <%if champjour jour then%> ici je compare ma variable champjour ( qui équivaut à l'enregistrement de la table qui se trouve au niveau du curseur du recordset ) Je compose une nouvelle condition : <gras>SI ma variable EST EGALE à la date du jour ALORS. ( jour étant défini plus haut : jour</gras> date() )

- ... ALORS tu me mets le bloc de code HTML ( ici des balises pour définir la mise en forme du texte ) puis tu m'affiche le recordset ( champjour ). SINON ( else ) tu ne me mets que le recordset ( sans la mise en forme ).

- end if : je ferme la condition du champjour

- je ferme ensuite ma boucle en lui disant que de se positionner sur l'enregistrement suivant : rs.movenext

- loop : tu reviens au début du code ( if rs.recordcount > 0 then )

- else : s'il n'y a plus d'enregistrement suivant ( SINON )

- end if : fin de la condition de départ

Pour revenir ensuite à vouloir surligner ce que tu veux par rapport a un enregistrement ( ici une certaine date ) tu dois modifier la condition qui est comprise dans la boucle des recordset : pour se faire tu utilises les opérateurs que tu utiliserais en mathématique à savoir =, >, >,<>, et ainsi de suite. Si tu veux qu'elle soit égale ou dépassée pour être affichée en surlignée jaune et écrite en rouge tu devras remplacer if champjour = date then par if champjour <= date, si tu veux qu'elle soit égale ou postérieure je te laisse deviner...

Voilà si cela peut t'aider un peu plus ...
3
blangenois Messages postés 7 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 24 octobre 2005
19 oct. 2005 à 19:44
Bonjour,


merci vous de vous êtes donné la peine de répondre a mon soucis....
en fait la date doit être surligner et écrit en rouge si elle est égale ou dépasse celle du jour.....
je travaille avec dreamweaver , étant un sacré novice, je présume qu'a la place du recorset, je dois placer le code que vous m'avez envoyé??
Merci d'avance.

Philippe
0
cs_Nurgle Messages postés 1642 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 28 avril 2011 4
19 oct. 2005 à 20:02
Salut,



oui, tu peux tout simplement copier son code dans ta page, et tester .

Remplace simplement date.mdb par le chemin de ta base et SELECT * from mesdates par la chaine SQL que tu avais précédement dans ton recordset.



Je corrigerais juste une petite partie, ce qui donnerais :



<%if champjour < jour then%>background-color: #FFFF00;color:#FF0000"><%=champjour%><%else%><%=champjour%><%end if%>




(évitez la balise , au mieux par respect des standards du W3C, au pire par simple envie d'avoir une balise en moins pour le même résultat )



<hors_sujet to="Nicolas_kojack">

"' Ta connexion à la base ( qui doit être en une ligne mais qui apparait ici en deux lignes )"

--> Pas de bol, elle tient sur une ligne (en tout cas pour moi) !!

(c'était bien tenté...lol)

</hors_sujet>



A+++

Nurgle
Il est plus aisé d'être sage pour les autres que pour soi-même ! (La Rochefoucauld)
0

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

Posez votre question
blangenois Messages postés 7 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 24 octobre 2005
21 oct. 2005 à 18:19
SUper....
ca fonctionne du tonnerre,vous êtes des PROS et de plus sympa....
Merci à vous deux et a bientôt.

Philippe
0
Rejoignez-nous