SQL : détecter les achats comptabilisés en double

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.

Continue reading ‘SQL : détecter les achats comptabilisés en double’ »

ACCESS (SQL) : figer le résultat d’une requête dans une table

Les requêtes SQL permettent d’extraire des informations de bases de données. Le résultat de ces requêtes peut lui-même être interrogé par une autre requête (sous-requête) et ainsi de suite. Appliquée à des volumes de données conséquents, cette pratique de sous-requêtes entraîne des temps de traitements qui s’allongent à chaque niveau d’interrogation. Pour pallier à cet inconvénient, il est possible de figer le résultat des requêtes dans une table avant interrogation par la requête suivante.

SELECT Champs et calculs INTO TableDestination FROM TableOrigine

L’assertion INTO TableDestination envoie le résultat de la requête SELECT… FROM TableOrigine dans une nouvelle table nommée TableDestination.

Continue reading ‘ACCESS (SQL) : figer le résultat d’une requête dans une table’ »

SQL : obtenir le numéro du jour de la semaine d’une date avec la fonction DAYOFWEEK

La fonction SQL DAYOFWEEK(date) fournit le numéro du jour de la semaine de la date indiquée en paramètre.

Le numéro renvoyé par la fonction DAYOFWEEK s’interprète ainsi :

1 = dimanche, 2 = lundi…, 7 = samedi.

Exemple :

SELECT DAYOFWEEK(EcritureValidDate) AS NumJourSem, EcritureNum
FROM ECRITURES
WHERE DAYOFWEEK(EcritureValidDate)=1 OR DAYOFWEEK(EcritureValidDate)=7;

Continue reading ‘SQL : obtenir le numéro du jour de la semaine d’une date avec la fonction DAYOFWEEK’ »

VBA, SQL : conversion d’une valeur numérique en une chaîne de caractères

La conversion de données (ou transtypage) est commune en programmation.

Pour convertir des valeurs numériques en données texte, les langages VBA et SQL utilisent la fonction Cstr.

En VBA :

Dim Num as Integer
Dim Ch as String 
Num = 12 
Ch = Cstr(Num)

En SQL, la conversion d’une valeur numérique en une chaîne de caractères passe également par la fonction Cstr :

Continue reading ‘VBA, SQL : conversion d’une valeur numérique en une chaîne de caractères’ »

Excel : arrondir un nombre

L’arrondi est d’usage quotidien en comptabilité, que ce soit pour un calcul de montant de TVA, une base d’imposition…

Logo Excel

Excel propose différentes fonctions pour remplir cette tâche, la plus commune étant, tout simplement ARRONDI :

ARRONDI ( expression ; nbdécimales)

Continue reading ‘Excel : arrondir un nombre’ »