Requête Sélection(BD Access)

Fermé
badr - 12 nov. 2008 à 02:44
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008 - 25 nov. 2008 à 00:00
Bonjour à tous,
SVP je souhaite qqn qui peut m'aider.Voilà, j'ai 2 tables ds une BD(Access) dont relation est ( 1 - n).
- Table 1: Id Nom - Nom.
- Table 2: Id Congé - Id Nom - Reliquat antérieur - Droit de congé - Durée de congé.
Ds une Requête Sélection basée sur les 2 tables, j'ai créé un champ calculé intitulé "Reste" dont voici l'expression:
[Reste]:([Reliquat antérieur]+[Droit de congé])-[Durée de congé])
Mais que dois-je faire par la suite pour que le champ "Reste" soit toujours un nouveau reliquat? j'explique par l'exemple suivant:
1) un employé désire bénéficier d'un congé de 20 jours(durée de congé). Il a un reliquat de 40 jours+ son droit de congé=30 jours (par an et qui peut être fractionné) ce qui donne un cumul de:70 jours; Le résultat du reste=50 jours.
2) Par la suite et ds la^m année, le ^m employé demandera une durée de 30 jours. Là, comment avoir un reliquat antérieur=50 jours? sachant que cette fois, l'intéressé n'a pas droit de congé ( Pour éviter le double emploi du droit de congé au cours de la saisie car en est toujours ds la^m année).
Maintenant, je dois avoir un cumul=50 jours et un nouveau reliquat=20 jours.
3) Une autre fois(toujours ds la^m année), la ^m personne demandera un congé d'une durée de 15 jours.
Opération: Reliquat antérieur=20 jours - Durée de congé=0 jours - Cumul= 20 jours - nouveau reliquat=05 jours.
4) Au début de l'année qui suit, je dois avoir comme données:
- Reliquat antérieur=05 jours - droit de congé=30 jours - Cumul= 35 jours, ainsi de suite...

10 réponses

Utilisateur anonyme
16 nov. 2008 à 22:45
Bonsoir,
....search in progess....
1
Bonjour,
SVP, aidez-moi je suis bloqué.
Je pense que mon sujet (Requête Sélection) ressemble aux relevés bancaires:Nouveau solde est reporté sur le relevé suivant comme ancien solde, et ainsi de suite).
Merci infiniment
badr
0
Bonjour,
mais personne ?!!!
Qu'est ce qui arrive au monde?
j'attends vos aides S.V.P

Cordialement
badr
0
Utilisateur anonyme
16 nov. 2008 à 22:49
OK,
Vous avez trop de champs deux se "chevauchent" reliquat en fait = reste...logique non ?
Même si je comprends "le reliquat"...au départ vous avez
à prendre / pris / donc reste = à prendre - pris
puis dans la période des congés viennent s'ajouter : les droits : il augmente le total à prendre..
Par contre vous devrez penser à réinitialisé chaque année en fonction des droits acquis..
0
Salut Cocotehier,
merci de votre réponse,
le moment où j'ai lancé mon sujet, j'ai omis d'expliquer que le reliquat antérieur(40j dans l'exemple) doit être saisi seulement au début. Dans ce cas, je crois que j'ai besoin d'un autre champ qui doit recevoir la valeur du champ Reste et qui sera considéré par la suite comme un reliquat antérieur. Mais comment ? c'est ça la question.
Ainsi,je vous informe que j'ai créé un champ intitulé "Année" en fonction des droits de congé.

Cordialement
Belim
0
Utilisateur anonyme
18 nov. 2008 à 22:18
Bonsoir,
En fait il s'agit simplement d'addtionner au bon moment les bon champs.
L'architecture de votre base semble être....un cercle ! Un recommencement.
L'idée est donc de faire coincider la fin du calcul (le solde) avec le début d'un autre (le reliquat) les deux pouvant eventuellement être positif, ou négatif (congés anticipés)
Le plus simple est d'avoir une table qui peut s'appeler "initiale". C'est une table qui ne contient que le champs [reste_anterieur] c'est le solde n-1, la première fois vous initialisez cette table en saisissant le reste par personne (ou en l'important)...
Dans une autre table "periode" le champs [reliquat] = initial!.[reste_anterieur]
Pendant la période vous avez la formation des droits - pris = solde
A la fin de l'année vous prévoyez de transférer solde dans [reste_anterieur]..
Carpe Diem
0
Bonsoir Cocotehier,
Merci infiniment de votre réponse.
1) je vais lire attentivement votre suggestion,c'est parce que je ne suis pas doué en la matière.
2) j'essaierai par la suite de restructurer ma BDD selon vos suggestions
3) j'ai d'autres tables dans Ma BDD; dans ce cas,est ce que je relie la table1 ou la table2 avec la table "initiale"?
Merci beaucoup

Cordialement
badr
0

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

