Quelques astuces concernant les tables

Index

Indexer un champ consiste à créer une nouvelle table (système, totalement invisible) qui permettra d'améliorer les perfromances de tri.

Il est donc conseillé d'indexer les champs qui vont souvent servir comme critères de tri ou de recherche.

Le prix à payer est :

- Augmentation de la taille de la base de données

- Réduction des performances lors d'ajout ou de modification d'enregistrements

Mais ces inconvénients sont ridicules comparé au gain de vitesse de tri et de recherche

Il est également subtil d'indexer tous les champs qui servent de liens entre tables, puisque lors de requêtes multi-tables, Jet devra donc trier les enregistrements pour donner les enregistrements correspondants

Masques de saisie

0 Chiffre 0 à 9 obligatoire, signes + et - refusés
9 Chiffre ou espace facultatifs, signes + et - refusés
# Chiffre ou espace (entrée facultative, positions vierges converties en espaces en mode édition, mais les espaces sont effacés lors de la sauvegarde des données, signes + et - acceptés).
L Lettre (A à Z (ou a à z) obligatoire, pas d'espace).
? Lettre (A à Z (ou a à z) facultative (espace pour passer à la lettre suivante)).
A Lettre ou chiffre obligatoire
a Lettre ou chiffre facultatif.
& Caractère quelconque ou espace obligatoires
C Caractère quelconque ou espace facultatifs.
. , : ; - / Séparateur de décimales, de milliers, de date et d'heure (le caractère effectivement utilisé dépend des paramètres de la boîte de dialogue Propriétés pour Paramètres régionaux du Panneau de configuration Windows).
< Convertit tous les caractères en minuscules.
> Convertit tous les caractères en majuscules.
! NE FONCTIONNE PAS

Permet un remplissage du masque de saisie à partir de la droite et non de gauche à droite, lorsque les caractères situés à gauche du masque de saisie sont facultatifs. Les caractères tapés dans le masque le remplissent toujours de la gauche vers la droite. Le point d'exclamation peut être placé n'importe où dans le masque de saisie.

"abc" Affiche le texte littéral entre guillemets

Noms de champs déconseillés

Date

Nom

Compte

Type

Sont des mots réservés d'Access. Utiliser ces champs dans des tables crée forcément des problèmes.

Dans le cas ou on décide absolument d'utiliser un tel nom de champ, il sera ensuite nécessaire d'y accéder comme ceci (en programmation, ou en champs calculé de formulaire ou d'état)

Attacher des tables

Il est possible d'utiliser dans une base de données des tables qui proviennent d'une autre base de données. Pour ce faire, il suffit d'aller dans Fichier/Attacher une table, sélectionner ensuite la base de données source, la ou les tables e, question et tout va bien. Tout ira ensuite également bien lors de la réouverture de la base de données qui va rechercher des tables ailleurs.

Ce qui se passe moins bien, c'est quand on déplace les bases de données qui contiennent les tables sources dans un autre répertoire. Dans ce cas, Access ne trouve plus les tables attachées. Dans ce cas, il faut aller dans Fichier/Compléments/Gestionnaires d'attaches, et indiquer le nom du nouveau répertoire.

Il est donc possible, sans problème de

Ce système permet notamment d'avoir les données dans un fichier, et les requêtes formulaires et états dans un autre.

Compteur : Imposer des valeurs

Quand on définit un champ compteur, on peut avoir des trous. Pour les enlever, il suffit de supprimer le champ compteur, et de le recréer.

Le faire revenir à 1

Astuce 1

Une astuce pour faire revenir tous les compteurs soit à 1, soit à la plus petite valeur possible : Il suffit de compacter la base de données. Si la base de données est vide, tous les compteurs sont ramenés à 1, sinon, ils sont ramenés au plus petit chiffre possible (le chiffre juste après le dernier enregistrement)

Astuce 2

Lors de tests, on empile les numéros de compteur. Si on veut faire recommencer les numéros à 1, il faut :

Le faire commencer par un autre nombre que 1

Imaginons une base de données vide.

1. Créer une table par exemple CLIENT, avec comme champs un compteur clé primaire (NoClient) et un nom (Nom). Laisse les vides.

2. Créer une table par exemple TMP avec comme champs un numérique entier long pas clé primaire (NoCLient) dans lequel tu mets le chiffre de base (p.ex. 100)

3. Créer une nouvelle requête vierge avec comme tables CLIENT et TMP

4. Casser la liaison entre les 2 NoClient (avec delete)

5. Mettre dans le premier champ NoClient de la table TMP

6. Faire Requête/Ajout

7. A ce moment, une ligne doit s'ajouter en bas avec comme titre AJOUTER A: et le champ NoClient (qui provient cette fois de la table CLIENT

8. Changer les titres des champs et choisir en haut TMP.* et en bas CLIENT.* pour sélectionner tous les champs

9. Lancer la requête. Ca doit marcher