IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Ne comprends pas la liaison entre requete et module


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut Ne comprends pas la liaison entre requete et module
    Salut aux courageux car ça risque d'être long...

    J'ai une table qu'on va appeler T1 qui est partiellement rempli par Formulaire F4

    Dans un autre formulaire F3 sont rentrés des infos cadastrales spécifiques à chaque commune.

    Une fois ces infos enregistrées (elles changent tous les ans) il faut aller cliquer dans la barre de menu (= caculer la fiscalité) qui éxécute une macro.

    C'est alors que les champs vides de T1 sont remplis

    Ensuite pour sa déclaration fiscale l'utilisateur peut éditer un état qui est géré par une requête.

    Dans cette requête il y a des calculs simples, par contre il y a deux formules avec lesquelles g eu un mal de chien car il y avait des fonctions inconnues (et oui y'a aucu écrit sur quoi je bosse)

    C'est deux fct "calculIR" et "CalcTF" g fini par les trouver dans un module intitulé "introduction", je me suis dit OUF!!!!

    Et bien non, pas du tout parce que dans le code il y a écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If la date <= year(date)
    Ce qui se passe réellement : le module permet de comparer la date de retour à l'impot et la date actuelle. Si date actuelle <= date de retour à l'impot calculIR=1, sinon CalculIR=0
    Ce qui permet d'annuler ou non la déclaration fiscale

    Cela dit la loi a changé et je dois modifier certaines choses mais je ne omprends pas pour quoi dans le mdule on parle de "la date" et de "year(date)" car ces champs n'existent pas dans les tables de la requête. Dans la T1 on a [ANIMPO] et date actuelle =maintenant()

    Comment puis je trouver les liens???

    Merci à vous
    [/code]

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    dans un module intro tu gères en principe des paramètres
    If la date <= year(date)

    tel que c'est écrit ici il s'agit surement d'un commentaire précédé
    donc de '
    la date serait rejetée par un module
    ou alors c'est la_date
    il sera difficile de t'aider sans plus de détail
    saches toutefois que year(date) te renvoie l'année
    donc 2006
    la date représenterait donc une année
    Elle est pas belle la vie ?

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    Salut random,
    oui c bien cela c la_date, c'est donc une valeur connue par access?

    Sinon en m'expliquant que "dans un module intro tu gères en principe des paramètres" tu veux dire que dès qu'on crée un module intro et qu'on y insère des fonctions access les reconnait ensuite (???) G bien du mal à m'y retrouver là dedans.

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 116
    Points : 62
    Points
    62
    Par défaut
    Salut à tous apparemment je n’étais pas assez clair lors de mes précédentes explications alors je reviens avec d’avantages de renseignement :

    Pour reprendre en étant clair une macro dans le menu lance la requête suivante, qui dit en SQL access :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE DISTINCTROW ((PARCELEMOLD1 INNER JOIN FISCAL ON (FISCAL.TARIF = PARCELEMOLD1.TARIF) AND (PARCELEMOLD1.COMMUP = FISCAL.COMMUP) AND (FISCAL.DEPARP = PARCELEMOLD1.DEPARP) AND (PARCELEMOLD1.CLASSOLD = FISCAL.CLASS) AND (PARCELEMOLD1.NATFOROLD = FISCAL.[GR/SGR])) INNER JOIN PARCAD01 ON (PARCELEMOLD1.COMMUP = PARCAD01.COMMUP) AND (PARCELEMOLD1.SECTIP = PARCAD01.SECTIP) AND (PARCELEMOLD1.NPARCP = PARCAD01.NPARCP)) INNER JOIN FISCANAT ON PARCELEMOLD1.NATFOROLD = FISCANAT.NATFOR SET PARCELEMOLD1.Revimpotot = (([CONTEP])/10000)*(([COEFREVA])*([REVLOC])), PARCELEMOLD1.[Taxe foncière] = (([CONTEP])/10000)*(([COEFREVA])*([REVLOC])), PARCELEMOLD1.RES = Year([ANIMPOSITION])-[FISCANAT]![NBANNEE], PARCELEMOLD1.RevenuIR = CalculIR([RES])*[PARCELEMOLD1]![Revimpotot];
    Ce que je n’arrive pas à comprendre c’est comment access sait qu’il doit à ce niveau aller chercher dans le module introduction la fonction CalculIR

    Description de ce module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Function CalculIR(laDate)
    Dim result
    '***********************************************************
    'Calcul du revenu IR
    '***********************************************************
        'If IsNull(laDate) Then
            'result = 1
        'Else
     
                If laDate <= Year(date) Then
                    result = 1
                    CalculIR = result
            End If
     
                If laDate > Year(date) Then
                    result = 0.5
                    CalculIR = result
                Else
                    result = 1
     
        CalculIR = result
     
            'End If
        End If
     
    End Function
    En plus je dois modifier tout cela, cette partie reste vraie seulement pour des calculs antérieurs à 2001, je m’explique : je dois modifier ce mode de calcul sans le jeter :

    1- si la déclaration a été faite avant 2001 on conserve ce mode de calcul
    2- si la déclaration a été faite après 2001 il faut choisir le mode de calcul le + avantageux pour le propriétaire, càd choisir entre : le calcul en 1 et le calcul de revimpotot pour lequel la valeur du champ REVLOC sera différente sans multiplication par le coefficient calcul IR, ensuite on prend le moins cher des deux.

    Comment puis je insérer ce nouvel élément de comparaison ? Est-ce possible dans la même requête, ou faut-il en ajouter une ? Ca me parait un peu obscur tout ça… Vu que c’est une requête de mise à jour ça ne me semble pas simple de commencer à comparer. S’il s’agit de faire les comparaisons dans le module je ne sais pas comment appeler les champs, puisqu’ils n’ont rien à voir avec CalculIR (quand je dis rien à voir c que calculIR est un coef permettant de changer la valeur de RevenuIR et que REVLOC est un champ qui permet de calculer Revimpotot, qui est = à RevenuIR quand CalculIR=1)

    Help, je sens que je coule…

    Merci en tout cas à ceux qui me jetteront une petite bouée, mais si vous avez un radeau ce sera encore mieux

  5. #5
    Membre confirmé Avatar de ypicot
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 412
    Points : 579
    Points
    579
    Par défaut
    Toute fonction publique (cad sans le mot "private" devant) est accessible à partir des requêtes. C'est d'ailleurs une fonctionnalité d'access souvent ignorée des utilisateurs.

    Concernant ton calcul, je te suggère de modifier la fonction VB, de façon à ce que, en fonction de la date, elle retourne le résultat désiré.

    Yvan
    Une solution n'est valable que dans un contexte donné

Discussions similaires

  1. [AC-2003] Probleme liaison entre requete et formulaire
    Par Ardiden31 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 05/04/2012, 13h38
  2. Pas de liaisons entre classes dans un diagramme des classes
    Par zoom35 dans le forum Diagrammes de Classes
    Réponses: 3
    Dernier message: 26/06/2008, 15h40
  3. Réponses: 5
    Dernier message: 25/06/2008, 15h06
  4. [MySQL] Comprend pas! requete qui ne modifie plus la base au bout d'un certain nombre d'essai
    Par maxfive7 dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 01/08/2007, 14h05
  5. Probleme de liaison entre une requete et un objet...
    Par actibluelevrai dans le forum Access
    Réponses: 4
    Dernier message: 20/11/2005, 20h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo