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

FAQ MS-Access

FAQ MS-AccessConsultez toutes les FAQ

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

 
OuvrirSommaireSpécificités d'Access 2007Pièces jointesPièces jointes SQL

Impossible de se contenter du nom du fichier, deux fichiers peuvent être nommés différemment et contenir les mêmes données.

Pour accéder aux données d'un fichier, il faut lire le champ FileData du champ Pièce jointe. Ce champ est en lecture seule, il ne peut être modifié qu'avec l'assistant pièces jointes d'Access ou bien en VBA.

Son contenu n'est pas explicite et correspond aux données binaires compressées par Access.

De plus, il est impossible d'effectuer un regroupement ou un test d'égalité dessus. Le seul moyen de tester des doublons est donc d'utiliser VBA.

Créé le 28 juillet 2006  par Tofalu

Soit la table tblClient(,Nom,Prenom,Fichiers).

Pour supprimer les fichiers d'une certaine extension, il faut appliquer un filtre sur le champ FileType.

 
Sélectionnez
DELETE Fichiers.FileType
FROM tblClient
WHERE tblClient.N°=2 AND Fichiers.FileType="txt";

Ici, nous supprimons tous les fichiers .txt du client n° 2.

Vous remarquerez que le nom du champ figurant après le DELETE est le même que celui dans le WHERE. Ceci est impératif !

Pour exemple, cette requête :

 
Sélectionnez
DELETE Fichiers.FileName
FROM tblClient
WHERE tblClient.N°=2 AND Fichiers.FileType="txt";

ne tient pas compte de l'extension et supprime tous les fichiers du client n° 2.

Créé le 28 juillet 2006  par Tofalu

Lien : [Access 2007] Comment supprimer toutes les pièces jointes d'un certain type ?

Soit la table tblClient(,Nom,Prenom,Fichiers).

Il suffit d'exécuter une requête Delete sur le champ Fichiers pour le bon enregistrement.

 
Sélectionnez
DELETE Fichiers.FileName
FROM tblClient
WHERE=2;
;

Ici, nous supprimons tous les fichiers du client n° 2.

Créé le 28 juillet 2006  par Tofalu

Lien : [Access 2007] Comment vider un champ de type Pièce jointe en VBA ?
Lien : [Access 2007] Comment supprimer une pièce jointe en SQL ?

Soit la table tblClient(,Nom,Prenom,Fichiers).

Deux conditions sont nécessaires à la suppression d'une pièce jointe :

  • se positionner sur le bon enregistrement ;
  • supprimer le fichier désiré.

Ces deux conditions sont réunies dans la clause WHERE de la requête :

 
Sélectionnez
DELETE Fichiers.FileName
FROM tblClient
WHERE tblClient.N°=2 AND Fichiers.FileName="Lucy1.txt";

Ici, nous supprimons le fichier Lucy1.txt du client n° 2.

Créé le 28 juillet 2006  par Tofalu

Lien : [Access 2007] Comment supprimer toutes les pièces jointes d'un certain type ?
Lien : [Access 2007] Comment vider un champ de type Pièce jointe en VBA ?

Soit la table tblClient(,Nom,Prenom,Fichiers).

Fichiers est un champ de type Pièce jointe.

L'extension d'une pièce jointe est disponible dans son champ FileType.

Par exemple, cette requête retourne la liste des extensions ainsi que le nombre de fichiers pour chacune d'elles.

 
Sélectionnez
SELECT Fichiers.FileType, Count(Fichiers.Filename) AS [Nombre de fichiers]
FROM tblClient
GROUP BY Fichiers.FileType
HAVING Count(Fichiers.Filename)<>0;
Créé le 28 juillet 2006  par Tofalu

Soit la table tblClient(,Nom,Prenom,Fichiers).

Fichiers est un champ de type Pièce jointe.

Pour lister les fichiers d'un champ de type Pièce jointe, il est nécessaire de lire la valeur du sous-champ FileName .

En effet, la requête :

 
Sélectionnez
SELECT N°, Fichiers
FROM tblClient

Retourne les résultats avec les pièces jointes mises en forme à l'aide de l'assistant de gestion de pièces jointes. Alors que la requête :

 
Sélectionnez
SELECT N°, Fichiers.FileName
FROM tblClient

Retourne le nom du fichier comme du simple texte.

Créé le 28 juillet 2006  par Tofalu

Soit la table tblClient(,Nom,Prenom,Fichiers).

Fichiers est un champ de type Pièce jointe.

Pour compter un nombre de fichiers, il faut utiliser la fonction Count sur un sous-champ de Fichiers.

 
Sélectionnez
SELECT N°, Count(Fichiers.Filename) AS [Nombre de fichiers]
FROM tblClient
Créé le 28 juillet 2006  par Tofalu

Soit la table tblClient(,Nom,Prenom,Fichiers).

Fichiers est un champ de type Pièce jointe.

Pour compter un nombre de fichiers, il faut utiliser la fonction Count sur un sous-champ de Fichiers.

Un regroupement sur la clé primaire permet de compter par enregistrement.

 
Sélectionnez
SELECT N°, Count(Fichiers.Filename) AS [Nombre de fichiers]
FROM tblClient
GROUP BY N°;
Créé le 28 juillet 2006  par Tofalu

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 © 2013 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.