Archives pour la catégorie Access

[Access SQL] Trouver l’enregistrement précédent

C’est tellement simple sous Excel de retrouver la valeur « précédente » qui se trouve à la cellule de la ligne « au-dessus ».
Seulement Ici, ma table Access ressemble à ça :

J’ai plusieurs véhicules dont je relève le compteur à chaque plein. [Id] est un numéro auto dont je ne peux évidemment pas me servir pour retrouver le plein « précédent ».
Dans une table de base de données, les lignes sont un peu comme des billes mélangées dans un sac et retrouver la ligne « précédente » dans ces conditions n’a pas de sens.

Et pourtant il faudrait obtenir :

Sauriez-vous trouver le jeu de requête/sous-requête pour obtenir le résultat ci-dessus ?
Uniquement avec les assistants, bien sûr ! QBEO*
*Query By Example Only ;-)

Lire la suite

[Access] La relation de type « un à un » (suite)

suite à l’article: [Access] La relation de type « un à un »,

voici pourtant ce qu’on peut lire dans le livre : Access 2007 et VBA (paru en 03/2008)
par Bernard Minot, Jean-Michel Léry

dont l’extrait ci-dessous est disponible chez Google books à la page 42:

Les relations de 1 à 1
Nous supposons la présence de deux tables contenant des données relatives, par exemple, à vos contacts professionnels, d’une part, et à vos contacts personnels, d’autre part. La conjugaison de ces deux tables peut se décliner ainsi :
– Un contact professionnel correspond soit à zéro, soit à un et au plus un contact personnel (un partenaire commercial peut aussi être un ami !) ;
– Un contact personnel correspond soit à zéro, soit à un et au plus un contact personnel (même raison).
Nous sommes ici devant une relation de un à un. A priori, et pourvu que les uns et les autres n’aient pas de rôle particulier à jouer dans le système d’information à mettre en place, il n’y a aucune raison pour ne pas fusionner purement et simplement les deux fichiers. La seule opération à mettre en place avant ladite fusion consiste à créer une propriété particulière à la table qui fusionne les deux fichiers pour distinguer les « commerciaux » des « amis personnels ». Cet exemple peut être généralisé : les relations de un à un dans une base bien conçue n’existent pas(1).

(1). Seul cas de figure possible : si la table doit compter plus de 255 colonnes, il sera nécessaire de créer une table « fille ».

grrrmffff…

[Access SQL] le cas DISTINCTROW

Si vous avez déjà cherché des solutions pour éliminer les doublons dans vos tables/requêtes, vous connaissez probablement déjà le mot-clé DISTINCT qui fait partie de la norme SQL.

Mais connaissez-vous le prédicat Access DISTINCTROW ?

Certains, oui :
DISTINCTROW ou l’exemple parfait de l’absurdité d’Access !

Rideau… ;-)

Lire la suite

[Access SQL] Requêtes complexes avec l’assistant QBE (Exercice 1)

Le but des exercices proposés dans cette rubrique est de s’exercer à la construction de requêtes complexes sous Access.
J’essaierais donc de proposer des exercices couvrant le maximum des possibilités offertes par le langage SQL Access, c.-à-d. des jointures internes, externes, des fonctions de regroupement, des filtres, des sous-requêtes, des analyses croisées etc.

Par contre j’aimerais que les solutions aux exercices restent à la portée du débutant.
Le gros code SQL tout rouge et qui tâche est donc proscrit ici tout comme l’usage de fonctions VBA personnalisées.

Seules les solutions obtenues avec l’assistant QBE (Query By Example) d’Access seront retenues.
Lire la suite