DAVIMIKA
Messages postés119Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention10 janvier 2014
-
12 juin 2007 à 21:35
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 2019
-
27 juil. 2007 à 11:38
Bonjour
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
J’ai une [tbl Adhérents] dont les champs « case à cocher Départ » et « DateDépart » sont vide jusqu’au 31/08,
1)
A partir du 01/09 je voudrais mettre à jour ces champs automatiquement, et que la condition se remplit que le 01/09 de chaque année.
2) Pourquoi j’ai l’erreur « Elément non trouvé » lorsque j’écris :
rs(« Départ « ).value = true ou
rs.Fields(« Départ « ).value = true ou
rs ![Départ].value = true
Et que je suis obligé d’écrice cela
rs.Fields(3).Value = True
Mon code qui ne fonctionne pas et qui me fait une boucle sans fin.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 27 juil. 2007 à 11:38
Les reponses ont elles solutionné ton probleme ? si oui merci de valider "reponse accepter" afin faciliter les recherches et recompenser les gentils utilisateurs
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201578 12 juin 2007 à 23:38
Salut
Pour le Value, je pense que si tu nommes les champs avec l'un de tes trois syntaxes qui me semblent correctes (sans l'espace entre rs et ! ), on ne peut pas utiliser de .Value derrière (rien derrière en fait)
Pour le reste, je n'ai rien compris à la question (1 notamment)
Les autres, faut respecter le type du champ [Date] tel que tu l'as défini dans ta DB: Est-il de type Date ?
Si oui, il y a des règles :
On ne peut pas comparer une date avec 0 et la comparaison avec Null se fait avec "Is Null" (et pas = Null)
Date est un mot clé dans beaucoup de langages : à bannir ou alors vraiment faire attention de toujours utiliser les [ et ], même (et surtout) à l'intérieur d'une fonction de ce langage.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Champion du monde de boule de cristal - 2005 Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 13 juin 2007 à 00:08
Salut,
pour la boucle il suffit de parcourir ton rs
et comparer Day et Month du champ avec les valeurs critère.
Donc pas besoin de FindFirst.
(après avoir renommer ton champ Date)
With rs
Do While Not .EOF
If (Not IsNull(![Dat]) )And (Day(![Dat]) >= 1) And (Month(![Dat]) <= 9) Then
.Edit
.Fields(2)= lstr_datedépart
.Fields(3) = True
.Update
End If
.MoveNext
DAVIMIKA
Messages postés119Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention10 janvier 2014 13 juin 2007 à 10:54
Bonjour,
Merci pour vos réponses et toutes mes excuses pour mes erreurs de frappes, en effet comme indiqué dans ma requête les deux champs à mettre à jour son "Départ" (Type case à cocher) et "DateDépart" (Type Champ date).
Pour la 2ème question j'ai supprimé le (.value) :
rs("Départ") = ou rs("DateDépart")=
rs.Fields("Départ")= ou rs.Fields("Départ")=
rs![Départ] = ou rs![DateDépart] =
Et que je suis toujour être obligé d'écrice cela :
rs.Fields(2).Value pour Date et Fields(3).Value pour DateDépart.
Avez-vous une explication à cela ?
Pour la deuxième question j'ai modifié la condition suivant le champ "DateDépart" et lorsque je met un espion sur DateDépart (J'ai Elément non trouvé).
If (Not IsNull(![DateDépart]) )And (Day(![DateDépart]) >= 1) And (Month(![DateDépart]) <= 9) Then
Par ailleur est-ce que la condition me permet d'exécuter la boucle (remplir les deux champs) uniquement après le 31/08 ?
Merci pour votre aide.
Salutations
Vous n’avez pas trouvé la réponse que vous recherchez ?
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 13 juin 2007 à 13:08
Bonjour,
>Réponse 1 :
Personnellement je ne met jamais de .Value
En plus voici les différentes synthaxex correctes :
rs.Fields("DateDepart") =...
ou rs.Fields(2)=...
ou rs![DateDepart] =...
Avec rs.Fields il faut toujours des accollades et
soit le nom du champ et des double quotes
Soit l' index du champ (sa position dans la table -1)
Avec rs! ( et donc sans .Fields ) il faut des crochet et le nom
du champ sans les double quotes.
>Réponse 2
Pour l' erreur de l' élément non trouvé, plusieurrs causes possibles :
- rs!["DateDépart"]
- ou rs.Fields(DateDepart)
- ou rs![DateDepart] ou rs.Fields("DateDepart") ( ce qui est correct)
mais l' orthographe du nom de chmp est incorecte
- ou l' index spécifié est supérieur à l' index du dernier champ de la table.
>Réponse 3
Pour remplir les deux champs) uniquement après le 31/08 il faut mettre
If (Not IsNull(![DateDépart]) )And (Day(![DateDépart]) >= 1) And (Month(![DateDépart]) > 8) Then ===> mois 9, 10 , 11 et 12
Pour avoir uniquement le mois 9 il faut mettre
If (Not IsNull(![DateDépart]) ) And (Day(![DateDépart]) >= 1) And (Month(![DateDépart]) = 9) Then