Transformer un champ Lien hypertexte en champ Texte

Dans une table, j’ai un champ de type Lien hypertexte. Mais ce champ me pose régulièrement des soucis lors d’exportation de données vers des logiciels externes (comme Excel). Je souhaiterais remplacer ce champ par un champ Texte simple… en conservant bien sûr tous les données déjà saisies. Comment faire ?


Avant de démarrer…

Nous allons ici effectuer une modification de structure sur votre table. Anodine, mais quand même… Du coup, pensez à tous les effets que cela pourrait avoir sur votre base de données, si toute votre logique actuelle repose sur les liens hypertexte.

En vous reportant à l’article Nettoyer des liens hypertexte à la volée, vous pouvez conserver votre champ Lien hypertexte, sans modifier l’application, et tout en l’exportant correctement vers Excel.

Modification de la table

Si vous êtes arrivé jusqu’ici, c’est que vous avez finalement décidé de modifier votre table. Soit !

  1. Ouvrez votre table en mode Création.
  2. Positionnez-vous sur le champ de type Lien hypertexte à modifier.
  3. Changez le type en : Texte.
  4. Définissez une taille assez grande pour le champ (les 50 caractères proposés par Access seront-il suffisants ?)
  5. Enregistrez la table. Access vous prévient que des données pourraient être perdues suite à la transformation.

On pourrait imaginer que cela se termine là. En fait, Access a bien transformé le champ, mais il a repris tout le contenu du lien hypertexte d’origine, avec ses signes # parasites (voir l’article Nettoyer des liens hypertexte à la volée pour plus de détails). J’imagine que les données obtenues ne vous intéressent pas : seules les adresses pures doivent être conservées. Dans ce cas, faites encore ceci :

  1. Prévoyez peut-être une sauvegarde de votre base avant de lancer les hostilités !
  2. Recopiez dans un module standard tout le code donnée dans l’article Nettoyer des liens hypertexte à la volée.
  3. Créez une nouvelle requête basée sur la table concernée.
  4. Sur le ruban d’Access 2007/2010 (ou les icônes d’Access 2003), cliquez sur l’icône Mise à jour, pour transformer votre requête… en requête de Mise à jour.
  5. Déposez le champ Email sur la grille de requête.
  6. Dans la case Mise à jour, tapez comme formule :
    GetHyperlink([Email])
    Entre crochets, le nom de votre champ (adaptez si nécessaire).
  7. Cliquez sur le bouton Exécuter pour déclencher la mise à jour.

L’opération est terminée, la table actualisée. Vous n’êtes pas obligé de conserver la requête de mise à jour…

Version SQL

En SQL, vous auriez obtenu le même résultat en tapant :

Vous aimerez aussi...

2 réponses

  1. Hervé Inisan dit :

    JackBxl > Ça confirme malheureusement ce que dit l’article : les liens hypertexte peuvent poser problème selon les cas d’utilisation. 🙁

    Au cas où les fichiers pourraient encore être déplacés, je pense qu’il serait mieux :

    1. De remplacer effectivement les liens hypertexte par un chemin texte simple.
    2. De supprimer la partie « Chemin » complète, sauf le nom final du fichier (nom_du_fichier.ext).
    3. De faire en sorte que le chemin soit ajouté automatiquement (d’une manière ou d’une autre, VBA ou champ de table) au nom final.

    De cette façon, il suffit de changer le chemin à un emplacement unique, pour que les 4500 fichiers soient à jour. Pas d’actualisation de chaque fichier.

  2. JackBxl dit :

    Le chemin des fichiers a été changé. La table des liens doit être éditée. J’ai fait un bidouillage que j’ai trouvé qui fonctionne. Transformer le champ hyperlien en txt, éditer les 2 segments (lien et étiquette) repasser en hyperlien.
    Plus propre serait de jeter la partie non utile du lien ( ce qui est à droite de #)
    A+ et merci pour le site

Laisser un commentaire

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