iqsd
Messages postés5Date d'inscriptionvendredi 23 novembre 2007StatutMembreDernière intervention26 novembre 2007
-
24 nov. 2007 à 17:35
iqsd
Messages postés5Date d'inscriptionvendredi 23 novembre 2007StatutMembreDernière intervention26 novembre 2007
-
26 nov. 2007 à 08:43
Bonjour,
J'ai réalisé un formulaire qui permet la saisie des temps,
Je propose une saisie à la quinzaine et affiche les dates (à partir d'une table quinzaine).
Ces dates sont récupérées dans un sous-formulaire pour saisir les temps passés.
Je possède une table "jours fériés".
Je souhaiterai à l'affichage de mon formulaire principal créer un code évenement pour comparer mes 10 dates (j'ai exclu les samedis et dimanche) à celles de la table "jours fériés" et les afficher en rouge si il y a correspondance.
Je n'ai pas touché à Access depuis longtemps et cherche désespérement la routine.
ps (je tourne en Access 2000)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 nov. 2007 à 17:57
Access = VBA --> Modif catégorie de la uestion
Jette un oeil à ce fichier Excel à propos des dates des jours fériés et du coloriage <clique ici> Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
iqsd
Messages postés5Date d'inscriptionvendredi 23 novembre 2007StatutMembreDernière intervention26 novembre 2007 24 nov. 2007 à 20:17
Merci Jack,
j'ai déjà exploré les pistes de calendrier "prêt à l'emploi".
En fait, je génère mes propres dates, et souhaite simplement mettre 1 alerte à l'utilisateur, s'il s'agit d'une date présente dans ma table "jours fériés".
iqsd
Messages postés5Date d'inscriptionvendredi 23 novembre 2007StatutMembreDernière intervention26 novembre 2007 25 nov. 2007 à 10:38
voilà ce que j'ai essayé pour répondre à mon souci de mise en couleur de champs. Cet évenement est placé sur activation, mais à l'ouverture du formulaire, il renvoie une erreur liée à la procédure sur activation, pouvez-vous m'aider ?
Merci
Isabelle
Private Sub Form_Current()
Dim dBase As Databases
Dim SQL As String
Dim RS As Recordset
SQL = "jours fériés"
Set RS = dBase.OpenRecordset(SQL, dbOpenDynaset)
' Recherche de jours fériés dans la Table
While Not RS.EOF
If RS.Fields("date") = Me![date 1] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![date 2] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![date 3] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![DATE 4] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![DATE 5] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![DATE 6] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![DATE 7] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![DATE 8] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![DATE 9] Then GoTo Suite
RS.MoveNext 'Ligne suivante
If RS.Fields("date") = Me![DATE 10] Then GoTo Suite
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 25 nov. 2007 à 14:11
Salut
Si tu as une erreur, dis nous laquelle.
Ta technique de test n'est pas au point.
En général, dans une boucle "Do While-Loop" (ou "While-Wend" qui marche tjrs mais obsolète), on ne retrouve qu'un seul MoveNext.
En effet, le "While Not RS.EOF" ne peut être évalué qu'à chaque cycle et si tu fais plusieurs MoveNext, tu as de fortes chances de dépasser la fin du RecordSet sans le voir, d'où l'erreur.
En fait, il faut modifier ta méthode et bien comprendre ce que tu fais.
Ceci suffit, pas besoin de Goto ou de MoveNext superflux (+ utilise plutôt Do-Loop que While-Wend)
Do While Not RS.EOF If RS.Fields("date") Me![date 1] Then Me![date 1].ForeColor QBColor(4) If RS.Fields("date") Me![date 2] Then Me![date 2].ForeColor QBColor(4) If RS.Fields("date") Me![date 3] Then Me![date 3].ForeColor QBColor(4)
...
RS.MoveNext 'Ligne suivante
Loop
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Vous n’avez pas trouvé la réponse que vous recherchez ?