Signaler

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

Posez votre question LTCMOC 5Messages postés mardi 20 septembre 2016Date d'inscription 20 septembre 2016 Dernière intervention - Dernière réponse le 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 
Utile
+0
moins plus
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
Ajouter un commentaire
Utile
+0
moins plus
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
Ajouter un commentaire
Utile
+0
moins plus
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 10237Messages postés dimanche 25 novembre 2007Date d'inscription 29 septembre 2016 Dernière intervention - 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
Répondre
LTCMOC 5Messages postés mardi 20 septembre 2016Date d'inscription 20 septembre 2016 Dernière intervention - 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
Répondre
f894009 10237Messages postés dimanche 25 novembre 2007Date d'inscription 29 septembre 2016 Dernière intervention - 20 sept. 2016 à 16:17
Re,

Non, tous les crochets
Répondre
Ajouter un commentaire
Utile
+0
moins plus
tous les crochets enlevés j'ai toujours le même message

Microsoft Access ne peut pas trouver l'objet "[" ?????
Ajouter un commentaire
Utile
+0
moins plus
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 ?
HDU 2074Messages postés mardi 11 février 2003Date d'inscription ContributeurStatut 30 septembre 2016 Dernière intervention - 22 sept. 2016 à 00:28
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+
Répondre
HDU 2074Messages postés mardi 11 février 2003Date d'inscription ContributeurStatut 30 septembre 2016 Dernière intervention LTMOC - 22 sept. 2016 à 00:33
Re,

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

A+
Répondre
LTMOC- 22 sept. 2016 à 00:54
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
Répondre
HDU 2074Messages postés mardi 11 février 2003Date d'inscription ContributeurStatut 30 septembre 2016 Dernière intervention - 22 sept. 2016 à 01:00
You're welcome !

A+
Répondre
HDU 2074Messages postés mardi 11 février 2003Date d'inscription ContributeurStatut 30 septembre 2016 Dernière intervention LTMOC - 22 sept. 2016 à 01:20
je mets résolu....
Répondre
Ajouter un commentaire
Utile
+0
moins plus
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
HDU 2074Messages postés mardi 11 février 2003Date d'inscription ContributeurStatut 30 septembre 2016 Dernière intervention - 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+
Répondre
Ajouter un commentaire
Utile
+0
moins plus
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
Ajouter un commentaire

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !