9 réponses
Salut,
Tout d'abord, je pense qu'il pourrait y avoir qque problèmes dans la structure de tes tables: notamment une double référence au N°Compte ainsi que le champ trimestre.
Par ailleurs, dans les états, as-tu essayé de créer des niveaux de regroupement? (clic droit: trier et grouper; choisir de regrouper sur la date de facturation puis dans le champ "intervalle", choisir trimestre ou année) En ajoutant des champs calculés dans ces derniers, tu devrais pouvoir arriver à grouper les résultats sans problèmes.
Tout d'abord, je pense qu'il pourrait y avoir qque problèmes dans la structure de tes tables: notamment une double référence au N°Compte ainsi que le champ trimestre.
Par ailleurs, dans les états, as-tu essayé de créer des niveaux de regroupement? (clic droit: trier et grouper; choisir de regrouper sur la date de facturation puis dans le champ "intervalle", choisir trimestre ou année) En ajoutant des champs calculés dans ces derniers, tu devrais pouvoir arriver à grouper les résultats sans problèmes.
Salut,
Pourrais-tu etre un peu plus explicit dans l'explication de ton problème. Dis toi que l'on n'y connait rien comme ça tu t'expliquera le plus clairement possible.
Les gengen sont des gengen tils
Pourrais-tu etre un peu plus explicit dans l'explication de ton problème. Dis toi que l'on n'y connait rien comme ça tu t'expliquera le plus clairement possible.
Les gengen sont des gengen tils
C'est très gentil de me répondre si rapidement, je vais essayer d'être claire.
En fait je tiens la comptabilité d'une cafétaria, je dois donc encoder des factures et non pas les créer.
J'ai créé une base de données comprenant 4 tables.
1) Fournisseur : avec 1 seul champ: fournisseur
2) Plan comptable : avec 2 champs: n°compte et libellé
ex: 612020 électricité
Le champ n°compte est une liste déroulante
3) Frais généraux : 4 champs : n° facture, n° compte, libellé et montant
4) Facture : avec trimestre, n° facture, date, fournisseur, total, achats1, achats2,..., n° compte, libellé et montant.
J'ai créé un formulaire qui reprend tous les champs trimestre, n°facture, date, fournisseur, total, achat1 et achats2; et un sous-formulaire avec les champs n° compte, libellé et montant (car sur 1 facture il peut y avoir plusieurs frais généraux différents)
J'aurai pu mettre tous les champs numériques dans le sous-formulaire mais à l'écran, c'est difficile de les voir tous en même temps.
A la fin du trimestre, il faut un état avec toutes les factures telles qu'elles ont été encodées, le total du champ achats1, le total du champ achats2,.... le total du champ montant.
J'ai donc fait 2 requêtes:
1) Par trimestre : reprenant tous les champs mais à ce moment, lorsqu'il y a 3 frais généraux dans le sous-formulaire, j'ai 3 lignes pour la même facture et donc 3 fois fournisseur, 3 fois le total, 3 fois achat1,....
Pour résoudre ce problème, j'ai créé une seconde requête :
2) F par trim : avec seulement les champs du formulaire pour n'avoir qu'une seule ligne par facture.
(J'aurai pu mettre tous les champs numériques dans le sous-formulaire mais à l'affichage, on ne voit pas tous les champs en même temps.)
Pour faire l'état du trimestre, j'ai pris la 1ère requête et pour faire les totaux j'ai dû prendre la 2ème en mettant comme formule: =DomSom("[achats1]";"[F par trim";"").
Mais en fin d'année, il me faut un état reprenant tous les fournisseurs et pour chacun d'eux la somme des champs: achats1+achats2+...+montant. C'est là que j'ai des problèmes puisque s'il y a 3 frais généraux, il additionne 3 fois achats1, 3 fois achats2,...
Voilà, je ne sais pas si c'est très clair, je me disais qu'avec la formule DomSom, il y aurait peut-être moyen de s'en sortir.
Ce serait génial si vous pouviez m'aider et merci d'avance.
En fait je tiens la comptabilité d'une cafétaria, je dois donc encoder des factures et non pas les créer.
J'ai créé une base de données comprenant 4 tables.
1) Fournisseur : avec 1 seul champ: fournisseur
2) Plan comptable : avec 2 champs: n°compte et libellé
ex: 612020 électricité
Le champ n°compte est une liste déroulante
3) Frais généraux : 4 champs : n° facture, n° compte, libellé et montant
4) Facture : avec trimestre, n° facture, date, fournisseur, total, achats1, achats2,..., n° compte, libellé et montant.
J'ai créé un formulaire qui reprend tous les champs trimestre, n°facture, date, fournisseur, total, achat1 et achats2; et un sous-formulaire avec les champs n° compte, libellé et montant (car sur 1 facture il peut y avoir plusieurs frais généraux différents)
J'aurai pu mettre tous les champs numériques dans le sous-formulaire mais à l'écran, c'est difficile de les voir tous en même temps.
A la fin du trimestre, il faut un état avec toutes les factures telles qu'elles ont été encodées, le total du champ achats1, le total du champ achats2,.... le total du champ montant.
J'ai donc fait 2 requêtes:
1) Par trimestre : reprenant tous les champs mais à ce moment, lorsqu'il y a 3 frais généraux dans le sous-formulaire, j'ai 3 lignes pour la même facture et donc 3 fois fournisseur, 3 fois le total, 3 fois achat1,....
Pour résoudre ce problème, j'ai créé une seconde requête :
2) F par trim : avec seulement les champs du formulaire pour n'avoir qu'une seule ligne par facture.
(J'aurai pu mettre tous les champs numériques dans le sous-formulaire mais à l'affichage, on ne voit pas tous les champs en même temps.)
Pour faire l'état du trimestre, j'ai pris la 1ère requête et pour faire les totaux j'ai dû prendre la 2ème en mettant comme formule: =DomSom("[achats1]";"[F par trim";"").
Mais en fin d'année, il me faut un état reprenant tous les fournisseurs et pour chacun d'eux la somme des champs: achats1+achats2+...+montant. C'est là que j'ai des problèmes puisque s'il y a 3 frais généraux, il additionne 3 fois achats1, 3 fois achats2,...
Voilà, je ne sais pas si c'est très clair, je me disais qu'avec la formule DomSom, il y aurait peut-être moyen de s'en sortir.
Ce serait génial si vous pouviez m'aider et merci d'avance.
Je persiste à penser que tu as des problèmes de structure.
Pourrais-tu me préciser quels sont les champs qui jouent le rôle de clé primaire dans chacune des tables.
Il n'est par exemple pas normal de retrouver un rappel du N°de compte dans trois tables à moins qu'il ne s'agisse de comptes différents.
La valeur "trimestre" peut être extraite du champ date et ne nécessite pas de champ spécifique, à mon avis.
Que représente concrètement la table "frais généraux". S'agit-il des différentes fournitures reprises sur une même facture?
Pourrais-tu me préciser quels sont les champs qui jouent le rôle de clé primaire dans chacune des tables.
Il n'est par exemple pas normal de retrouver un rappel du N°de compte dans trois tables à moins qu'il ne s'agisse de comptes différents.
La valeur "trimestre" peut être extraite du champ date et ne nécessite pas de champ spécifique, à mon avis.
Que représente concrètement la table "frais généraux". S'agit-il des différentes fournitures reprises sur une même facture?
J'avais peur que vous ne me laissiez tomber, vous êtes vraiment gentil de m'aider comme ça.
Il n'y a qu'un seul champ qui soit clé primaire, c'est le champ n° facture dans la table facture. Il n'y en a pas dans les autres tables.
Le champ n° compte se retrouve dans la table plan comptable, pour pouvoir en ajouter au moment de l'encodage et être sûre qu'il n'y ait pas redoncance, il se trouve aussi dans la table frais généraux.
La table frais généraux représente les frais supportés pour excercer l'activité.C'est sur elle que se base le sous-formulaire.
Concrètement : on achète des boissons ( achats1) mais il y a des vidanges et donc on attribue un N° de compte à ce poste vidange:
612520 et libellé: vidanges.On peut aussi avoir des frais de transport lorsqu'on nous livre des marchandises. Et puis il y a tous les frais d'éléctricité, eau, chauffage, ....
Donc on a des factures avec rien que des marchandises, d'autres factures avec des marchandises ET des frais, et d'autres factures avec rien que des frais.
Par exemple: achat de boissons pour 500,00€, vidanges pour 75,00€ et transport 10,00€, le programme fait 2 lignes :
facture n°1 ,achats 500,00 et vidanges 75,00 puis il affiche une seconde ligne facturen°1 achats 500.00 et transport 75.00.
Les relations:
Table fournisseur 1 à plusieurs table facture
Table facture 1 à plusieurs table frais généraux
Table plan comptable 1 à plusieurs table frais généraux
les jointures sont de type 1
Requêtes : par trimestre avec les champs:
période, n°facture, date, fournisseur, total, achats1, ..., n°compte, libellé, montant. Et c'est à ce moment qu'il affiche par exemple 2 lignes pour la même facture.
La jointure est de type 2, autrement il n'affichait pas les factures où il n'y avait pas de frais généraux.
J'ai fait une seconde requête basée sur la table facture et qui reprend les factures où il y a de la marchandise (pas de frais).
Le champ trimestre, c'est un peu spécial : des factures arrivent en dehors de la période mais il faut qu'elles soient reprises quelque part donc on ne peut pas se baser sur la date. Si c'est important, je t'expliquerai mieux.
Naurais-tu pas plus facile si je t'envoyais ma base de données ?Mais il faudra m'expliquer la procédure à faire.
Encore une fois mille mercis de te pencher sur mon problème
Il n'y a qu'un seul champ qui soit clé primaire, c'est le champ n° facture dans la table facture. Il n'y en a pas dans les autres tables.
Le champ n° compte se retrouve dans la table plan comptable, pour pouvoir en ajouter au moment de l'encodage et être sûre qu'il n'y ait pas redoncance, il se trouve aussi dans la table frais généraux.
La table frais généraux représente les frais supportés pour excercer l'activité.C'est sur elle que se base le sous-formulaire.
Concrètement : on achète des boissons ( achats1) mais il y a des vidanges et donc on attribue un N° de compte à ce poste vidange:
612520 et libellé: vidanges.On peut aussi avoir des frais de transport lorsqu'on nous livre des marchandises. Et puis il y a tous les frais d'éléctricité, eau, chauffage, ....
Donc on a des factures avec rien que des marchandises, d'autres factures avec des marchandises ET des frais, et d'autres factures avec rien que des frais.
Par exemple: achat de boissons pour 500,00€, vidanges pour 75,00€ et transport 10,00€, le programme fait 2 lignes :
facture n°1 ,achats 500,00 et vidanges 75,00 puis il affiche une seconde ligne facturen°1 achats 500.00 et transport 75.00.
Les relations:
Table fournisseur 1 à plusieurs table facture
Table facture 1 à plusieurs table frais généraux
Table plan comptable 1 à plusieurs table frais généraux
les jointures sont de type 1
Requêtes : par trimestre avec les champs:
période, n°facture, date, fournisseur, total, achats1, ..., n°compte, libellé, montant. Et c'est à ce moment qu'il affiche par exemple 2 lignes pour la même facture.
La jointure est de type 2, autrement il n'affichait pas les factures où il n'y avait pas de frais généraux.
J'ai fait une seconde requête basée sur la table facture et qui reprend les factures où il y a de la marchandise (pas de frais).
Le champ trimestre, c'est un peu spécial : des factures arrivent en dehors de la période mais il faut qu'elles soient reprises quelque part donc on ne peut pas se baser sur la date. Si c'est important, je t'expliquerai mieux.
Naurais-tu pas plus facile si je t'envoyais ma base de données ?Mais il faudra m'expliquer la procédure à faire.
Encore une fois mille mercis de te pencher sur mon problème
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Effectivement, c'est un peu long... mais mon travail me prend tout de même l'essentiel de mon temps.
Que représente comcrètement tes champs N° de compte?
Ces données sont-elles identiques? Je vois cela comme le N° de compte banquaire des fournisseurs.
Pour le reste j'essaie de te répondre ce soir.
Que représente comcrètement tes champs N° de compte?
Ces données sont-elles identiques? Je vois cela comme le N° de compte banquaire des fournisseurs.
Pour le reste j'essaie de te répondre ce soir.
Si je comprends bien, tu souhaites différencier les types de factures (séparer les fournitures et les frais de fonctionnement par exemple), ça me semble logique.
En revanche, le problèmes des vidanges me semble secondaire, à moins que tu ne veuilles faire de la gestion de stock: si les vidanges sont facturées à la livraison, elles seront inscrites en crédit lors de leur retour. Sur le plan comptable, c'est une opération blanche.
Si tu fais de l'encodage a postériori, tu pars du document "papier".
Dans ce cas, si on essaie de catégoriser les informations nécessaires, je pense qu'on devrait avoir 4 tables:
Fournisseurs N°Fournisseur (clé); NomFournisseur; AdresseFournisseur; N°CompteFournisseur...
Factures N°Facture (clé); N°Fournisseur (clé externe); DateRéception; DatePaiement; Montant HTVA; MontantTVAC; N°TypePaiement (Clé externe); N°Objet (Clé externe)
Objet N°Objet (clé primaire); NomObjet (le type de produit ou de fourniture)
Paiement N°TypePaiement (clé); TypePaiement (comptant, compte n°...)
Comme tu vois, il n'y a qu'un seul enregistrement par facture. Impossible d'obtenir des doublons lors de l'exécution des requêtes.
Si tu souhaites décomposer produit par produit, tu peux ajouter une table "Détail": N°Détail (clé); N°Facture (clé externe); N°Produit (clé externe); Montant HTVA
et une table "Produits": N°Produit (clé primaire); NomProduit; %TVA
Il faut évidemment dans ce cas supprimer de la table facture les champs "montant" ainsi que la table "objets"...
J'espère que c'est compréhensible.
Je pense qu'une clé primaire est indispensable dans toutes les tables et que la structure que je te propose évite les doublons et permet de réaliser facilement un formulaire d'encodage "assisté" (les champs peuvent être affichés sus forme de listes déroulantes).
Qu'en penses-tu?
En revanche, le problèmes des vidanges me semble secondaire, à moins que tu ne veuilles faire de la gestion de stock: si les vidanges sont facturées à la livraison, elles seront inscrites en crédit lors de leur retour. Sur le plan comptable, c'est une opération blanche.
Si tu fais de l'encodage a postériori, tu pars du document "papier".
Dans ce cas, si on essaie de catégoriser les informations nécessaires, je pense qu'on devrait avoir 4 tables:
Fournisseurs N°Fournisseur (clé); NomFournisseur; AdresseFournisseur; N°CompteFournisseur...
Factures N°Facture (clé); N°Fournisseur (clé externe); DateRéception; DatePaiement; Montant HTVA; MontantTVAC; N°TypePaiement (Clé externe); N°Objet (Clé externe)
Objet N°Objet (clé primaire); NomObjet (le type de produit ou de fourniture)
Paiement N°TypePaiement (clé); TypePaiement (comptant, compte n°...)
Comme tu vois, il n'y a qu'un seul enregistrement par facture. Impossible d'obtenir des doublons lors de l'exécution des requêtes.
Si tu souhaites décomposer produit par produit, tu peux ajouter une table "Détail": N°Détail (clé); N°Facture (clé externe); N°Produit (clé externe); Montant HTVA
et une table "Produits": N°Produit (clé primaire); NomProduit; %TVA
Il faut évidemment dans ce cas supprimer de la table facture les champs "montant" ainsi que la table "objets"...
J'espère que c'est compréhensible.
Je pense qu'une clé primaire est indispensable dans toutes les tables et que la structure que je te propose évite les doublons et permet de réaliser facilement un formulaire d'encodage "assisté" (les champs peuvent être affichés sus forme de listes déroulantes).
Qu'en penses-tu?
Effectivement, je suis obligée de décomposer produit
par produit
J'ai été obligée d'enlever les clés primaires de mes tables car à l'encodage, il mettait tout le temps qu'il y avait un problème avec les index. Je refais un nouvelle base de données avec les champs et les clés que tu spécifies et de nouveau il affiche ce message sur les index et les doublons.
Lorsque je fais le formulaire, il fait un sous-formulaire avec la table détail, logique mais il ne veut pas que j'encode une seconde ligne (problème de doublon!).
Tu sais je suis autodidacte, je me demande même si la version que j'ai (Access 2000) tourne convenablement.
Mais supposons que j'arrive à construire les tables comme tu le dis, lorsque sur 1 facture il y a des boissons, des chips, du café, une bonbonne pour la pompe, du fromage pour accompagner les verres,... , je dois décomposer tout car pour le fisc, c'est différent. Pour un même n° de facture, j'aurai quand même plusieurs n° de détail ou n° de produits.
Il y a quelque chose qui m'échappe. Excuse-moi
par produit
J'ai été obligée d'enlever les clés primaires de mes tables car à l'encodage, il mettait tout le temps qu'il y avait un problème avec les index. Je refais un nouvelle base de données avec les champs et les clés que tu spécifies et de nouveau il affiche ce message sur les index et les doublons.
Lorsque je fais le formulaire, il fait un sous-formulaire avec la table détail, logique mais il ne veut pas que j'encode une seconde ligne (problème de doublon!).
Tu sais je suis autodidacte, je me demande même si la version que j'ai (Access 2000) tourne convenablement.
Mais supposons que j'arrive à construire les tables comme tu le dis, lorsque sur 1 facture il y a des boissons, des chips, du café, une bonbonne pour la pompe, du fromage pour accompagner les verres,... , je dois décomposer tout car pour le fisc, c'est différent. Pour un même n° de facture, j'aurai quand même plusieurs n° de détail ou n° de produits.
Il y a quelque chose qui m'échappe. Excuse-moi
Comment as-tu organisé les relations?
Sait-tu que pour qu'une relation fonctionne les champs doivent être de type numérique ou N°Auto (pour les clés primaires)
En principe, si tu relies dans les tables que je te propose, les champs de même nom, tu ne devrais pas avoir de problèmes.
Tu peux, si tu le souhaites m'envoyer un mail (cf mon profil) pour que je puisse t'envoyer un exemple.
Sait-tu que pour qu'une relation fonctionne les champs doivent être de type numérique ou N°Auto (pour les clés primaires)
En principe, si tu relies dans les tables que je te propose, les champs de même nom, tu ne devrais pas avoir de problèmes.
Tu peux, si tu le souhaites m'envoyer un mail (cf mon profil) pour que je puisse t'envoyer un exemple.
J'ai regardé ton profil, mais je n'ai pas vu ton adresse e-mail. J'ai essayé d'envoyer un message avec la mienne pour que tu puisses me répondre mais mon message a été refusé. Alors je ne sais pas comment il faut faire.
Non, je ne savais pas qu'il fallait des champs numériques ou N° auto pour que les relations fonctionnent convenablement. Mais je ne crois pas que dans ma base de données, ce soit cela qui ne fonctionne pas.
Merci encore de ton aide
Non, je ne savais pas qu'il fallait des champs numériques ou N° auto pour que les relations fonctionnent convenablement. Mais je ne crois pas que dans ma base de données, ce soit cela qui ne fonctionne pas.
Merci encore de ton aide
Euréka, Zénon, j'ai trouvé.
Je ne savais pas bien comment je pouvais me servir de la fonction regroupement-somme dans une requête. Et finalement, c'était tout simple, j'ai fait une requête somme sur le champ montant il additionne donc les montants par facture, je n'ai donc qu'un enregistrement par n° facture et je fais mon état avec cette requête.
Je te remercie pour toute ton aide, cela fait du bien que quelqu'un se penche sur ton problème ! 1000 mercis
Je ne savais pas bien comment je pouvais me servir de la fonction regroupement-somme dans une requête. Et finalement, c'était tout simple, j'ai fait une requête somme sur le champ montant il additionne donc les montants par facture, je n'ai donc qu'un enregistrement par n° facture et je fais mon état avec cette requête.
Je te remercie pour toute ton aide, cela fait du bien que quelqu'un se penche sur ton problème ! 1000 mercis
J'ai créé la table frais généraux pour pouvoir en ajouter au moment de l'encodage et être sûre qu'il n'y ait pas de double quant au champ trimestre, il me sert à trier les factures pour les 4 périodes de l'année.