La supervision des comptabilités d’un groupe vise à répondre à plusieurs objectifs dont la prévention des risques d’erreurs et de fraudes.
Une des erreurs les plus communes en comptabilité est la double comptabilisation de factures fournisseurs… avec le risque de double paiement qui s’ensuit. Si les procédures sont chargées de limiter ce risque de double comptabilisation, la systémisation du contrôle complète plus efficacement le dispositif de prévention.
SELECT Requête1.CompteDeCodeEntité AS NbOccurrences, ECRITURES.CodeEntité, ECRITURES.JournalCode, ECRITURES.JournalLib, ECRITURES.EcritureNum, ECRITURES.EcritureDate, ECRITURES.CompteNum, ECRITURES.CompteLib, ECRITURES.CompteAuxNum, ECRITURES.CompteAuxLib, ECRITURES.PièceRéf, ECRITURES.PièceDate, ECRITURES.EcritureLib, ECRITURES.Débit, ECRITURES.Crédit, ECRITURES.ValidDate, ECRITURES.Solde, ECRITURES.AAAAMM INTO ACHATS_DOUBLONS IN 'C:\ANA-FEC.accdb' FROM (SELECT ECRITURES.CodeEntité, ECRITURES.CompteAuxNum, ECRITURES.PièceRéf, ECRITURES.Solde, ECRITURES.TypeJournal, Count(ECRITURES.CodeEntité) AS CompteDeCodeEntité FROM ECRITURES WHERE ((Not (ECRITURES.CompteAuxNum) Is Null) AND ((ECRITURES.TypeJournal)="ACHATS")) GROUP BY ECRITURES.CodeEntité, ECRITURES.CompteAuxNum, ECRITURES.PièceRéf, ECRITURES.Solde, ECRITURES.TypeJournal HAVING ((Count(ECRITURES.CodeEntité))<>1)) AS Requête1 INNER JOIN ECRITURES ON (Requête1.TypeJournal = ECRITURES.TypeJournal) AND (Requête1.Solde = ECRITURES.Solde) AND (Requête1.PièceRéf = ECRITURES.PièceRéf) AND (Requête1.CompteAuxNum = ECRITURES.CompteAuxNum) AND (Requête1.CodeEntité = ECRITURES.CodeEntité) ORDER BY Requête1.CodeEntité, Requête1.CompteAuxNum, Requête1.PièceRéf, Requête1.Solde;
L’automatisation de la détection des doublons peut efficacement être mise en œuvre à l’aide d’une requête SQL.
La requête se décompose ainsi :
Une sous-requête (Requête1) recherche les lignes d’écriture d’achats ((ECRITURES.TypeJournal)=”ACHATS”) contenant un code tiers (Not (ECRITURES.CompteAuxNum) Is Null) et compte (Count) le nombre de lignes regroupant (GROUP BY) chaque champ Code entité / Code tiers / Référence pièce / Solde (ce contrôle étant opéré simultanément pour l’ensemble des entités du groupe) (est donc identifié comme doublon un achat opéré sur un même fournisseur, justifié par un document comptable portant la même référence et le même montant) : GROUP BY ECRITURES.CodeEntité, ECRITURES.CompteAuxNum, ECRITURES.PièceRéf, ECRITURES.Solde, ECRITURES.TypeJournal. Seuls les résultats en doublon (ou plus) sont repris par la requête (HAVING ((Count(ECRITURES.CodeEntité))<>1)).
SELECT ECRITURES.CodeEntité, ECRITURES.CompteAuxNum, ECRITURES.PièceRéf, ECRITURES.Solde, ECRITURES.TypeJournal, Count(ECRITURES.CodeEntité) AS CompteDeCodeEntité FROM ECRITURES WHERE ((Not (ECRITURES.CompteAuxNum) Is Null) AND ((ECRITURES.TypeJournal)="ACHATS")) GROUP BY ECRITURES.CodeEntité, ECRITURES.CompteAuxNum, ECRITURES.PièceRéf, ECRITURES.Solde, ECRITURES.TypeJournal HAVING ((Count(ECRITURES.CodeEntité))<>1)) AS Requête1
Puis, à partir de cette sous-requête, sont extraites l’ensemble des lignes d’écritures qui apparaissent en doublon (INNER JOIN ECRITURES ON (Requête1.TypeJournal = ECRITURES.TypeJournal) AND (Requête1.Solde = ECRITURES.Solde) AND (Requête1.PièceRéf = ECRITURES.PièceRéf) AND (Requête1.CompteAuxNum = ECRITURES.CompteAuxNum) AND (Requête1.CodeEntité = ECRITURES.CodeEntité)) ; ce résultat étant trié dans l’ordre des entités, des comptes auxiliaires… (ORDER BY Requête1.CodeEntité, Requête1.CompteAuxNum, Requête1.PièceRéf, Requête1.Solde).
La clause INTO ACHATS_DOUBLONS IN ‘C:\ANA-FEC.accdb’ va stocker le résultat de cette requête dans la table nommée ACHATS_DOUBLONS de la base de données ACCESS ANA-FEC situé dans la racine du disque dur (C:\). Ne reste plus qu’à exploiter le contenu de cette table.
Appliquée à plusieurs millions de lignes d’écritures, cette requête ne met que quelques instants à s’exécuter.
Approfondir le sujet : Maîtriser ACCESS / Maîtriser le langage de requête SQL / Analyse de données


Derniers articles parBenoît RIVIERE (voir tous)
- Recueil des normes comptables (PCG) à jour au 1er janvier 2023 - lundi 15 mai 2023
- “Probité”, nouvel outil d’auto-apprentissage en ligne de l’AFA et du CNFPT - lundi 24 avril 2023
- Les règles d’or de la sauvegarde - lundi 17 avril 2023
- TVA : Approfondir les points particuliers - lundi 3 avril 2023
- Le régime de la TVA sur la marge : 7ème partie – Calcul en ligne de la TVA sur la marge globale - jeudi 30 mars 2023