Posez votre question
Utilisateur anonyme
18 nov. 2008 à 22:51
Bonsoir,
Cela dépend de ce que contiennent les tables. Initial est un exemple.
0
Non les autres tables que j'ai ds ma BDD , n'ont pas les mêmes données que celles q' on parle
0
Utilisateur anonyme
18 nov. 2008 à 23:03
En reliant Table 1 et 2 a initial vous pourriez effectivement reconstituer une table dans laquelle vous pourrez retrouver les champs (nom...) pourquoi pas.
0
Merci beaucoup
Est ce que vous me permettez de vous envoyer un message privé, par lequel je vous exposerai la restructuration e ma BDD?
Dans l'attente de votre confirmation
Cordialement
badr
0
Utilisateur anonyme
19 nov. 2008 à 20:31
Oui bien sur mais vous déposerez la solution elle pourra intéresser d'autres demandeurs.
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
19 nov. 2008 à 22:42
Bonsoir,
Oui bien sûr et avec un grand plaisir.
Merci de vous pencher sur mon cas;j'ai essayé avec vos suggestions, mais, S.V.P explique mois plus surtout avec la 3è table par exemple "période"
Merci d'avance
0
Utilisateur anonyme > Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
20 nov. 2008 à 23:04
pour déposer votre fichier apres avoir tester anti-virus

https://www.cjoint.com/
0
Utilisateur anonyme
20 nov. 2008 à 20:25
Bonsoir,
Je fonctionne en access 2000.
Prenez soin d'enregistrer votre base en format qui me soit possible de lire si vous êtes en 2003 ou 2007.
Puis, déposez-le par CIJOINT lié à ce site (le site qui permet de déposez un fichier) afin que je regarde cela.
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
21 nov. 2008 à 04:02
Bonsoir,
je m'excuse du retard; j'étais entrain de restructurer ma BDD et écrire un message à votre intention.
02 fichiers vous ont été envoyé; l'un concernant la base de données et l'autre un message (format Word)
Merci infiniment, et je vous serais très reconnaissant
Cordialement,
Belim, ex badr
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008 > Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
21 nov. 2008 à 04:24
NB: j'ai oublié, Maître, de vous dire que le fichier de la BDD qui vous a été envoyé n'est qu'un fichier que j'ai créé pour effectuer des essais, par contre, le fichier principal est intact.

Merci d'avance
0
Utilisateur anonyme > Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
22 nov. 2008 à 00:29
Bonsoir, quelques données :

base composée de
1 table depart avec champs nom et initial (l'ancien reliquat)
1 table legal avec champs nom et legal (les droits de l'année)
1 table planning avec champs nom debut fin (date debut et date de fin) idéalement table attachée et gérée en excel une colonne nom ou l'on repete autant de fois le nom et faire correspondre en face les plages de conges debut et fin

1 requete de selection consommation ainsi : ouvrez une requete de selection en sql et copie ceci

SELECT planning.nom, planning.debut, planning.fin, [fin]-[debut] AS pris
FROM planning
WHERE (((planning.fin)<=Now()));

1 requete de selection consommé ainsi : ouvrez une requete de selection en sql et copie ceci
SELECT consommation.nom, Sum(consommation.pris) AS pris
FROM consommation
GROUP BY consommation.nom;

enfin 1 derniére requete de selection solde ainsi : ouvrez une requete de selection en sql et copie ceci


SELECT depart.nom, depart.initial, legal.droits, consommé.pris, ([initial]+[droits])-[pris] AS solde
FROM (depart LEFT JOIN legal ON depart.nom = legal.nom) LEFT JOIN consommé ON depart.nom = consommé.nom;

a date, vous entrerez les reliquats dans la table initial....et même de faire un etat que vous pourrez éditer en faisant etat utilisez l'assistant et choisir requete solde

à vous de compléter le planning
0
Utilisateur anonyme
21 nov. 2008 à 23:30
Bonsoir,
A priori votre fichier n'est pas arrivé. Le lien https://www.cjoint.com/
limite à 500 ko..une base doit peser plus lourd..envoyez mois des imprim' écran de vos tables et de vos requêtes.
Pour fair un imprim ecran vous cliquez sur le bouton entre F12 et Arrêt défil puis vous ouvez word et faite edition coller, faites plusieurs envois pour la taille
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
22 nov. 2008 à 16:42
Bonjour Maître,
je vous remercie de mon profond cœur de votre réponse.
Mais avant de se pencher sur leurs éléments, je vous demande de bien vouloir m'expliquer un peu la partie concernant la création de ces tables.
Si je l'ai bien saisie, je dois les créer à partir d'un fichier Excel et les attacher à ma base de données, n'est-ce pas ?sachant que dans Access, j'aurai effectivement des redondances en créant le champs "Nom" dans plusieurs tables.
Mais, le problème c'est que je n'ai aucune idée sur les tables, les plages,...dans Excel.
Quand au sujet de l'envoi des fichiers,je ne sais pas pourquoi ils ne sont pas partis,sachant que:
- la taille du fichier .mdb = 244 Ko( créé pour effectuer des essais et il s'agit uniquement de la partie"critique" de ma base de données initiale).
- la taille du fichier .Doc = 164 Ko( message expliquant mon cas).
Je viens maintenant de vous envoyer à nouveau les dits fichiers comme suit:
1- Fichier .Doc, avec l'option "imprim' écran".
2- Fichier .mdb, sans option sus-citée, parce que je n'ai pas trouvé comment vous envoyer uniquement mes tables et ma requête.
Merci encore de votre aide et de votre patience.

Cordialement,
Belim (Ex-badr)
0
Utilisateur anonyme > Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
22 nov. 2008 à 17:22
Je n'avais pas remarqué mais s'il vous plait, cessez de m'appeler Maitre, même si je prends cela par humour.
Je n'ai pas vos fichiers mais nous pourrions faire sans si vous en êtes d'accord.
Bien,
Effectivement, si nous reprenons au départ,
j'ai ouvert excel et creer sur une feuille que j'ai nommée un tableau de plusieurs colonnes dont la colonne nom que j'ai importé dans access via table nouveau importer (sélectionner ledit fichier excel et repérer la feuille nommée)
l'invite de commande vous demandera ensuite si la première ligne contient les titre dire oui et importer, pour ma part je ne détermine jamais de clé ni ne laisse le soin à l'ordi de le faire) vous aurez alors une table avec les champs qui seront les entetes de votre feuille.....
certe vous pouvez sur un seul fichier excel avoir plusieurs feuilles chacune nommées differements repéte la méthode pour creer vos tables
Il ne s'agit d'un fichier de support temporaire.
Ceci fait, reprenez l'exemple du précedent script en créant vos requete de selection (requéte nouveau mode sql et copier les données décrites)
Enfin l'une des tables au lieu d'être importée pourrait être attachée : la table ou sont les plage de congés - car dans ce fichier excel dés que vous saisissez des données elles sont automatiquement prise dans access et dans les requêtes.
Ce qui permet de saisir dans excell les plage par personnes et de gérer dans access la volumétrie..
0
Utilisateur anonyme > Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
22 nov. 2008 à 17:26
Pour l'envoi, je me suis tres mal expliqué...l'invite vous donne à la fin un lien que vous copier coller dans votre post..ce qui permet d'atteindre l'endroit ou est stocké votre information..
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008 > Utilisateur anonyme
22 nov. 2008 à 18:01
Bonjour,
merci beaucoup de votre réponse détaillée.Elle va me prendre du temps pour l'exécuter. Je vous ferai part des résultats dès que je terminerais sa structure.
Quant à l'appellation "Maître", je vous assure que cela signifie le grand respect envers vous de m'avoir aider à apprendre ce qui me manque dans la matière.
En outre, celui qui m'apprends un mot, est considéré comme Maître pour moi.
A très bientôt

Cordialement
Belim
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008 > Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
22 nov. 2008 à 18:14
Je me reprends,
en ce qui concerne l' envoi de mes fichiers concernés, je vous informe que j'ai enregistré le lien dans mon poste. Mais la question est de savoir comment lier directement des pièces jointes à mon message.
Merci d'avance,
Belim
0
Utilisateur anonyme
22 nov. 2008 à 23:35
Bonsoir,
Pas d'erreur, il faut s'arreter au point trois, a ce moment le lien est automatiquement copié dans le presse papier (sorte de mémoire instantanée) vous pouvez de suite le copier via Ctrl+V dans le post.

Mais avez-vous essayé de mettre en application dans votre base les posts précédents ?
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
22 nov. 2008 à 23:49
Bonsoir,
merci de votre confirmation,mais où réside le problème?
Je n'ai rien saisi ici: " mettre en application les postes précédents",et de quels postes?
Voulez-vous me l'éclaircir S.V.P?
Merci encore
Cordialement,
Belim
0
Utilisateur anonyme > Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
22 nov. 2008 à 23:54
?
Post 19,
voici un exemple de base.

https://www.cjoint.com/?lwxY7uL6BU
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008 > Utilisateur anonyme
23 nov. 2008 à 00:12
Bonsoir,
merci infiniment de m'avoir aidé.
je vais le voir, mais post 19 ?!!! je ne sais pas ce que ça signifie; pardonne mon ignorance

Bonne fin de soirée
Belim
0
Utilisateur anonyme > Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008
23 nov. 2008 à 00:27
Bonjour,
En haut et à gauche de votre message (un post) figure un numéro, le N° du post, votre dernier était le N°30, celui-ci le 31, il y a un N° 19.
Sur le post N°29 vous trouverez un lien sur lequel vous cliquerez, ceci vous donnera un fichier à télécharger qui est un exemple de base.
0
Belim Messages postés 18 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008 > Utilisateur anonyme
23 nov. 2008 à 00:38
Bonsoir,
je vous remercie infiniment, je l'ai reçu et je vais continuer
A bientôt
Cordialement
Belim
0