FAQ access 2007
FAQ access 2007Consultez toutes les FAQ
Nombre d'auteurs : 1, nombre de questions : 75, dernière mise à jour : 15 juin 2021
- Comment compter le nombre de valeurs distinctes d'un champ multi-valué sur l'ensemble la table en SQL ?
- Comment compter le nombre de valeur d'un champ multi-valué en SQL?
- Comment filtrer les enregistrements en fonction des valeurs d'un champ multi-valué ?
- Comment lister les valeurs distinctes d'un champs multi-valué sur l'ensemble de la table en SQL ?
- Comment savoir si un champ multi-valué est vide en SQL ?
- Comment supprimer toutes les valeurs d'un champs multi-valué ?
- Comment supprimer une valeur d'un champs multi-valué ?
- Est il possible de créer un nouvel enregistrement avec un champ multi-valué en SQL ?
- Est il possible d'insérer une valeur dans un champs multi valué en SQL ?
Soit la table suivante :
- NumChauffeur : NuméroAuto
- NomChauffeur : Texte(20)
- PrenomChauffeur : Texte(20)
- PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées
La requête permet de compter le nombreux de permis différents attribués
SELECT
Count
(
PermisDistinct) AS
NombreDePermis
FROM
(
SELECT
DISTINCT
(
PermisChauffeur.Value
) AS
PermisDistinct
FROM tbl_chauffeur)
Soit la table suivante :
- NumChauffeur : NuméroAuto
- NomChauffeur : Texte(20)
- PrenomChauffeur : Texte(20)
- PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées
La requête suivante liste les chauffeurs ainsi que le nombre de permis qu'ils possèdent
SELECT
NomChauffeur, PrenomChauffeur, (
SELECT
Count
(
PermisChauffeur.Value
)
FROM
tbl_chauffeur WHERE
NumChauffeur=
T.NumChauffeur)
FROM
tbl_chauffeur AS
T;
Lien : Comment savoir si un champ multi-valué est vide en SQL ?
Lien : Comment compter le nombre de valeurs distinctes d'un champ multi-valué sur l'ensemble la table en SQL ?
Lien : Comment compter le nombre de valeurs d'un champ multi-valué en VBA ?
Soit la table suivante :
- NumChauffeur : NuméroAuto
- NomChauffeur : Texte(20)
- PrenomChauffeur : Texte(20)
- PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées
La requête suivante permet de lister les chauffeurs possédant le permis D
SELECT
NomChauffeur,PrenomChauffeur
FROM
tbl_chauffeur
WHERE
PermisChauffeur.Value
=
"D"
Cette deuxième requête retourne les chauffeurs possédant à la fois le permis D et le permis E
SELECT
NomChauffeur, PrenomChauffeur
FROM
tbl_chauffeur
WHERE
PermisChauffeur.Value
=
"D"
AND
PermisChauffeur.Value
=
"E"
;
Enfin cette troisième permet de lister les chauffeurs titulaires des permis D ou E ou bien les deux
SELECT
NomChauffeur, PrenomChauffeur
FROM
tbl_chauffeur
WHERE
PermisChauffeur.Value
=
"D"
OR
PermisChauffeur.Value
=
"E"
;
Pour cette dernière requête il aurait été possible d'utiliser un critère avec IN
Soit la table suivante :
- NumChauffeur : NuméroAuto
- NomChauffeur : Texte(20)
- PrenomChauffeur : Texte(20)
- PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées
La requête permet de lister les permis attribués
SELECT
DISTINCT
(
PermisChauffeur.Value
)
FROM tbl_chauffeur
Lien : Comment savoir si un champ multi-valué est vide en SQL ?
Lien : Comment compter le nombre de valeur d'un champ multi-valué en SQL?
Soit la table suivante :
- NumChauffeur : NuméroAuto
- NomChauffeur : Texte(20)
- PrenomChauffeur : Texte(20)
- PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées
Il existe 3 méthodes pour lister les Chauffeurs ne possédant aucun permis :
SELECT
NomChauffeur, PrenomChauffeur
FROM
tbl_chauffeur
WHERE
PermisChauffeur.Value
IS
NULL
;
Ou
SELECT
NomChauffeur, PrenomChauffeur
FROM
tbl_chauffeur
WHERE
IsNull
(
PermisChauffeur.Value
)
;
Ou encore
SELECT
NomChauffeur, PrenomChauffeur
FROM tbl_chauffeur AS
T
WHERE (
SELECT
Count
(
PermisChauffeur.Value
) FROM tbl_chauffeur WHERE NumChauffeur=
T.NumChauffeur
)=
0
;
Lien : Comment compter le nombre de valeurs distinctes d'un champ multi-valué sur l'ensemble la table en SQL ?
Lien : Comment compter le nombre de valeur d'un champ multi-valué en SQL?
Soit la table suivante :
- NumChauffeur : NuméroAuto
- NomChauffeur : Texte(20)
- PrenomChauffeur : Texte(20)
- PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées
Cette exemple va supprimer l'ensemble des permis du chauffeur n°2
DELETE PermisChauffeur.Value
FROM tbl_chauffeur
WHERE numChauffeur=
2
Lien : Comment supprimer une valeur d'un champs multi-valué ?
Lien : Comment supprimer toutes les valeurs d'un champs multi-valué en VBA ?
Lien : Comment supprimer une valeur d'un champs multi-valué en VBA ?
Soit la table suivante :
- NumChauffeur : NuméroAuto
- NomChauffeur : Texte(20)
- PrenomChauffeur : Texte(20)
- PermisChauffeur : Texte(1) - Liste de choix de valeurs : A;B;C;D;E - Valeurs multiples autorisées
Cette exemple va supprimer le permis D du chauffeur n°1
DELETE PermisChauffeur.Value
FROM tbl_chauffeur
WHERE numChauffeur=
1
AND
PermisChauffeur.Value
=
"D"
Lien : Comment supprimer toutes les valeurs d'un champs multi-valué ?
Lien : Comment supprimer une valeur d'un champs multi-valué en VBA ?
Lien : Comment supprimer toutes les valeurs d'un champs multi-valué en VBA ?
Non, il n'est pas possible de créer une requête INSERT INTO avec dans la liste des champs un champ de type multi-valué.
Par exemple, cette requête n'est pas valide
INSERT
INTO
tbl_chauffeur (
NomChauffeur,PrenomChauffeur,PermisChauffeur)
VALUES
(
"HEUR"
,"Marc"
,(
SELECT
PermisChauffeur FROM
Chauffeur WHERE
numChauffeur=
2
))
Elle aurait pourtant servi à dupliquer les permis du chauffeur n°2
La seule solution est de créer l'enregistrement sans le champ multi-valué.
Lien : Comment créer un champ à valeurs multiples de type "Table/requête" ?
Lien : Comment créer un champ à valeurs multiples de type "Table/requête" ?
Tout comme il est impossible de créer un enregistrement en fixant le champ multi-valué, il est impossible d'ajouter une valeur à ce champ. En effet les requêtes INSERT INTO refusent cette fonctionnalité.
Solution : passer par VBA
Lien : Comment ajouter une valeur d'un champs multi-valué en VBA ?