Importation de données – Episode 1

Dans cette nouvelle série, nous allons traiter un scénario d’importation de données, étape par étape.

Comme c’est souvent le cas malheureusement, les données fournies en amont d’Access ne sont pas conformes aux tables à alimenter. On va donc voir comment nettoyer tout ça !

Le scénario

Les tables

On dispose de 2 tables simplifiées pour l’exemple : une table de voitures, et une table de couleurs. Un coloris peut s’appliquer à plusieurs voitures, une voiture précise n’a qu’une seule couleur. Idéalement, il nous faudrait sans doute une table des marques, et une autre des modèles, mais le but n’est pas là pour la démo.

voitures_relations.png

  • Les clefs primaires Numéro Voiture et Id Couleur sont des NuméroAuto.
  • Le Id Couleur de la table Voitures est donc un Numérique/Entier long.
  • Les autres champs sont de type Texte.

Les données

  • La table des voitures est vide pour l’instant, mais elle pourrait être renseignée, peu importe !
  • La table des couleurs contient seulement une couleur.voitures_couleurs.png

Le fichier à importer

De façon périodique, on reçoit un fichier de voitures, qui va devoir être importé dans Access. Le fichier est un fichier « texte délimité » de cette forme :

"Code";"Marque";"Modèle";"Coloris"
1;"Volkswagen";"Polo";"Bleu"
2;"Volskwagen";"Polo";"Rouge"
3;"Renault";"Megane";"Bleu"
4;"Peugeot";"3008";"Noir"
5;"Opel";"Zafira";"Bleu"

Comme vous le voyez, il y a quelques défauts dans le fichier :

  • Les noms de champs (cf. première ligne du fichier) ne correspondent pas aux champs de la table Access.
  • La couleur est donnée sous forme de texte, alors que dans Access, le champ [tbl Voitures].[Id Couleur] est un Numérique/Entier long.
  • Certaines couleurs fournies n’existent pas dans la table actuelle des couleurs, il va falloir les créer.
  • Par contre, il ne faut pas recréer une couleur qui existe déjà, comme le rouge.

Bien sûr, il serait plus pratique de faire en sorte que le format du fichier texte corresponde à la structure de la table. Mais ça, c’est la théorie ! En pratique, on va dire que vous n’avez pas le choix… 🙂

Info
La procédure est détaillée ici pour Access 2007/2010, mais toutes les opérations sont adaptables aux versions précédentes d’Access.

Importation du fichier

Lorsque l’importation est complexe, vous ne pouvez sans doute pas importer vos données directement dans la table finale. Il vaut mieux :

  1. Importer le fichier dans une table temporaire.
  2. Retraiter les données de cette table par des requêtes.
  3. Transférer les données « nettoyées » dans la ou les tables finales.
  4. Automatiser tout ça ensuite, parce que ça va vite nous emm… bêter 🙂

Dans cet article, nous allons seulement nous occuper de l’importation. Le retraitement viendra ensuite, patience !

  1. Je suppose que votre base ne contient que les 2 tables données plus haut.
  2. Dans Access 2007 ou 2010, activez l’onglet Données externes du ruban.
  3. Cliquez sur le bouton Fichier texte.voitures_importer_etape1.png
  4. Dans la boîte de dialogue, utilisez le bouton Parcourir (1) pour sélectionner le fichier texte sur votre disque dur. Son nom apparaît ensuite dans la boîte (2). Dans les options (3), gardez celle qui est proposée : « Importer les données source dans une nouvelle table« .voitures_importer_etape2.png
  5. Validez par OK. Une seconde boîte s’affiche, avec déjà un extrait de votre fichier. Choisissez le format (délimité ou largeur fixe) et faites Suivant.voitures_importer_etape3.png
  6. Sélectionnez le délimiteur (1) qui sépare les colonnes dans votre fichier texte ; dans notre cas, il s’agit du point-virgule. Les données devraient se réorganiser proprement à l’écran.
    Précisez aussi si votre fichier contient une ligne pour les titres de colonnes (2) ; c’est aussi notre cas. La première ligne du fichier texte passe en gris, elle servira à définir les champs de notre future table temporaire.voitures_importer_etape4.png
  7. Vous pouvez, pour chaque colonne, (re)définir le nom, le type de données, l’index… ou éventuellement choisir de ne pas importer la colonne. Dans notre cas, les réglages proposés sont corrects, on va même conserver les noms de colonnes.voitures_importer_etape5.png
  8. Choisissez ensuite une clef primaire pour la table temporaire. Idéalement, votre fichier texte peut contenir la colonne adéquate (c’est notre cas, quelle chance !), mais vous pouvez faire d’autres choix. De toute façon, il s’agit ici d’une table temporaire…voitures_importer_etape6.png
  9. Donnez un nom à votre table temporaire (ici : tbl Voitures TEMP).voitures_importer_etape7.png
  10. Une dernière étape vous propose de mémoriser les réglages. Pour l’instant, cliquez seulement sur Fermer.

Ouf ! C’est terminé, votre base de données contient maintenant une table temporaire tbl Voitures TEMP. Apuka la retraiter ! 🙂

voitures_importer_fin.png

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *