Access VBA - débutant

Résolu
Bonjour,

Je suis débutant en Visual basic sur Access et j'ai essayé un code pour un calcul mais cela ne fonction pas, pouvez vous m'aider ?

function calcul (Quantité1 as Integer, Tps alloué as Integer, Durée as Integer
calcul = (Quantité1 * Tps alloué) / Durée
End Function

Vincent

5 réponses

  1. je ne faitpas de acces , mais je suis pas sur qu'une variable puisse avoir un espace ... essaie de remplacer tps alloué par tps_alloué , et voit ce que ca donne
    1. bonjour Dudu3838,

      je te remercie de ta réponse mais cela ne fonctionne toujours pas

      vincent
      1. bonjour
        essaie ceci
        calcul = ([Quantité1] *[ tps_alloué]) / [durée]
        pour faire des calculs, il faut des champs declarés en numerique
      2. Je te remercie peut tu me dire aussi ce qui ne va pas dans la ligne supérieur car il m'indique toujours une erreur.

        Vincent
    2. Edit : Modification de la formule mais toujours le même probème

      Sub calcul()
      Function calcul(Quantité1 As Integer, tps_alloué As Integer, durée As Integer)
      calcul = (Quantité1 * tps_alloué) / durée
      End Function
      1. Bonsoir,
        Il faut beaucoup mieux utiliser une requête pour ce genre de calcul. Une opération comme cela dans VBA ne te donnera jamais qu'un seul résultat à la fois.
        Comme tu l'as écris, tu ne risques pas d'avoir un résultat parce que tu n'indiques pas à Access où il doit chercher les valeurs de tes paramètres [Quantité1], [Tps alloué], [Durée]
        Il faudrait au minimum que tu aies des expressions du genre:
        Quantite1 = [Forms]![MonFormulaire]![Quantite1]
        TpsAlloue= [Forms]![MonFormulaire]![TpsAlloue]
        Duree= [Forms]![MonFormulaire]![Duree]
        Seulement après ça il peut effectuer l'opération
        NB: Bannir les espaces et les accents dans les mots, Acces les supporte, mais quand il se fache, sans prévenir, tout le boulot est à recommencer.

        Bonne suite
        1. Bonjour Tessel75,

          Je te remercie de ta réponse :)

          Vincent