Opérations sur champs Requete ACCESS

Bonjour,

Je bosse sur Access 2007 et j'ai quelques soucis concernant les opérations entre champs d'une
meme requete:

j'aimerais faire la multiplication de 2 champs et mettre le résultat dans 1 3eme champ:

j'ai crée dans ma requete ce 3eme champ (appelé "Cout théorique") et j'ai mis :

Cout théorique:[CompteDeTotal]*[Cout national par GAR] pour avoir le cout en garantie qu"'une
concession aurait du avoir selon son volume de garanties passées. (le premier champs représente le nb de garantie passées par la concessionle tandis que le deuxième représente le prix moyen d'une prise sous garantie)

mais quand je rentre ca, il apparait 2 boites de dialogue successivement:

Entrer une valeur de parmètre:
[CompteDeTotal]
Puis aprés la meme chose avec:
[Cout national par GAR]

je valide les 2 fois sans rien mettre et il m'aparait dans ce nveau champs que des ## mais en cliquant dessus il y a derrière les bons résultats!!

je ne comprends pas ce qui se passe, pourriez vous m'aider svp ?!!!! je suis perdu!!

MERCI par avance..............
Configuration: Windows XP
Internet Explorer 6.0

97 réponses

Résumé de la discussion

Dans Access 2007, la multiplication entre deux champs d'une même requête pour alimenter un champ calculé (Cout théorique) déclenche des invites de paramètres pour [CompteDeTotal] et [Cout national par GAR]. Plusieurs pistes indiquent d'éviter les paramètres en passant par du SQL et en utilisant une clause GROUP BY appropriée, ou de calculer Cout théorique via DAvg et Count puis arrondir le résultat. La solution pratique est présentée sous forme de requête SQL avec les champs Concession, SommeDeTotal, CoutNat et Coutthéorique, puis d'adapter les noms et le regroupement pour éviter les erreurs d'agrégat.

Bobot (l’IA à votre service)
  1. je suis OP gaetan c'est qd tu veux!
    0
    1. hello!

      je suis la si t'es ok!
      0
      1. gaetan t toujours la?!

        Si tu n'y est pas on se voit demain mation sur meebo ok?

        merci!
        0
        1. Ca marche
          0
      2. Salut gaetan comment va?!

        J'aurais une chtite question, pas de programmation tkt, serais tu dispo sur meebo aprés manger?!

        Merci et a tte!!
        0
        1. des moi je vais etre indispo environ 30min a 1h je te tiens au courant qd je peux!!
          a tte ;-)
          0
          1. gaetan concernant les macros excel j'ai une question! (pas de prog tkt pas juste un petit truc sur le stockage..)
            Je sss sur meebo donc dispo qd tu veux!
            0
            1. ok j'arrive dsl j 'été en train de faire autre chose!
              0
              1. Yep gaetan hello!

                i've got 2 questions for you: easy but i'ven't the solution!
                0
                1. Yop!

                  Jsuis sur meebo si tu veux, ou alors pose les là ^^
                  0
              2. Yeah gaetan juste un truc en plus pour ne pas que tu t'embets trop:

                j'aimerais qu'au bout de 3 tentaives la bdd se ferme avec un mess d'erreur préventif:

                i = i + 1
                End If
                'Dépassement du nombre d'essais autorisés 3
                If i = 3 Then
                MsgBox "Vous avez dépassé le nombre de tentatives autorisés...Réessayez plus tard ! ", vbCritical
                DoCmd.Quit
                End If

                End Sub

                avec un truc comme ca on peut faire ou non?!
                0
                1. Salut, pas de souci pour tout à l'heure!

                  Pour ton post je viens d'y jeter un oeil par hasard! mais a vrai dire je ne peux t'être d'une grande aide, car je ne maitrise pas trop les graphs sous Excel (trés peu utilisé!)

                  Désolé de pas pouvoir t'aider aprés tout ce que t'as fais pour moi ^^

                  @ tte, bon ap' !
                  0
                  1. Sub Transforme_TABLE_de_Base_extraite_SAP_OUTILS_GARANTIE()
                    Dim i As Integer
                    Dim DerniereColonne As Integer
                    DerniereColonne = Range("BZ2").End(xlToLeft).Column
                    For i = 1 To DerniereColonne
                    Cells(2, i).Select
                    If ActiveCell.Value = "" Then
                    Columns(i).Select
                    DerniereColonneEnCours = Range("BZ2").End(xlToLeft).Column
                    If i >= DerniereColonneEnCours Then Exit Sub
                    Selection.Delete Shift:=xlToLeft
                    i = i - 1
                    End If
                    Next i
                    Columns("D:D").Select
                    Selection.Delete Shift:=xlToLeft
                    Columns("F:G").Select
                    Selection.Delete Shift:=xlToLeft
                    Columns("O:Q").Select
                    Selection.Delete Shift:=xlToLeft
                    Columns("S:W").Select
                    Selection.Delete Shift:=xlToLeft
                    ActiveWindow.ScrollColumn = 9
                    ActiveWindow.ScrollColumn = 8
                    ActiveWindow.ScrollColumn = 7
                    ActiveWindow.ScrollColumn = 6
                    ActiveWindow.ScrollColumn = 5
                    ActiveWindow.ScrollColumn = 4
                    ActiveWindow.ScrollColumn = 3
                    ActiveWindow.ScrollColumn = 2
                    ActiveWindow.ScrollColumn = 1
                    Columns("B:B").Select
                    Selection.Replace What:="C", Replacement:="", LookAt:=xlPart, _
                    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                    ReplaceFormat:=False
                    Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
                    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                    ReplaceFormat:=False
                    Range("B2").Select
                    ActiveCell.FormulaR1C1 = "Conession"
                    Range("B2").Select
                    ActiveCell.FormulaR1C1 = "Concession"
                    Columns("B:B").Select
                    Selection.NumberFormat = "@"
                    ActiveWindow.ScrollColumn = 2
                    ActiveWindow.ScrollColumn = 3
                    ActiveWindow.ScrollColumn = 4
                    ActiveWindow.ScrollColumn = 5
                    ActiveWindow.ScrollColumn = 6
                    ActiveWindow.ScrollColumn = 7
                    ActiveWindow.ScrollColumn = 8
                    ActiveWindow.ScrollColumn = 9
                    ActiveWindow.ScrollColumn = 10
                    ActiveWindow.ScrollColumn = 11
                    ActiveWindow.ScrollColumn = 12
                    ActiveWindow.ScrollColumn = 13
                    ActiveWindow.ScrollColumn = 12
                    ActiveWindow.ScrollColumn = 11
                    ActiveWindow.ScrollColumn = 10
                    ActiveWindow.ScrollColumn = 9
                    Columns("P:R").Select
                    Selection.NumberFormat = "#,##0.00"
                    ActiveWindow.ScrollColumn = 8
                    ActiveWindow.ScrollColumn = 7
                    ActiveWindow.ScrollColumn = 6
                    ActiveWindow.ScrollColumn = 5
                    ActiveWindow.ScrollColumn = 4
                    ActiveWindow.ScrollColumn = 3
                    ActiveWindow.ScrollColumn = 2
                    ActiveWindow.ScrollColumn = 1
                    Rows("1:1").Select
                    Selection.Delete Shift:=xlUp
                    Rows("2:2").Select
                    Selection.Delete Shift:=xlUp
                    Range("A1").Select
                    End Sub
                    0
                    1. Sub Transforme_TABLE_de_Base_extraite_SAP_OUTILS_GARANTIE()
                      Dim i As Integer
                      Dim DerniereColonne As Integer
                      DerniereColonne = Range("BZ2").End(xlToLeft).Column
                      For i = 1 To DerniereColonne
                      Cells(2, i).Select
                      If ActiveCell.Value = "" Then
                      Columns(i).Select
                      DerniereColonneEnCours = Range("BZ2").End(xlToLeft).Column
                      If i >= DerniereColonneEnCours Then
                      Goto Suite:
                      End If
                      Selection.Delete Shift:=xlToLeft
                      i = i - 1
                      End If
                      Next i
                      Suite :
                      Columns("D:D").Select
                      Selection.Delete Shift:=xlToLeft
                      Columns("F:G").Select
                      Selection.Delete Shift:=xlToLeft
                      Columns("O:Q").Select
                      Selection.Delete Shift:=xlToLeft
                      Columns("S:W").Select
                      Selection.Delete Shift:=xlToLeft
                      ActiveWindow.ScrollColumn = 9
                      ActiveWindow.ScrollColumn = 8
                      ActiveWindow.ScrollColumn = 7
                      ActiveWindow.ScrollColumn = 6
                      ActiveWindow.ScrollColumn = 5
                      ActiveWindow.ScrollColumn = 4
                      ActiveWindow.ScrollColumn = 3
                      ActiveWindow.ScrollColumn = 2
                      ActiveWindow.ScrollColumn = 1
                      Columns("B:B").Select
                      Selection.Replace What:="C", Replacement:="", LookAt:=xlPart, _
                      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                      ReplaceFormat:=False
                      Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
                      SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                      ReplaceFormat:=False
                      Range("B2").Select
                      ActiveCell.FormulaR1C1 = "Conession"
                      Range("B2").Select
                      ActiveCell.FormulaR1C1 = "Concession"
                      Columns("B:B").Select
                      Selection.NumberFormat = "@"
                      ActiveWindow.ScrollColumn = 2
                      ActiveWindow.ScrollColumn = 3
                      ActiveWindow.ScrollColumn = 4
                      ActiveWindow.ScrollColumn = 5
                      ActiveWindow.ScrollColumn = 6
                      ActiveWindow.ScrollColumn = 7
                      ActiveWindow.ScrollColumn = 8
                      ActiveWindow.ScrollColumn = 9
                      ActiveWindow.ScrollColumn = 10
                      ActiveWindow.ScrollColumn = 11
                      ActiveWindow.ScrollColumn = 12
                      ActiveWindow.ScrollColumn = 13
                      ActiveWindow.ScrollColumn = 12
                      ActiveWindow.ScrollColumn = 11
                      ActiveWindow.ScrollColumn = 10
                      ActiveWindow.ScrollColumn = 9
                      Columns("P:R").Select
                      Selection.NumberFormat = "#,##0.00"
                      ActiveWindow.ScrollColumn = 8
                      ActiveWindow.ScrollColumn = 7
                      ActiveWindow.ScrollColumn = 6
                      ActiveWindow.ScrollColumn = 5
                      ActiveWindow.ScrollColumn = 4
                      ActiveWindow.ScrollColumn = 3
                      ActiveWindow.ScrollColumn = 2
                      ActiveWindow.ScrollColumn = 1
                      Rows("1:1").Select
                      Selection.Delete Shift:=xlUp
                      Rows("2:2").Select
                      Selection.Delete Shift:=xlUp
                      Range("A1").Select
                      End Sub
                      0
                  2. t tjs la gaetan ?!
                    0
                    1. Ouaip, j'arrive sur meebo
                      0
                  3. "Ensuite il faut se débrouiller pour que le formulaire apparaisse au démarrage. "

                    ca c'est pas un souci on fait un auotexec et c'est bon..

                    Pour " La solution serait de faire un nouveau formulaire dans lequel tu mets un TextBox"
                    je ne sais pas comment le faire!

                    Pour "pour valider et tu effectue le code quand on clique sur le bouton" tu parles du code que nous avons écrit ensemble ?( enfin qu tu as écrit lol!)

                    Merci mec!
                    0
                    1. Si tu veux cet aprem on essaie de voir ensemble sur meebo?

                      Je parle bien du code qu'on a écrit :p

                      @tte
                      0
                  4. ok pour ce que tu dis...mais concretement ca veut dire quoi?

                    peut on changer l'inputbox en textbox simplement?!

                    Ou alors comment dois je faire?!

                    Parce que tu me parles de "form" mais je ne sais pas ce que c'est ;-)
                    0
                    1. Tu peux pas changer l'InputBox...

                      La solution serait de faire un nouveau formulaire dans lequel tu mets un TextBox et un bouton pour valider et tu effectue le code quand on clique sur le bouton. Ensuite il faut se débrouiller pour que le formulaire apparaisse au démarrage.
                      0
                  5. Salut,

                    Etant donné qu'on a utilisé un InputBox en VBA, on ne peut pas masquer les caractères. Il faudrait pour cela créer une Form qui s'afficherait au lancement, avec un TextBox au lieu d'un InputBox... Dans les propriétés du TextBox, ça peut se faire.
                    0
                    • 1
                    • 2
                    • 3
                    • 4
                    • 5