IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ access 2007

FAQ access 2007Consultez toutes les FAQ

Nombre d'auteurs : 1, nombre de questions : 75, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireChamps multi-valués

Les champs multi-valués permettent de stocker plusieurs valeurs dans un seul champ. Ils remplacent ainsi les tables utilisées lors des relations plusieurs à plusieurs.

Prenons l'exemple d'une table de chauffeur. Chacun d'eux possède un ou plusieurs permis de conduire.

Avant nous aurions eu cette structure :

Chauffeur(NumChauffeur,NomChauffeur,PrenomChauffeur)
Detenir(NumChauffeur,Permis)

Avec la table Detenir qui contenait :

1,C
1,B
2,C
2,E
3,B

Maintenant nous avons :

Chauffeur(NumChauffeur,NomChauffeur,PrenomChauffeur,Permis)

Avec la table Chauffeur qui contient

1,NORD,Paul,C;B
2,FERT,Lucy,C;E

Créé le 27 juin 2006  par Christophe Warin

Lien : Où trouver des ressources sur les champs multi-valués

Les champs multi-valués étant représentés comme des sous-recordset, le nombre de valeurs ne semble donc pas limité. En tout cas, je suis parvenu à y insérer plus de 100000 valeurs sans erreurs. Attention toutefois, il est évident qu'un grand nombre de valeurs fera chuter rapidement les performances.

Créé le 27 juin 2006  par Christophe Warin

Dans une requête, un champ multi-valué affiche uniquement la valeur de la colonne liée de sa zone de liste.

Exemple :

tbl_eleve(IDEleve,Nom,Prenom)
tbl_classe(IDClasse,nomClasse,Eleves)

Où Eleves est un champ multi-valué dont la source de la zone de liste est :

 
Sélectionnez
SELECT IDEleves, Nom,Prenom FROM tbl_eleve

En toute logique, une requête basée sur la table tbl_classe affichera les numéros des élèves et non leur nom. Pour parer ce phénomène, il faut utiliser une jointure entre les deux tables.

 
Sélectionnez
SELECT tbl_classe.NomClasse, tbl_eleve.Nom, tbl_eleve.Prenom, tbl_classe.Annee
FROM tbl_classe 
   INNER JOIN tbl_eleve 
    ON tbl_classe.Eleves.Value = tbl_eleve.ID;
Créé le 27 juin 2006  par Christophe Warin

Un test de performance présenté dans le tutoriel de Christophe Warin indique que lorsque le volume de données atteint les 100000 lignes, les performances sont médiocres. Le temps de traitement est environ 10 fois plus long qu'avec une relation 1-N.

Toutefois, impossible de se limiter à un tel test sur si peu d'enregistrements. Aussi, sur un jeu beaucoup plus vaste (200 classes pour 10000 élèves et en moyenne 10 élèves par classe), il s'avère que l'utilisation des champs multi-valués devient réellement pénalisante. Pour preuve, un seul appel de la requête R03 est exécuté en 0.8 seconde, alors que l'appel de R02 demande plus de 10 secondes.

Créé le 27 juin 2006  par Christophe Warin

www.developpez.com vous propose :

A la découverte d'Access 2007 : les champs multi-valués

Découvrez et jugez une nouveauté importante de la nouvelle version annoncée de Microsoft Access V12 (Access 2007). Cet article est aussi bien destiné au développeur débutant souhaitant se familiariser avec les possibilités d'Access qu'au développeur professionnel désirant se faire son propre opinon sur le nouveau moteur de base de données Access.

[Access 2007 - Nouveautés] Les champs multi-valués

Un débat sur les champs multi-valués. Venez-y vous exprimer et donner votre avis et vos conseils

Créé le 27 juin 2006  par Christophe Warin

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.