Code vb pour recuperer une valeur dans access

Résolu
nathh76 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
 aide -
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 1543 Date d'inscription   Statut Membre Dernière intervention   162
 
Bon alors j'ai testé, et après plusieurs essais, il s'avère que le tests (le bloc if complet) corect est celui-ci

If IsNull([Base TVA0 sous-formulaire].Form![SommeDePrix element]) Then
   Me![base TVA0] = 0
Else
    [base TVA0] = [Base TVA0 sous-formulaire].Form![SommeDePrix element]
End If


Il ne faut pas du tout de : si il te les rajoute c mauvais signe
Redis moi si il te sort une erreur
0
nathh76 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
 
J'ai toujours le message d'erreur :
Erreur d'execution 2113
valeur incorrecte pour ce champ.

Ce qui m'etonne, c'est que lorsque je regarde dans le debogueur, il bug sur la ligne
[base TVA0] = [Base TVA0 sous-formulaire].Form![SommeDePrix element]
alors que vu mon jeux d'essais, il ne devrait pas aller dans le else.

J'y comprend plus rien, je suis perdu.
0
freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention   162
 
lorsque tu est en mode débogage, place ta souris sur une des variables du if pour faire apparaitre une infobulle, elle t'indiquera la valeur de la variable....donne moi stp la valeur des variables du if si c'est possible...
Sinon, je suis perdu au moins autant que toi, je ne vois pas comment comparer une variable avec null avec une autre methode que celles proposées plus haut
Essaie aussi de vérifier la syntaxe des variables entre [] parce que le compilateur ne les corrige pas automatiquement, donc vérifie dans les propriétés des controle leurs noms, et vérifie leurs syntaxe dans le code
0
nathh76 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
 
j'ai pas d'info bulle, portant elles sont parametres.
J'ai verifier mes variables sont bonnes.
0

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

Posez votre question
freto Messages postés 1543 Date d'inscription   Statut Membre Dernière intervention   162
 
Ben la je suis perdu parce que j'ai essayé le code que je t'ai indiqué, et avec mon prototype sa fonctionne, c'est à dire que si le champ est vide il me met bien 0 dans l'autre, et sinon il affecte bien la valeur
Les seules erreurs que j'ai rencontré venaient du fait que j'avais mal nommé mes controles par rapport au code
Donc désolé de ne pas pouvoir t'aider plus que sa
0
nathh76 Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   1
 
Je vais essayer de trouver un moyen de contourner mon probleme.
Merci de m'avoir consacrer du temps.
0
aide
 
Private Sub Commande49_Click()
On Error GoTo Err_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]

Exit_Commande49_Click:
Exit Sub

Err_Commande49_Click:
[base TVA0] = 0
Resume Exit_Commande49_Click

End Sub
0