Code vb pour recuperer une valeur dans access

Résolu/Fermé
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 - 16 juil. 2007 à 16:54
 aide - 29 oct. 2010 à 16:42
J'ai un petit probleme dans access.
Dans un formulaire, j'ai un champ qui prend la valeur du resultat d'une requete affiché dans un sous-formulaire grace au code suivant : [base TVA0] = [Base TVA0 sous-formulaire].Form![SommeDePrix_element] ca marche. Mais lorsque j'ai pas de resultat de requete (ce qui est normal), cela me crée une erreur. Moi je voudrais que le champ se mette a zero. Comment faire ?
A voir également:

27 réponses

freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 11:45
Bonjour
Je contournerais ce problème comme ceci
if IsNull ([Base TVA0 sous-formulaire].Form![SommeDePrix_element]
) then

[base TVA0] = 0

else

[base TVA0] = [Base TVA0 sous-formulaire].Form![SommeDePrix_element]

end if
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 14:01
Merci Freto.

J'ai essayé, mais j'ai toujours un message d'erreur.
ca marche pas car le champs [Base TVA0 sous-formulaire].Form![SommeDePrix_element] ne s'affiche pas dans mon sous-formulaire.

Une autre idée peut-etre ?

Quelle galère, je suis pas habituée a faire du code, je passe toujours par les assistants.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 14:31
Mais comment sa il ne s'affiche pas???tu ne modifie pas sa visibilité quelque part??
Peut tu donner le message d'erreur qu'il t'affiche exactement?
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 14:39
en fait je cherche a faire une apli qui permet de faire des factures. Sur une meme factures je peux avoir plusieurs taux de TVA. Donc j'ai fait des sous-formulaires cachés qui calcul le montant de base de TVA pour chaque taux de TVA. cela marche tres bien lorsque j'ai tous les taux de TVA sur ma facture. Mais lorsque j'ai un taux de TVA qui n'est pas utilisé, je n'ai pas de valeur dans mon sous-formulaire, donc rien d'affiché.

Lorsque j'essai ton code j'ai l'erreur suivante :

Erreur d'execution 2113
valeur incorrecte pour ce champ.
0

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

Posez votre question
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 14:46
Et ton champ [base TVA0] est un champ texte ou un numérique??
Sinon, essaie de déboger l'appli...place un point d'arret au nivau du if IsNull... puis apuis sur F8 pour voir par ou passe le code lorssqu'il te sort une erreur
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 14:58
C'est un champ numérique.

J'ai jamais fais de debogage, mais si j'ai bien tout compris, apres avoir mis le point d'arret, il passe au else. Donc il ne considere pas que le champ est null, s'est bien ca.

Désolé je debute.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 15:04
Si il passe au else directement c'est que la fonction IsNull renvoie faux....dans ce cas, soit ton champ n'est pas vide, soit le test est faux
Donc essaie pluto ce genre de if
if [Base TVA0 sous-formulaire].Form![SommeDePrix_element] = "" then 



On débute tous un jour tu n'a pas à être désolée
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 15:08
lorsque j'essaie ce code j'ai l'erreur suivante :
erreur d'execution 2427
expression sans parametres.

c'est sympa a toi de me consacrer de temps. merci.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 15:10
Tu peut essayer de débugger a partir toujours de la ligne du if??
J'aimerais savoir quelle ligne du programme est surlignée après que tu aie appuyé sur la touche F8?
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 15:12
c'est la ligne du If qui est surligné.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 15:22
et si tu appuie encore sur F8??
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 15:27
A chaque fois j'ai le message d'erreur. il reste bloqué sur la ligne du if.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 15:34
Est ce que le message d'erreur survient avant que le code n'apparaisse avec ta ligne d'arrêt? normalement ton code doit apparaitre puis lorsque tu appuie sur F8 une autre ligne devient surlignée...si le message d'erreur apparait alors que tu appuie sur F8, alors essaie ce if
if [Base TVA0 sous-formulaire].SommeDePrix_element.Value = "" then 

0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 15:44
j'ai toujours le meme message d'erreur.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 15:52
Dans ce cas, juste après le if, essaie cette ligne

Me![base TVA0] = 0

a la place de

[base TVA0] = 0
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 15:56
toujours le meme soucis
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 15:59
Waou..... je vais finir par sécher ...;-)
Il faudrait que tu m'envoie tout le code que tu a autour de ton if(juste le sub), je vais l'essayer
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 16:09
voila le code.

Private Sub Commande49_Click()
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70

If [Base TVA0 sous-formulaire].Form!SommeDePrix_element.Value = "" Then
Me![base TVA0] = 0
Else: [base TVA0] = [Base TVA0 sous-formulaire].Form![SommeDePrix_element]
End If

[Montant TVA55] = [base TVA55] * 0.055
[Montant TVA196] = [base TVA196] * 0.196

[Montant HT] = [base TVA0] + [base TVA55] + [base TVA196]
[Montant TVA] = [Montant TVA55] + [Montant TVA196]
[Montant TTC] = [Montant HT] + [Montant TVA]

End Sub

l'autre piste que j'essaie s'est d'obliger le sous-formulaire a mettre un resultat a zero, mais je galere toujours.

C'est la premier fois que je viens sur un forums, c'est vraiment sympa de pouvoir trouver de l'aide. merci.
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
17 juil. 2007 à 16:44
Enleve les deux points déjà après le else, et réessaie...mais je pense pas que l'erreur vienne de la, en revanche ce sera une source d'erreurs plus tard
0
nathh76 Messages postés 40 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 26 mai 2008 1
17 juil. 2007 à 16:49
lorsque j'enleve les deux points, mais vb les remets automatiquement
0