Erreur en boucle End if sans bloc If [Résolu/Fermé]

Messages postés
5
Date d'inscription
mardi 20 septembre 2016
Statut
Membre
Dernière intervention
20 septembre 2016
- - Dernière réponse :  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
Afficher la suite 

7 réponses

0
Merci
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
Messages postés
14717
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 septembre 2019
1173
0
Merci
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
Messages postés
5
Date d'inscription
mardi 20 septembre 2016
Statut
Membre
Dernière intervention
20 septembre 2016
0
Merci
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 ??
f894009
Messages postés
14717
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 septembre 2019
1173 -
Re,

que dois je faire ??

Enlevez le "[" et "]", normalement il faut les mettre s'il y a des noms de champ avec des espaces
LTCMOC
Messages postés
5
Date d'inscription
mardi 20 septembre 2016
Statut
Membre
Dernière intervention
20 septembre 2016
> f894009
Messages postés
14717
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 septembre 2019
-
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
f894009
Messages postés
14717
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
17 septembre 2019
1173 > LTCMOC
Messages postés
5
Date d'inscription
mardi 20 septembre 2016
Statut
Membre
Dernière intervention
20 septembre 2016
-
Re,

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

Microsoft Access ne peut pas trouver l'objet "[" ?????
Messages postés
5
Date d'inscription
mardi 20 septembre 2016
Statut
Membre
Dernière intervention
20 septembre 2016
0
Merci
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 ?
Utilisateur anonyme > LTMOC -
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+
Utilisateur anonyme > LTMOC -
Re,

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

A+
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
Utilisateur anonyme > LTMOC -
You're welcome !

A+
Utilisateur anonyme > LTMOC -
je mets résolu....
0
Merci
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
Utilisateur anonyme -
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
Merci
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