Erreur en boucle End if sans bloc If

Résolu/Fermé
LTCMOC Messages postés 5 Date d'inscription mardi 20 septembre 2016 Statut Membre Dernière intervention 20 septembre 2016 - 20 sept. 2016 à 14:00
 Utilisateur anonyme - 22 sept. 2016 à 01:20
Bonjour j'essaye d'automatiser la mise à jour d'une donnée sur le simple click d'une case à cocher dans access voilà ce que je rédige ( certainement mal ??)

Private Sub Travaux_effectués_Click()

If [Travaux_effectués].Value = vrai Then [Ristourne_Cotise].Value = 10

Else

If [Travaux_effectués].Value = faux Then [Ristourne_Cotise].Value = 0

End If
End If
End Sub

7 réponses

Bonjour

Si tu mets les instructions qui suivent le Then ou le Else sur la même ligne que le mot (then ou else), il ne faut pas de End if
Cette remarque ne concerne que ton deuxième if, car le premier a un Else sans instructions sur la même ligne et a donc bien besoin de son End if
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
20 sept. 2016 à 14:21
Bonjour a vous deux,

Private Sub Travaux_effectués_Click()
    If [Travaux_effectués] Then
        [Ristourne_Cotise].Value = 10
    Else
        [Ristourne_Cotise].Value = 0
    End If
End Sub
0
LTCMOC Messages postés 5 Date d'inscription mardi 20 septembre 2016 Statut Membre Dernière intervention 20 septembre 2016
20 sept. 2016 à 15:38
Bon tout d'abord merci pour vos contributions
effectivement je n'ai plus de message d'erreur du End if Sans bloc If mais quand je teste en faisant un click sur la case à cocher j'obtiens ce nouveau message :
Microsoft Access ne peut pas trouver l'objet "["
et me demande si "[" est une nouvelle macro et si elle a été enregistrée ????
que dois je faire ??
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
20 sept. 2016 à 16:00
Re,

que dois je faire ??

Enlevez le "[" et "]", normalement il faut les mettre s'il y a des noms de champ avec des espaces
0
LTCMOC Messages postés 5 Date d'inscription mardi 20 septembre 2016 Statut Membre Dernière intervention 20 septembre 2016 > f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024
20 sept. 2016 à 16:11
Oui j'ai bien essayé mais j'ai toujours le même message on parle bien des crochets qui entoure par exemple [travaux_effectués].value
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > LTCMOC Messages postés 5 Date d'inscription mardi 20 septembre 2016 Statut Membre Dernière intervention 20 septembre 2016
20 sept. 2016 à 16:17
Re,

Non, tous les crochets
0
LTCMOC Messages postés 5 Date d'inscription mardi 20 septembre 2016 Statut Membre Dernière intervention 20 septembre 2016
20 sept. 2016 à 17:43
tous les crochets enlevés j'ai toujours le même message

Microsoft Access ne peut pas trouver l'objet "[" ?????
0

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

Posez votre question
LTCMOC Messages postés 5 Date d'inscription mardi 20 septembre 2016 Statut Membre Dernière intervention 20 septembre 2016
20 sept. 2016 à 18:23
voici ce que j'ai écrit

Private Sub Travaux_effectués_Click()

If [Travaux_effectués].Value = True Then

[Ristourne_Cotise].Value = 10

Else

If [Travaux_effectués].Value = False Then

[Ristourne_Cotise].Value = 0

End If
End If


End Sub

Avec cela je n'ai plus le message d'erreur du bloc end if sans if mais j'ai toujours le message Microsoft Access ne peut pas trouver l'objet "["
que je retire ou non les crochets What's wrong ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
20 sept. 2016 à 21:35
Re,
Si vous enlevez tous les crochets, il est impossible que vous ayez cette erreur!!
Dans le code que j'ai écrit, il n'y a pas de true ou false et il y a seulement un else.
Une case à cocher est cochée ou pas
0
BONSOIR GRAND MERCI A TOUS LES CONTRIBUTEURS
CELA PROGRESSE AVEC VOTRE AIDE;
j'ai donc viré les accents
j'ai recopié les formulations proposées ( copier collé)
Je n'ai plus le message Bloc If sans end if et quand je teste ma case à cocher mon champ ristourne s'actualise mais je dois à chaque fois virer le message qui apparaît comme ceci:

Microsoft Access ne peut pas trouver l'objet "["
Si "[" est une nouvelle macro ou un nouveau groupe de macros,vérifiez qu'il(elle) est enregistré(e) et que vous avez correctement tapé son nom.

Cela doit être énervant de vous poser de pareille question mais bon je me contente pour l'instant du fonctionnement de ma case à cocher

Pour répondre à votre curiosité, les membres qui effectuent dans l'année des travaux ou des permanences pour le club bénéficient d'une ristourne sur leur cotise club voila le pourquoi de ma case à cocher.
0
Utilisateur anonyme > LTMOC
Modifié par HDU le 22/09/2016 à 00:31
Bonjour,

il doit rester un morceau de code, où alors une macro qui se déclenche qq part sur le form. Regardes dans les propriétés du form si des fois tu as oublié d'effacer une ligne de macro...

Mets si tu veux, la base sur cjoint.com et mets le lien créé ici pour que l'on jette un oeil.

A+
0
Utilisateur anonyme > LTMOC
22 sept. 2016 à 00:33
Re,

et personne ne t'a demandé le pourquoi de la case...

A+
0
Halléluia !

Effectivement sur une ligne de propriété "après mise à jour" traînait un "[" tout seul.

GRRR je m'en veux de vous avoir opportuné pour un truc pareil

Grand merci pour votre patience et compréhension !
Tout est OK.
Mais j'ai d'autres idées concernant des requêtes ce sera pour plus tard.
LTCMOC
0
Hello,

je plussoie ce qui a été dit par les intervenants.

Tu as bien fait de ne pas mettre d'espace dans les noms. Par contre, vires moi vite fait bien fait les accents.... Gggggggggrrrrrrrrrrrrrrrrrr

Je ferais ceci :

Private Sub Travaux_effectues_Click() 'SANS ACCENT AUSSI BIEN DANS LE NOM DU CONTROLE QU'ICI

If Travaux_effectues=-1 Then 

Ristourne_Cotise = 10 

Else 
 
Ristourne_Cotise = 0 

End If 

End Sub 


a+
Quand Jimmy dit What'd I say 
I love you baby 
C'est comme qui dirait 
Toute la province qui chante en anglais
0
Utilisateur anonyme
21 sept. 2016 à 00:41
L'accent te mets (ou mettra) la merde dans le code.

Le value, tu oublies, et vite.

Le "False" et le "True", pas toujours traduit par "Faux" ou "Vrai" ou par "non coche" ou "coche". Donc, prends l'habitude de traiter le "Vrai"/"Coché" par la valeur -1 et l'autre par 0. Comme ceci, pas de bug entre les versions, que ce soit d'années ou de langue...

A+
0
Re,

au fait, Ristourne_Cotise c'est quoi ?

Si c'est un contrôle du formulaire, fais ceci :

Private Sub Travaux_effectues_Click() 'SANS ACCENT AUSSI BIEN DANS LE NOM DU CONTROLE QU'ICI

If Travaux_effectues=-1 Then 

Me!Ristourne_Cotise = 10 

Else 
 
Me!Ristourne_Cotise = 0 

End If 

End Sub 



Quand Jimmy dit What'd I say 
I love you baby 
C'est comme qui dirait 
Toute la province qui chante en anglais
0