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

Modélisation Discussion :

[relation table] Besoin d'un avis exterieur pour la composition de mes tables [AC-2003]


Sujet :

Modélisation

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut [relation table] Besoin d'un avis exterieur pour la composition de mes tables
    Bonjour à tous !

    je me permet de poster ce message car je me trouve bloqué dans la réalisation de ma base et un ou plusieurs avis exterieurs m'aideront surement !
    Merci en tout cas pour ce site, ce forum. Il m'est d'une grande aide !!!

    je vous explique ma situation :

    Je créer actuellement une base de données qui servira à un contrôle de dossiers. Pour résumer rapidemment. Il y aura chaque mois des données envoyées sur cette base. Chaque enregistrement représentera un dossier(ayant un identifiant unique). Le but est de pouvoir contrôler la composoiton de ces dossiers. Donc à part une table contenant les infos clés (celle qui est importée via un ficher excel), l'ensemble de cette base servira à l'enregistrement d'informations (via cases à cocher, listes déroulantes, calcul). Le but est par la suite de tirer une synthèse pour chaque dossier, résumant les annomalies reportées, les incidences financières..etc. Mais aussi une étude statistique de type d'anomalie rencontrée, du nombre etc. Je créer cette base en frontal & dorsal, plusieurs contrôles en même temps pouvant etre effectué.


    Voici mon problème :

    Pour ce controle il existe plusieurs cas de dossiers :

    en fonction du type de droit (propre et dérivé)
    en fonction du statut (artisan ou commercant)
    ces 4 champs n'étant pas renseigné dans le fichier importé, le contrôleur devra l'indiquer via une liste déroulante. Ces 4 champs s'entrecroisent c'est à dire qu'un dossier peut etre :
    droit propre commercant droit propre artisan,
    droit dérivé commercant, droit dérivé artisan.


    Lorsque un choix est effectué par le controleur (ex :droit propre, artisan) un formulaire de controle arrive. Il est composé d'onglets eux meme composés de sous formulaires. Chaque onglet représente un thème du controle. ex: recevabilité, paiement etc...
    Chaque sous formulaire se compose de libellés représentant un point du controle avec en face des cases à cocher (OK, ko incidence...etc)
    Là ou ça se corse c'est que, en fonction du droit propre et du droit dérivé, d'artisan et de commercant, la composition des thèmes et donc des libellés est differente sur quelques points. Pour un droit propre artisan et droit propre commercant il n'y a que le thème calcul qui est different au niveau de ces libellés (point de contrôle). Par contre pour les droits dérivés certains thèmes sont differents et pour ceux qui gardent le même nom (donc même thème) certains libellés change.

    Bref tout ça m'amène à vous dire que je suis perdu pour la composition de mes tables. je n'arrive pas à savoir comment répartir droit propre droit dérivé, artisan et commercant. Je pensais créer une table contenant tous les libéllés avec un numero qui leur est propre et l'identifiant du dossier)

    T_controle (identifiantU, Numero auto, LIBELLES, Concerné, OK, KO, I-DOC, I-NON-FI, I-FI,R-FI)

    créer une table T_theme avec un champ thème existant et un champ qui assigne un numero à chaque thème et un champ identifiant

    T_theme (identifiantU, Numero auto, theme)

    bref comment faire pour mettre en relation droit derive et droit prope...
    je suis perdu là dedans et un avis exterieur me permetrait d'y voir plus clair !
    merci pour ceux qui ont pris le temps de lire, en espérant que vous puissiez peut être m'aider, je vous remercie d'avance

    cordialement

    Guillaume

  2. #2
    Membre régulier Avatar de sendme
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    Une solution consisterai à avoir un NumAuto sur la table "principale" et un champ numérique sur la table secondaire.

    Dans tes formulaires les tables seraient liées sur cet ID.

    Là où tu dois faire attention c'est que les ID sur les 2 tables doivent être identiques pour le même dossier.
    Lors de la création d'un dossier dans la table principale, tu devra exécuter un code testant la présence du dossier dans la table secondaire et le créer si il n'existe pas avec un ID identique à la table principale.

    ci-dessous en VBA un code permettant d'effectuer ce contrôle,
    Dans cet exemple la table principale = Table1 et la secondaire = Table2
    " & Me.IDClientTable1 & " correspond au champ IDClientTable1 présent dans ton formulaire

    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
    Private Sub CreationDossierTable2()
    Dim RsTemp As DAO.Recordset
    Dim StrSql As String
     
    'Test de l'existence du client dans la table Table2
    Set RsTemp = _
        CurrentDb.OpenRecordset("SELECT * FROM Table2 WHERE IDClientTable2 =" _
        & Me.IDClientTable1 & "", dbOpenDynaset, dbSeeChanges)
     
    If RsTemp.EOF Then
    'Création de la ligne dans la table Table2
        StrSql = "INSERT INTO Table2 ( IDClientTable2 ) " & "SELECT '" _
            & Me.IDClientTable1 & "' FROM Table1 " & "WHERE IDClientTable1 = " & Me.IDClientTable1 & ""
        CurrentDb.Execute StrSql
        StrSql = ""
     
    RsTemp.Close
    Set RsTemp = Nothing
    End If
    Ensuite appelle le code ci-dessus sur n'importe quel evenement via un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call CreationDossierTable2

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    (j'ai supprimé ma 1ere réponse car elle n'apportait aucune infos pertinente...)

    Merci encore pour ce code qui risque de pas mal me servir je crois...

    J'ai suivi à la lettre les infos de cette explication donné dans ce post. voila ce que ca donne

    1 dossier est composé de 1 droit (parmis 2 droits, au choix)
    1 droit est composé de 2 statuts
    1 statut est composé de plusieurs thèmes
    1 thème est composé de plusieurs libellés
    1 libellé est composé de plusieurs cases à cocher

    5 tables

    1 relation

    Cardinalité

    1 droit peut ou pas être dans un dossier = 0 à plusieurs (droit vers dossier)
    1 dossier comporte au maximum 1 droit = 1 à 1 (dossier vers droit)
    Un thème peut ou pas être dans 1 statut = 0 à plusieur (thème vers statut)
    Un statut comporte au minimum 5 thèmes et aux maximum 6 = 5 à 6 (statut vers thème)
    Un libellé peut ou pas être dans un thème = 0 à plusieurs (libellés vers thème)
    Un thème comporte 1 à plusieurs libellés = 1 à n (thème vers libellé)
    1 case à cocher peut ou pas être coché dans un libellé
    Un libellé comporte de 1 à plusieurs cases cochées

    (je ne sais pas si je dois créer une table T_casecoché pour y mettre les champs correspondant ou si je les mets dans la table T-composé comme j'ai fait plus bas)

    T_dossier: Identifiant dossier ; Nom prénom ; Nir

    T_droit: id droit ; nom des droits

    T_ statut: id statut ; nom statut

    T_thème: id thème ; nom thème

    T_libellé: id libellés ; nom libellés

    T_composé: Identifiant dossier ; id droit ; id statut ; id thème ; id libellés ; OK ; KO; I-DOC ; I-NON-FI ; I-FI ; R-FI

    Il manque en faite une partie encore "incidence financière" qui est cencé apparaitre à la fin du controle si jamais il y a une case incidence financiere de coché parmis tous les libéllés mais par contre la je ne vois pas comment faire.

    Si j'ai bien compris ma table principale serait alors la table "T_principal" ou j'importe les données avec un numero auto et la table secondaire serait la table "T_dossier" avec un champ numerique équivalent au numero auto. Il y aurait donc une table "dossier à controlé" et une table "dossier déja controlé".

    En esperant que je me soit pas trompé... Ca serait très sympa si quelqu'un pouvait me dire ce qu'il en pense merci

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    Bonjour,

    voici une proposition que j’avais rédigée avant que je n’aperçoive ta dernière modif de 17h10.
    Je n’ai pas eu bien le temps de consulter ces modifications donc je te livre en l’état mes réflexions…

    Donc chaque dossier a un statut et un type de droit,

    Dossier-∞-------1-Statut
    Dossier-∞-------1-TypeDroit

    Puis Dossier-1------1-ContrôleDossier (1 dossier= au plus 1 contrôle ?!) ou Dossier-1-------∞-ContrôleDossier (1 dossier peut donner lieu à plusieurs contrôles ?!) selon tes règles de gestion.

    Avec une table LibellePointControle(idLibPtCtrl, LibellePtCtrl) comprenant tous les libellés possibles, une table Theme(idTheme, LibelleTheme),

    on définit une table associant tous les points à contrôler par thème, statut et type de droit :

    PointsAControler(idPointCtrl, #idTheme, #idStatut, #idTypeDroit, #idLibPtCtrl)


    Puis une table associant les points à contrôler et le contrôle du dossier:
    ResultatControle(#idControleDossier, #idPointCtrl, OK, KO, I-DOC, …)

    ControleDossier-1------∞-ResultatControle-∞-------1-PointsAControler


    Lors de la création d’un contrôle (par ex, idControleDossier=1), il s’agira de créer les lignes du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ResultatControle
    idControleDossier	 idPointCtrl	 OK	KO	I-DOC	…
    1			1		Null	Null	Null	…
    1			2		Null	Null	Null	…
    1			3		Null	Null	Null	…
    1			6		Null	Null	Null	…
    Etc…
    avec tous les points à contrôler possibles selon le statut et le type de droit (connus grâce à PointsAControler).

    Si tu as un onglet par thème, il suffira de filtrer l’affichage des différents idPointCtrl selon son thème.

    Voilà, voilà… Je regarderais ces modifs et ton nouveau schéma plus tard, voir si j’ai tout faux. 

  5. #5
    Membre régulier Avatar de sendme
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 82
    Points
    82
    Par défaut
    (je ne sais pas si je dois créer une table T_casecoché pour y mettre les champs correspondant ou si je les mets dans la table T-composé comme j'ai fait plus bas)
    Mettre dans T-composé est judicieux


    En esperant que je me soit pas trompé... Ca serait très sympa si quelqu'un pouvait me dire ce qu'il en pense
    Ton schéma semble correct.
    Cependant, je te propose de suivre quelques conseils, afin d'éviter d'être embété lors de la rédaction de ton code ou de tes requêtes :
    Eviter les accents, espaces, caractères spéciaux sur le nom des tables et des champs.
    Ainsi lors de la rédaction du code ou des reqêtes tu ne sera pas obligé de mettre entre [ ] ou " "

    Pour les ID en relation sur tes différentes tables, donnes leur un nom spécifique à chaque table.
    ça limitera les erreurs d'inatention et erreurs Access sur la redondance des noms.
    Exemple ID de la Table1 = IDTable1


    Il manque en faite une partie encore "incidence financière" qui est cencé apparaitre à la fin du controle si jamais il y a une case incidence financiere de coché parmis tous les libéllés mais par contre la je ne vois pas comment faire.
    Là tu pourra appliquer le code passé précédemment avec une petite adaptation :
    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
    If Me.IncidFinan = true Then
     
    'Test de l'existence du client dans la table IncidenceFinanciere
    Set RsTemp = _
        CurrentDb.OpenRecordset("SELECT * FROM IncidenceFinanciere WHERE IDClientIncidFinan =" _
        & Me.IDClientTprincipal & "", dbOpenDynaset, dbSeeChanges)
     
    If RsTemp.EOF Then
    'Création de la ligne dans la table IncidenceFinanciere
        StrSql = "INSERT INTO IncidenceFinanciere ( IDClientIncidFinan ) " & "SELECT '" _
            & Me.IDClientTprincipal & "' FROM IncidenceFinanciere " & "WHERE IDClientTprincipal = " & Me.IDClientTprincipal & ""
        CurrentDb.Execute StrSql
        StrSql = ""
    End if
     
    RsTemp.Close
    Set RsTemp = Nothing
    End If

    Bon courage

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Bjr send me

    Merci pour ta réponse. En faite j'ai modifié mes tables et relations en suivant la solution de f-leb.


    J'ai encore un problème avec incidence financière et une partie que je n'avais pas mise: controle.

    En faite pour décrire la partie incidence financière : Un controleur coche au moins une case I-FI. cela amènera à la fin du controle (chaque thème contrôlé). Cela ouvrira un formulaire qui devra contenir le ou l'ensemble des libellés ayant une incidence financière dans une feuille de donnée. (cette partie la je m'en occuperai plus tard). c'est juste au niveau des tables. Il faut juste quelle soit intégrer au données controlés que cela fasse partie du controle global du dossier.

    Pour la table nommée T_controle elle sert juste à entrer des infos comme quoi le dossier a été controlé ou non avant. Si Le dossier (papier) avait sa fiche de controle ou non. Il y a en plus une option (ouverture d'un autre formulaire) avec 1er niveau 2eme niveau. iL faut pouvoir dire que le dossier qui vient d'etre controlé a fait l'objet d'un controle avant. Donc c'est juste au niveau des relations qu'il faut que je vois ca.

    Pour ce qui est du modèle proposé f-leb. Je le trouve interessant. D'ailleur je te remercie grandment pour ce que tu as fait j'étais vraiment content hier soir en voyant ton message

    Dans le modèle que j'ai réalisé, je pense qu'il y a des grosses erreurs au niveau des "type de relation" ( un a un un à plusieurs, gauche à droite droite à gauche).


    je ne comprend pas cette relation :

    Dossier-∞-------1-Statut
    Dossier-∞-------1-TypeDroit


    dans le sens ou "dossier" correspond à ma table principale ? donc la table statut et type de droit serait relié directement a elle ?

    dans mon modele je la relie a la table controlle dossier. ce que je comprend pas c'est que pour relier des table il faut que les champs soit les meme ??


    Puis Dossier-1------1-ContrôleDossier (1 dossier= au plus 1 contrôle ?!) ou Dossier-1-------∞-ContrôleDossier (1 dossier peut donner lieu à plusieurs contrôles ?!) selon tes règles de gestion.


    Un dossier peut etre controllé au maximum 2 fois. c'est à dire que si une incidence financiere est constaté le dossier devra obligatoirement etre recontrolé par un autre controleur (seulement incidence financiere).

    Pour Terminer, je n'arrive pas à afficher les type de relation sur on modele et c'est assez embetant à vrai dire...

    Merci en tout cas de vous interessez à mon post et lauproblem exposé. Ca fait vraiment plaisir...

    Si vous pouviez m'éclaicir sur le modele que j'ai fait basé sur les propostion de F-leb

    merci

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    [EDIT]Flûte, j’ai encore loupé ton dernier message, celui de 12h00. Tant pis, j’y colle quand même ce que j’avais rédigé et je vais essayer de rattraper le décalage plus tard [/EDIT]

    Bonjour Chagui, sendme

    @chagui,

    D’après ton schéma ([EDIT] donc celui du message #3, hein [/EDIT]), je vois deux points qui doivent être éclaircis à mon avis.

    1°) Si j’ai bien compris, un statut et un droit sont établis par le contrôleur à la connaissance du dossier. Droit et Statut sont donc à associer aux dossiers, non ?
    T_Dossiers-∞-----1-T_statuts et T_Dossiers-∞-----1-T_droits

    2°) Compte-tenu du 1°), il reste :
    T_Composé(#idDossier, #idThème, #idLibellé, OK, KO,…)

    Comment lors de la saisie savoir que dans le dossier n°1 (avec tel statut et tel droit), il faut remplir les thèmes n°4 et n°5 mais pas les thèmes n°1,2 et 3, que dans le thème n°4, il n’y a que les libellés n°12, 14, 15 à remplir etc…
    Bon, le contrôleur doit le savoir (c’est son métier) mais il y a sûrement moyen de contraindre la base afin d’interdire certaines combinaisons (et donc de ne pas les voir se présenter dans le formulaire).

    Il faut donc établir au moins une relation entre T_Droits, T_Libellés, T_Thèmes et T_Statuts. C’est pour ça qu’en première approximation, j’avais proposé :
    PointsAControler(idPointCtrl, #idTheme, #idStatut, #idTypeDroit, #idLibPtCtrl)
    décrivant les points à contrôler parmi les combinaisons possibles (thème, libellé, statut, droit).

    Comme je l’ai dit, cette table n’est qu’une première approximation et il y a sans doute mieux à faire. Pour cela, il faut déterminer les dépendances cachées derrière l’énoncé:
    Citation Envoyé par Chagui
    … en fonction du droit propre et du droit dérivé, d'artisan et de commercant, la composition des thèmes et donc des libellés est differente sur quelques points. Pour un droit propre artisan et droit propre commercant il n'y a que le thème calcul qui est different au niveau de ces libellés (point de contrôle). Par contre pour les droits dérivés certains thèmes sont differents et pour ceux qui gardent le même nom (donc même thème) certains libellés change.
    Pas simple

  8. #8
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Bonjour F-leb

    Alors pour répondre à ta question :
    1°) Si j’ai bien compris, un statut et un droit sont établis par le contrôleur à la connaissance du dossier. Droit et Statut sont donc à associer aux dossiers, non ?
    Oui un statut et un droit sont choisi par le controleur. cette information n'est pas dans la table importé. Cependant ils ont le dossier papier avec eux et savent si c'est droit propre droit dérivé, artisan commercant. Ils doivent donc l'indiquer dans un formulaire (cf pdf)

    Dans mon dernier message c'est ce que j'ai fait au niveau de ta relation
    T_Dossiers-∞-----1-T_statuts et T_Dossiers-∞-----1-T_droits
    Ce qui me pose problème c'est que quand tu dis T_dossier, tu parles de la table principale? La ou je bloque c'est entre la table dossier et la table controle dossier.
    En faite on imagine que la requete.xls est importé dans la table principale. les dossiers auront dc un num auto. avec le code de sendme je créer un nouveau numero identique au num auto pour recréer le dossier qui va etre controlé. Doit-il se créer dans la table T_dossier ou Table controlle dossier?).

    Les 2 pdf envoyés par MP vous permetrons de mieux visualiser.

  9. #9
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    Concernant ta table importée d’Excel (je vais la nommer T_ImportExcel).

    Cette table n’est pas forcément des plus intègre au niveau des données. A chaque fois que tu vas importer de nouvelles données dedans, tu risques d’introduire des doublons, des données incomplètes ou corrompues à cause de pb de formats de données, etc...

    Donc cette table T_ImportExcel me sert comme table de travail et je la vide à chaque nouvelle importation. Cette table n’est reliée à aucune autre, elle sert juste de conteneur provisoire aux données brutes provenant d’Excel.

    Suite à l’importation, un code du style de celui rédigé par sendme, vérifie ligne par ligne les données importées puis recopie les lignes valides et nettoyées dans la table T_Dossier.

    Au final, tu auras les tables :

    T_ImportExcel

    Puis T_Dossier-1------∞-T_ControleDossier(ou T_Controle si tu préfères puisqu'un dossier peut suivre plusieurs contrôles (2 maxi) )
    T_Dossier-∞-------1-T_Droits
    T_Dossier-∞-------1-T_Statuts

    Avec T_Dossier(idDossier,…., #idDroit, #idStatut)

    Etc…

    Je regarde tes liens vers les PDF mais il y a-t-il une raison particulière pour ne pas mettre ces liens dans la partie publique du forum ?

  10. #10
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    je n’arrive pas à récupérer le 1er pdf, mais c’est peut-être à cause de ma connexion internet.

    Pas simple en effet, il y a même un libellé comme "Majoration pour enfants à charge (si dernier régime) " qui apparaît dans deux thèmes "RSI / RIU …" et "calculs" pour les droits dérivés.
    J’en resterais donc à une table du type :
    PointsAControler(idPointCtrl, #idTheme, #idStatut, #idTypeDroit, #idLibelle)


    Si le statut du dossier xxx est le n°1 (commerçant) et le type de droit est le n°2 (droits propres),

    Quels sont les thèmes à remplir pour le dossier xxx ? :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT idTheme, NomTheme 
    FROM PointsAControler P INNER JOIN Theme T
    ON P.idTheme=T.IdTheme
    WHERE P.IdStatut=1 AND P.idTypeDroit=2

    Pour le même dossier xxx et le thème à remplir n°4, quels sont les libellés à compléter :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT idLibelle, NomLibelle 
    FROM PointsAControler P INNER JOIN Libelle L
    ON P.idLibelle=L.idLibelle
    WHERE P.IdStatut=1 AND P.idTypeDroit=2 AND P.idTheme=4

    Je regarde cette histoire d’IF, à suivre….

  11. #11
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Merci beaucoup f-leb !! (désolé de ne répondre que maintenant, j'étais absent ce weekend).

    j'avance petit à petit et cela grace à toi ! Je te joint un image de mes relations. Je pense que cela est bon. Il reste maintenant à finir de compléter les champs de mes tables. Je n'ai pas encore vu pour incidence financiere.

    J'ai hésité au niveau de la composition de la table T_controlle donc une confirmation de ta part m'éviterai de me laisser un éventuel doute en tête.

    J'ai préféré joindre les pdf par MP car cette appli etant interne à l'entreprise pour lequel je travaille, je ne sais pas si je pouvais poster ces infos en public. Voila pourquoi j'ai fait ce choix.

    Je pense savoir pourquoi tu n'as pas recu le pdf. je te le renvoie en .doc

    Au niveau du code SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT DISTINCT idTheme, NomTheme 
    FROM PointsAControler P INNER JOIN Theme T
    ON P.idTheme=T.IdTheme
    WHERE P.IdStatut=1 AND P.idTypeDroit=2
    Inner joint appelle tous les themes qui doivent etre controllés ? le 1 le 3 le 5

    et pour le deuxieme code dans le theme 4 il faut appeler tous les libelles...

    En faite j'ai un probleme de compréhension au niveau du fonctionnement. Cela permettra en faite à la table T pointacontroller de n'appeler que ceux qui doivent etre rempli. En raison de la présence de libellés identiques dans plusieurs themes. Ce code sql doit donc etre placé sur le bouton de commencement du controle.

    Désolé de ne pas etre très perspicasse. Je visualise mal encore comment tout cela va se mettre en relation avec le formulaire. Mais c'est surement parceque c'est lundi matin et qu'il faut se remettre dedans...

  12. #12
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    Bonjour chagui,

    Le dossier s’étoffe, je ne vais répondre que partiellement…

    Citation Envoyé par chagui
    En faite j'ai un probleme de compréhension au niveau du fonctionnement. Cela permettra en faite à la table T pointacontroller de n'appeler que ceux qui doivent etre rempli. En raison de la présence de libellés identiques dans plusieurs themes. Ce code sql doit donc etre placé sur le bouton de commencement du controle.
    Non, non ces codes ne sont là que pour démontrer la cohérence du modèle tables&relations (enfin j’espère). Qu’à partir d’un dossier et de ses caractéristiques (statut et droit) on peut retrouver les thèmes et les libellés qui s’y rapporte.

    En regardant ton modèle, on voit aussi qu’une simple requête de sélection permet de retrouver et compter les dossiers contrôlés ces deux dernières années dont le libellé "Bonification 10 % pour 3 enfants" est OK (libellé qui apparaît dans les droits propres pour les deux statuts). Tu n’as peut-être pas besoin de ce genre de statistiques mais c’est quand même rassurant de voir qu’on peut les obtenir avec ton modèle, non ?


    Concernant les contrôles avec IF :
    Citation Envoyé par chagui
    …Un dossier peut être contrôlé au maximum 2 fois.
    Avec la 2ème fois en cas d’IF si j’ai bien compris.

    Tu peux rajouter un champ dans T_Controle pour typer le contrôle, un autre pour le nom du contrôleur, date du contrôle etc…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    T_Controle :
    idControleDossier	idDossier	Controleur	…	  FlagIF
    144			12		Dupond	        …	    Oui
    Le dossier n°12 suit un 1er contrôle n°144 par le contrôleur Dupond.
    Dans la table ResultatControle(#idControleDossier, #idPointCtrl, OK, KO, I-DOC, …) pour l’idControleDossier n°144, il y a des points avec des IF, le drapeau FlagIF est mis à "oui".


    Le dossier n°12 est contrôlé une 2ème fois, cette fois par Durand :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    T_ControleDossier :
    idControleDossier	idDossier	Controleur	…	  FlagIF
    144			12		Dupond	        …	    Oui
    157			12		Durand	        …	    Non
    Dans la table ResultatControle(#idControleDossier, #idPointCtrl, OK, KO, I-DOC, …) et pour l’idControleDossier=157 tu ne créeras que les lignes correspondant aux idPointCtrl qui présentaient des IF à l’idControleDossier n°144 précédent.

    Bon ça c’est juste une idée hein , reste à vérifier qu’elle corresponde à ton besoin.

    Si les IF ont des conséquences sur les montants qui figurent dans T_Dossier, tu peux en effet établir la relation T_incidenceFI-1------1-T_Dossier.

  13. #13
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Bonjour F-leb,

    Oui ca rassure énormément de savoir que tout est en relation et qu’il sera facile de pouvoir récupérer tous types de statistiques sur les differents contrôles effectués et franchement je te remercie bcp pour tout ca !
    Je comprend que tu ne répondes que partiellement…(même si ta réponse m'est très claire). Les informations et les réponses que tu as transmise depuis que j’ai créé ce post me sorte d’un sacré pétrain… et je suis vraiment content d’avoir pu en arriver à ce modèle !
    Cependant j’aurai une toute dernière fois quelques informations à te demander (avec un peu de gène de ma part...) J’ai des infos qui changent et ce n’est pas évident bref

    Je voudrais juste une confirmation : Pour incidence financiere la table est :
    T_incidence FI (ID contrôle dossier ; montant vfu ; montant autres droit ; date d’effet DB ; date d’effet DC).
    Le but n’est pas de modifier le contenu T_dossier. Les montants qui y sont indiqués serviront de comparaison avec les nouveaux afin de calculer l’erreur. Donc une simple relation avec l’id du contrôle suffit non ? De même pour la table CtrlNIR. Aucun besoin d’avoir forcément une relation avec le champ NIR dans la table T_dossier. ??

    J’ai également rajouté une table T_motif(id theme, id motif , nom motif). Les motifs sont classés également par thème. Le but avoir des motifs spécifiques à chaque thème sélectionnable en liste déroulante. Normalement je pense que ma table est bonne.(?)

    Un autre question se pose devant moi. J’ai pour chaque libellé une case concernée. Si elle est cochée cela active les autres cases (qui sont grisés dans le formulaire). Le but de cette manip est :
    1)éviter les mauvaises manipulations (cases cochées par erreur)
    2)De pouvoir effectuer une synthèse de chaque contrôle. Chaque libellé qui a été concerné par le contrôle sera classé en fonction de son thème. Le but est d’éviter d’avoir des libellés présent dans la synthèse qui n’ont pas servi pour un dossier.

    Ma question est :
    Une simple case "concerné" rajouté parmi OK KO… sera suffisant? Le besoin émis dans mon deuxième point doit ce faire via des requêtes je pense. Ce sont des questions sûrement toutes bêtes pour toi mais je me sens dans le besoin de les poser pour enlever tt doute.

    Pour finir :
    Dans la table ResultatControle(#idControleDossier, #idPointCtrl, OK, KO, I-DOC, …) et pour l’idControleDossier=157 tu ne créeras que les lignes correspondant aux idPointCtrl qui présentaient des IF à l’idControleDossier n°144 précédent.
    Pour le deuxieme controle. je dois mettre en place une requete qui récupere les dossiers controlés avec incidence financiere. L'administrateur récuperera les dossiers controlés (dans une feuille de donnée) et assignera un nouveau controleur . Le controleur doit savoir qu'il va effectuer un double controle sans savoir ou ont été constaté les erreurs (pour ne pas être influencé).Il devra donc refaire le controle entièrement. Pour cela il aura le choix entre acceder au formulaire nouveau controle amenant à une feuille de donnée composé des dossiers à controler ou acceder à double controle pour recontroller un dossier (feuille de donnée également). Le but est de les comparer.

    Est ce que la requete permetant à l'administrateur d'assigner un controleur peut etre la meme que celle que verra le controleur. Il pourra donc sélectionner le dossier et commencer un deuxieme controle.

    Bon j'arrete maintenant. C'était mon dernier post pour tout cela. je ne veux surtout pas abuser de ta sympathie même si j'avoue avoir l'impression de le faire

    Merci f-leb pour tout le temps que tu as passé sur ce post.


    PS : une derniere question qui n'a rien à voir : est-il possible de faire des dons pour le site? ou pour ton site si tu en as un ?

  14. #14
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    Bonjour chagui,

    Citation Envoyé par chagui
    Je voudrais juste une confirmation : Pour incidence financiere la table est :
    T_incidence FI (ID contrôle dossier ; montant vfu ; montant autres droit ; date d’effet DB ; date d’effet DC).
    Le but n’est pas de modifier le contenu T_dossier. Les montants qui y sont indiqués serviront de comparaison avec les nouveaux afin de calculer l’erreur. Donc une simple relation avec l’id du contrôle suffit non ?
    Pas facile de comprendre les règles de gestion quand on n’est pas dans le métier.
    Si j’ai bien compris, les règles de gestion sont les suivantes :
    - Un contrôle peut avoir au plus une incidence financière.
    - Une incidence financière fait suite à un contrôle et un seul.

    Auquel cas, la relation entre T_Controle et T_IncidenceFI est bien de type "un à un" comme sur ton schéma:
    T_Controle-1------1-T_IncidenceFI


    Citation Envoyé par chagui
    De même pour la table CtrlNIR. Aucun besoin d’avoir forcément une relation avec le champ NIR dans la table T_dossier. ??
    Je ne sais pas ce que c’est qu’un CtrlNIR!?
    Si la règle de gestion est :
    - Un contrôle est associé à au plus un ctrlNIR
    - Un CtrNIR est associé à un contrôle et un seul
    Le schéma est correct.

    Citation Envoyé par chagui
    J’ai également rajouté une table T_motif(id theme, id motif , nom motif). Les motifs sont classés également par thème. Le but avoir des motifs spécifiques à chaque thème sélectionnable en liste déroulante. Normalement je pense que ma table est bonne.(?)
    Je ne sais pas non plus ce que tu appelles " motif " !?
    Toutefois, le schéma, T_ResultatControle-∞------1-T_Motif-∞-------1-T_Theme, semble convenir.

    Citation Envoyé par chagui
    Pour le deuxieme controle. …
    T_Dossier-1-----∞-T_Controle-∞-----1-T_Controleur

    Un 1er contrôle pour le dossier n°12…

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    T_Controle :
    idControleDossier	idDossier	idControleur	TypeControle	…
    144			12		5		"1er controle"	…

    T_Controle-1-----∞-T_ResultatControle-∞------1-T_PointAControler

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    T_ResultatControle :
    idControleDossier	idPtCtrl	OK	IF	…
    144			1		oui	non	…
    144			2		oui	non	…
    144			3		non	oui	…
    …
    Ah ! un IF sur le point n°3, on calcule l’incidence puis…

    T_Controle-1------1-T_IncidenceFI
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    T_IncidenceFI :
    idControleDossier	BRUT VFU	…
    144			xxxx		…
    Il faut un double-contrôle sur ce dossier n°12,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    T_Controle :
    idControleDossier	idDossier	idControleur	TypeControle	…
    144			12		5		"1er controle"	…
    145			12		7		"2ème controle"
    Re-belotte pour le contrôleur n°7:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    T_ResultatControle :
    idControleDossier	idPtCtrl	OK	IF	…
    145			1		oui	non	…
    145			2		oui	non	…
    145			3		oui	non	…
    …
    Plus d’IF, le dossier est classé (un champ supplémentaire pour typer le dossier peut-être : dossier classé, dossier à re-contrôler, …)

    Bref, on dirait que ça roule. Tous les dossiers sont identifiés, tous les contrôles aussi etc.
    Rock’n roll, non ?

    Quand ma migraine sera passée, je répondrais sur cette histoire de case "concernée" ([EDIT] Ayai je viens de comprendre, je repasse plus tard [/EDIT])

    Citation Envoyé par chagui
    PS : une derniere question qui n'a rien à voir : est-il possible de faire des dons pour le site? ou pour ton site si tu en as un ?
    Pour le site : Remerciements à developpez.com

    Pour moi, un simple clic sur le bouton "Résolu" quand les derniers problèmes seront résolus me satisfera pleinement

  15. #15
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Merci encore pour ta réponse
    Bon j'ai dit dans le précédent mess que ca serait mon dernier... Ne jamais dire jamais je crois...

    - Un contrôle peut avoir au plus une incidence financière.
    - Une incidence financière fait suite à un contrôle et un seul.
    Un controle peut avoir plusieurs incidences financières au total. Il ne peut en avoir qu'une sur un libellé. Une erreur de date d'effet par ex entraine une incidence financière, des trimestres oubliés entraine une incidence financiere.. etc... il est difficile de dire vraiment quel libellé peut être confronté à une incidence FI c'est pourquoi la case I-FI est présente sur tous les libellés (même si certains ne sauront jamais confronté à une incidence FI).

    En faite le formulaire Incidence FI (qui apparait apres l'enregistrement du formulaire controle si au moins une case I-FI est cochée, sinon rien et synthese du controle) a pour but de récapituler via une requete intégré sous forme de feuille de données, l'ensemble des libellés qui ont pu subir une incidence financière avec la possibilité de corrigé leur choix (pour I-Fi, passé de "oui" à "non" car finalement il pensait qu'il pouvait y en avoir une mais il n'en est rien). Le principe est que durant la durée du controle l'agent remarque une possibilité d'incidence sans s'attarder dessus. Le but est qu'il s'occupe des I-FI tout à la fin avec un formulaire dédié a cela.

    donc c'est surement une relation de 1 a plusieur entre T_controle et T_incidence FI

    Un contrôle est associé à au plus un ctrlNIR
    - Un CtrNIR est associé à un contrôle et un seul
    Oui, durant un controle il n'y a qu'un NIR (num secu) à vérifier. Il faudra dire si il est Certifié, complet ou ko. Donc c'est good

    Je ne sais pas non plus ce que tu appelles " motif " !?
    Toutefois, le schéma, T_ResultatControle-∞------1-T_Motif-∞-------1-T_Theme, semble convenir.
    Un motif est une justification des cases cochées. ex : I-doc est cochée (incidence documentaire) alors il faudra donner une justification de cette incidence par un motif deja présent dans une liste déroulante. L'incidence la plus importante étant privilégié si il y avait une incidence FI et Doc sur le meme libellé. (mais ca c'est les controleurs qui gèrent ca )

    Pour la partie controle, tu penses qu'il est tout a fait possible d'avoir une requête qui puisse assigner un deuxième controle. Je pense qu'il ne doit pas avoir de problème à ce niveau la. Le dossier devra juste être indiqué comme déjà contrôler et nécessitant un deuxième controle (ce que tu m'as montré). En gros si il y a le moindre I FI, il sera automatiquement intégrer dans une feuille de données...

    je crois que tout à l'air d'être bon.... ca fait tellement plaisir... !!!!!

    Il reste juste cette histoire de case concernée mais prend tout ton tps pour répondre si t'as une idée et biensur en évitant d'avoir une migraine.... je me sentirais coupable sinon !!!!

    alalala j'crois que je vais bientôt mettre un tres gros "résolu" sur ce post !!

    merci pour tout encore

  16. #16
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut
    bonjour,

    Citation Envoyé par chagui
    Oui, durant un controle il n'y a qu'un NIR (num secu) à vérifier. Il faudra dire si il est Certifié, complet ou ko. Donc c'est good.
    Avec la table CtrlNIR(#idControleDossier, NIR, certifie, complet, KO), en fait j’ai un doute !

    Le modèle correct devrait plutôt être du genre CtrlNIR(#idControleDossier, NIR, CodeStatutNIR) avec, par exemple, CodeStatutNIR=1 pour certifié, =2 pour complet et =3 pour KO, non ?
    Le champ CodeStatutNIR sera rempli avec des cases à cocher dans un groupe d’options (utiliser l’assistant "groupe d’options")

    (Je me demande si les tables T_Ctrl1erNiveau et T_Ctrl2emeNiveau ne sont pas dans le même cas)

    De plus, un truc me gêne à cause d’un champ NIR qui existe déjà dans la table T_Dossier.
    Quelle est la différence de contenu entre T_Dossier.NIR et CtrlNIR.NIR ?

    Finalement j’ai un doute sur l’utilité de la table CtrlNIR, est-ce qu’un champ CodeStatutNIR dans T_Controle ne serait pas suffisant pour indiquer le statut du NIR du contrôle?

    Citation Envoyé par chagui
    Pour la partie controle, tu penses qu'il est tout a fait possible d'avoir une requête qui puisse assigner un deuxième controle. Je pense qu'il ne doit pas avoir de problème à ce niveau la. Le dossier devra juste être indiqué comme déjà contrôler et nécessitant un deuxième controle (ce que tu m'as montré). En gros si il y a le moindre I FI, il sera automatiquement intégrer dans une feuille de données...
    Oui, c’est l’idée!

    Citation Envoyé par chagui
    Un motif est une justification des cases cochées. ex : I-doc est cochée (incidence documentaire) alors il faudra donner une justification de cette incidence par un motif deja présent dans une liste déroulante. L'incidence la plus importante étant privilégié si il y avait une incidence FI et Doc sur le meme libellé. (mais ca c'est les controleurs qui gèrent ca)
    OK, il s’agit des motifs de rejet indiqués dans le pdf.
    A priori on peut maintenir : T_ResultatControle-∞------1-T_Motif-∞-------1-T_Theme
    Quoi que, les motifs ne sont-ils pas aussi associés au type de droit ?
    Tu as également des motifs "Autre : saisie texte sur 40 caractères" ou je suppose que l’utilisateur doit pouvoir créer des motifs personnalisés qui ne sont pas dans le pdf.
    Dans ce cas, Motif(idMotif, NomMotif, #idTheme, AutreMotif) avec AutreMotif de type "oui/non" (=non par défaut).


    Citation Envoyé par chagui
    Un controle peut avoir plusieurs incidences financières au total. Il ne peut en avoir qu'une sur un libellé…. donc c'est surement une relation de 1 a plusieur entre T_controle et T_incidence FI
    Un problème de vocabulaire, je pense, sur ces IF que je ne maîtrise pas….
    On reprend des exemples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    T_Controle :
    idControleDossier	idDossier	idControleur 	TypeControle	…
    144			12		5		"1er controle"	…
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    T_ResultatControle :
    idControleDossier	idPtCtrl	OK	IF	…
    144			1		oui	non	…
    144			2		non	oui	…
    144			3		non	oui	…
    …
    Les points 2 et 3 du contrôle n°144 du dossier n°12 présentent des IF, dans ce cas une ligne supplémentaire sera créée dans T_IncidentFI:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    T_IncidentFI :
    idControleDossier	BRUTVFU		BRUTSAutresDroits	DateEffet…
    144			xxxxxxx		yyyyyyyyy		04/08/2010
    Mais tu me confirmes qu’une ligne supplémentaire pour le même contrôle n’est pas possible et n’a pas de sens, hein ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    T_IncidentFI :
    idControleDossier	BRUTVFU		BRUTSAutresDroits	DateEffet…
    144			xxxxxxx		yyyyyyyyy		04/08/2010
    144			zzzzzzz		ttttttttt		05/08/2010 <--impossible
    Ou alors je n’ai toujours pas compris.


    Quelques détails au passage :
    - Eviter les espaces dans les noms, préférer IdDossier ou ID_Dossier plutôt que ID Dossier
    - Prendre les mêmes noms pour les champs reliés. Plutôt que T_Controle.controleur relié à T_Controleur.idControleur, préférer T_Controle.idControleur relié à T_Controleur.idControleur.
    - Ne pas oublier au final de mettre en place l’intégrité référentielle dans les relations (dans la fenêtre des relations, double-clic sur la relation et on coche la case).

    Je note sur mon agenda :
    Citation Envoyé par chagui
    ... cette histoire de case concerné…
    Pas pour tout de suite le bouton "Résolu"

  17. #17
    Membre régulier Avatar de sendme
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 82
    Points
    82
    Par défaut
    Bonjour Chagui et F-leb,

    Concernant :
    - Prendre les mêmes noms pour les champs reliés. Plutôt que T_Controle.controleur relié à T_Controleur.idControleur, préférer T_Controle.idControleur relié à T_Controleur.idControleur.
    j'avoue avoir conseillé ceci à Chagui, mais ce n'est qu'un avis personnel :
    Cependant, je te propose de suivre quelques conseils, afin d'éviter d'être embété lors de la rédaction de ton code ou de tes requêtes :
    Eviter les accents, espaces, caractères spéciaux sur le nom des tables et des champs.
    Ainsi lors de la rédaction du code ou des reqêtes tu ne sera pas obligé de mettre entre [ ] ou " "

    Pour les ID en relation sur tes différentes tables, donnes leur un nom spécifique à chaque table.
    ça limitera les erreurs d'inatention et erreurs Access sur la redondance des noms.
    Exemple ID de la Table1 = IDTable1

  18. #18
    Membre régulier Avatar de sendme
    Inscrit en
    Avril 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 86
    Points : 82
    Points
    82
    Par défaut
    Merci et bravo F-leb pour ces réponses claires et détaillées

    C'est grâce à des personnes comme toi que nous autres pauvres débutants, nous avançons dans nos projets tortueux

  19. #19
    Membre habitué
    Inscrit en
    Juillet 2010
    Messages
    230
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 230
    Points : 129
    Points
    129
    Par défaut
    Bonjour f-leb, sendme

    Je me permet de commencer ce message par une citation :

    Merci et bravo F-leb pour ces réponses claires et détaillées

    C'est grâce à des personnes comme toi que nous autres pauvres débutants, nous avançons dans nos projets tortueux
    Merci de le dire sendme c'est important

    j'avoue avoir conseillé ceci à Chagui, mais ce n'est qu'un avis personnel :
    Oui et merci de ce conseil sendme et f-leb. Il est vrai que je ne m'en étais occupé que partiellement sans encore y préter vraiment atention mais je crois que trop attendre va me faire commetre des erreurs alors ca sera fait directement après ce message

    Revenons à ces tables :

    De plus, un truc me gêne à cause d’un champ NIR qui existe déjà dans la table T_Dossier.
    Quelle est la différence de contenu entre T_Dossier.NIR et CtrlNIR.NIR ?
    Il n'y en a aucune au final il est vrai que ce champ CtrlNIR.NIR à part etre "copié" de la table dossier n'amène aucun changement. Il ne sert donc à rien.

    Finalement j’ai un doute sur l’utilité de la table CtrlNIR, est-ce qu’un champ CodeStatutNIR dans T_Controle ne serait pas suffisant pour indiquer le statut du NIR du contrôle?
    Je crois que tu as tout à fait raison. je résonne trop avec les tables et oublie les autres solutions. Il serait bcp plus efficace d'avoir ce champ dans T_controle. Donc l'idée serait d'utiliser un groupe d'option avec une valeur attribué à chacun.
    1 pour certifié, =2 pour complet et =3 pour KO
    De même pour T_Ctrl1erNiveau et T_Ctrl2ndNiveau

    Ce que je me demande c'est que dans la requetes, ce sont les valeurs qui s'afficheront (1 2 ou 3). Il y a forcément un moyen de mettre le nom équivalent à chaque valeur pour que lors des requetes et états, L'info soit pertinente.
    [EDIT]En faite je pense avoir trouvé, juste à me confirmé que c'est ce type de code
    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
    Code :
    Private Sub selection_Click()
    Dim sel As Integer
    Dim MaVar As String
     
    sel = Me.selection.Value
     
    Select Case sel
    Case 1
    MaVar = "petit"
    Case 2
    MaVar = "grand"
    Case 3
    MaVar = "large"
    Case 4
    MaVar = "mince"
    Case 5
    MaVar = "tous"
    End Select
     
    Me.MaCaseTexte = MaVar
     
     
     
    End Sub
    [/EDIT]

    les motifs ne sont-ils pas aussi associés au type de droit ?
    voici ma table T_themes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      ID themes            Nom themes
        Cal	                Calcul
        Car	                Carrière
        Dat	                Date d'effet
        Pai	                Paiement
        Rca	                Calcul RIU
        Rec	                Recevabilité
        Riu	                Détermination RIU
        Rsi	                RSI est RIU

    Les droit propres (commercant artisan) ont comme theme = Recevabilité ; Date d'effet ; Carrière ; Calcul ; Paiement
    Les droit dérivés (commercant artisan) ont comme theme = Recevabilité ; Date d'effet ; Détermination RIU ; RSI est RIU (si il ne l'est pas direct calcul RIU) ; Calcul RIU ; Paiement

    Chaque motif est unique à un theme. Il n'y aura pas de motif équivalent dans 2 themes differents. Ex : dans ma table T_motif : Car = Absence ou insuffisance de pièces justificatives carrière. ce motif ne sera présent que dans carrière.

    Tu as également des motifs "Autre : saisie texte sur 40 caractères" ou je suppose que l’utilisateur doit pouvoir créer des motifs personnalisés qui ne sont pas dans le pdf.
    Dans ce cas, Motif(idMotif, NomMotif, #idTheme, AutreMotif) avec AutreMotif de type "oui/non" (=non par défaut).
    Oui c'est exact et merci de m'y faire penser je l'avais oublié

    Alors je me demandais si il était possible lors de la selection "saisie texte sur 40 caractères" dans la liste déroulante, d'ouvrir un petit formulaire afin d'entrer la saisie du motif de rejet que le controleur souhaite écrire car il n'a aucun choix qui le satisfait dans la liste. Ce formulaire serait relié à la meme table avec un autre champ "saisie" par ex :
    Motif(idMotif, NomMotif, #idTheme, AutreMotif, Saisie).
    Un evenement openform avec le nom du controle à ouvrir devrait etre ok...

    Mais tu me confirmes qu’une ligne supplémentaire pour le même contrôle n’est pas possible et n’a pas de sens, hein ?
    Non je crois que dans cette table en effet ce n'est pas possible. Ca n'aurait pas de sens.

    Les incidences financieres ont un impact sur un montant brut. Montant qui a été liquidé à une personne. Chaque libellé présent dans ce controle à déja été rempli par un liquidateur pour constituer le dossier. C'est comme cela que l'on à les informations importées. Le controleur lui possède le dossier global et d'autres sources d'infos (papier, numerique, sur logiciel). Il doit controler le dossier que le liquidateur a fait et a validé (dossier OK) Le but du controle est donc de voir si le dossier validé par le liquidateur est vraiment OK et si il n'y a pas eu des erreurs (non financiere, documentaire, financiere...)
    Si il y a une incidence financiere cela a donc un impact sur le montant brut. Le controleur devra donc recalculer ce montant. Pour faciliter ce calcul il était préférable de le faire à la fin du controle (si incidence financiere il y a). D'ou l' idée d'ouverture d'un formulaire si la moindre case incidence financiere est cochée. Dans ce formulaire il y aurait une requete (sous forme de tableau) qui récupererait les lignes avec incidences financieres (nom libelles, ok, ko et incidence fi); le faite de voir tous les libellés avec incidences financieres lui permetrait de calculer globalement l'erreur. Si jamais un libellés n'est finalement pas en incidence FI il pourra decocher I-FI et recocher Ok a la place de KO.

    Donc en faite une simple requete sur la table T_résultat controle me permettrait d'avoir cela non ?

    Pour ce qui est des calcul il faudra en faite que dans ce formulaire je puisse entrer des données donc montant VFU ou montant autre droit. Le calcul de l'erreur = montant VFU (T_dossier) - Montant VFU(donnée entrée)

    Donc une ligne dans T_incidenceFI avec un Falg IF serait ok.

    Bref je sais pas si c'est compéhensible ce que j'ai marqué.

    On y est presque le "résolu" sera la bientôt je le sens


    [EDIT]Je viens de faire l'intégrité référentielle de chaque relation. j'ai eu un peu de galere mais j'ai fini par y arriver.

    J'ai juste 3 erreur :

    [I]T_dossier(#IDdroits, ...) -∞-------1-T_droits(IDdroits, Nomdroits)

    T_dossier (#IDstatuts, ...) -∞-------1-T_statuts(IDstatuts, Nomstatuts)

    T_theme (IDthemes, Nomthemes) -1-------∞- T-motifs(#IDthemes, IDmotifs[/I], Nommotifs)

    Pour ces trois relation l'intégrité ne se fait pas.

    Pour les deux premieres j'ai ce message : "la relation doit inclure le meme nombre de champ avec le meme type de données."
    Il n'y a pas le meme nombre de champ ca c évident... mais comment faire ?

    Pour la troisième relation, le message est, : "Les données de la table T_modifs" ne respecte pas les règles d'intégrité référentielle. Modifiez les données pour qu'il existe des enregistrements primaires pour tous les enregistrements associés." La j'avoue ne pas comprendre car il y a bien un enregsitrement primaire pour chaque enregistrement associé. A moins que je comprenne rien et il y a des chanczes que ca soit le cas [/EDIT]

  20. #20
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 884
    Points : 58 499
    Points
    58 499
    Billets dans le blog
    45
    Par défaut Vous l’aurez voulu, je continue… Episode #20
    Citation Envoyé par chagui
    Revenons à ces tables :
    Aïe !

    Citation Envoyé par chagui
    1 pour certifié, =2 pour complet et =3 pour KO
    [EDIT]En faite je pense avoir trouvé, juste à me confirmé que c'est ce type de code
    Ou encore dans une zone de texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =VraiFaux( [CodeStatutNIR]=1 ; "certifié" ; VraiFaux([CodeStatutNIR]=2 ; "complet" ; "KO") )
    (fonction IIf en angliche)

    Citation Envoyé par chagui
    Chaque motif est unique à un theme. Il n'y aura pas de motif équivalent dans 2 themes differents. Ex : dans ma table T_motif : Car = Absence ou insuffisance de pièces justificatives carrière. ce motif ne sera présent que dans carrière.
    OK, dont acte.

    Citation Envoyé par chagui
    Alors je me demandais si il était possible lors de la selection "saisie texte sur 40 caractères" dans la liste déroulante, d'ouvrir un petit formulaire afin d'entrer la saisie du motif de rejet que le controleur souhaite écrire car il n'a aucun choix qui le satisfait dans la liste. Ce formulaire serait relié à la meme table avec un autre champ "saisie" par ex :
    Motif(idMotif, NomMotif, #idTheme, AutreMotif, Saisie).
    Un evenement openform avec le nom du controle à ouvrir devrait etre ok..
    Pourquoi ce champ supplémentaire Saisie ?
    Le libellé du motif peut être saisi dans le champ NomMotif comme les autres. Le champ AutreMotif sera mis à "oui" pour indiquer qu’il s’agit d’un motif de type "autre" si nécessaire.
    Pense à consulter cette mine d’informations qu’est la FAQ, notamment ce truc qui pourrait t’intéresser:
    Absence dans liste déroulante - Proposer d'ajouter la valeur manquante dans la table source


    Citation Envoyé par chagui
    Citation:
    Mais tu me confirmes qu’une ligne supplémentaire pour le même contrôle n’est pas possible et n’a pas de sens, hein ?
    Non je crois que dans cette table en effet ce n'est pas possible. Ca n'aurait pas de sens.
    Donc la relation T_Controle-1------1-T_IncidenceFI est bien de type "un à un", ton schéma est correct.

    Citation Envoyé par chagui
    Dans ce formulaire il y aurait une requete qui récupererait les lignes avec incidences financieres (nom libelles, ok, ko et incidence fi); le faite de voir tous les libellés avec incidence financiere lui permetrait de calculer globalement l'erreur…
    Oui, il suffit de filtrer avec une condition du style :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE [I_FI]=True

    Citation Envoyé par chagui
    …Si jamais un libellés n'est finalement pas en incidence FI il pourra decocher I-FI et recocher Ok a la palce de KO.
    Si le résultat est soit OK, soit KO, là encore un seul champ [pointControleOK] de type "Oui/Non" devrait suffire, non ? (avec deux cases à cocher à l’intérieur d’un "groupe d’options" dans le formulaire, tu remplis [poinControleOK])
    A voir toutefois en fonction de la complexité du formulaire.

    Bon, je regarde ce nouveau schéma relationnel…Je reste dans le coin…

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Besoin d'un avis pour comparaison d'horaires
    Par Nixeus dans le forum MFC
    Réponses: 13
    Dernier message: 27/04/2007, 20h00
  2. Besoin de votre avis pour app réseau et données Excel
    Par BM42 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/12/2006, 11h42
  3. [UML] Besoin d'un avis pour un diagramme de collaboration
    Par skystef dans le forum Autres Diagrammes
    Réponses: 2
    Dernier message: 26/04/2006, 15h51
  4. Besoin d'un avis pour max_connections
    Par simoryl dans le forum Requêtes
    Réponses: 9
    Dernier message: 03/04/2006, 12h26

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