[VBA] fichier texte dans table Access

Résolu
Bonjour,
Je dois trouver un moyen pour pondre un petit bout de code qui me permetterait de stocker un fichier texte dans une table Access. Ca doit pas être trop compliqué vu que le nombre de champs est fixe et que j'ai un ";" (point virgule) comme séparateur de champ. Le nombre de ligne par contre n'est pas fixe.

Pouriez vous me diriger vers un site qui m'explique comment faire ou me donner ce petit bout de code s'il vous plait ?

Merci d'avance.
--
Benoit.
Enlèves tes doigts sales de mon clavier.
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

Résumé de la discussion

Importation d'un fichier texte dans Access: la solution privilégiée est d'utiliser l'assistant d'importation pour créer un format d'importation personnalisé avec le délimiteur point-virule, puis d'enregistrer ce format. Des étapes clés incluent la définition du format, l'enregistrement, puis l'appel VBA DoCmd.TransferText acImportDelim, 'nom_du_format', 'nom_de_la_table', 'c:\monfichier.txt' afin d'importer systématiquement les lignes séparées par des points-virgules. D'autres solutions évoquent l'enregistrement d'un format sans entête et l'utilisation d'un schéma (INI) pour mapper des colonnes fixes, avec le problème fréquent des espaces ou des mots réservés en SQL. Pour des cas où le fichier manque d'entête ou utilise tabulations, plusieurs réponses recommandent d'adapter le séparateur et de recourir à l'assistant d'importation avancé ou à des paramètres enregistrables.

Bobot (l’IA à votre service)
  1. Modérateur
    Salut,

    il faut déjà commencer par créer un format d'importation (menu fichier/données externes/importer, aller dans la procédure et enregistrer le format d'import). C'est le truc le plus ch... à faire car il faut presque aller au bout de la procédure...

    On peut ensuite récupérer le contenu d'un fichier et le mettre dans une table avec :
    DoCmd.TransferText acImportDelim, "nom_du_format_d_import", "nom_de_la_table_destination", "c:\monfichier.txt"
    Ca irait ?
    1. En fait, l'idéal serait que ce soit entièrement automatisé donc aucune manip manuel du fichier text. C'est possible ?
    2. Modérateur
      C'est ce que j'ai dit, ou alors je n'ai pas été clair...

      - tu crées un format d'import, et tu l'enregistres, une fois pour toutes
      - tu t'en sers avec du VBA autat de fois que tu veux

      Pas de manipulation du fichier texte...

      Ca te va ? Ou j'ai rien compris... :-)
    3. @bluxSalut,
      J'avais pas compris le coté permanant de la manip à effectuer. Je vais mettre ca en place ce matin. En tout cas, je te remercie pour ton aide et je te tiens au courant
    4. @bluxJe n'arrive pas à créer un format d'importation. Sais tu ou je peux trouver la marche à suivre ? Je cherche sur Goofle en meme temps
    5. Modérateur
      @blux- Fichier/données externes/importer
      - tu choisis ton fichier .txt sur disque
      - il t'ouvre l'assistant d'importation
      - et là, tu cliques sur 'avancé'
      - tu saisis tes paramètres (séparateurs, type de données, champs à ne pas importer...)
      - tu cliques sur 'enregistrer sous', tu donnes un nom
      - tu reprends le nom dans ton VBA

      Si tu souhaites ensuite réouvrir/modifier/renommer le format d'import, tu cliques sur le bouton 'paramètres' quand tu es dans les spécifications...
  2. Je suis désolé de faire remonter mon message mais j'ai vraiment besoin d'aide pour ce problème.
    1. Bonjour,

      Je voudrais aussi importer un fichier Texte dans une table Access.
      Par contre mon séparateur de colonne est : Tabulation

      Je ne sais pas comment adapter le code suivant :

      db.Execute "INSERT INTO import SELECT * FROM [Text;;;DATABASE=C:\Documents and Settings\moi\Mes documents;].[import.txt];", dbFailOnError
      
      


      Si quelqu'un peut m'aider

      Merci
      Willy
      1. Modérateur
        Et bien tu regardes ce qui a été dit à l'époque et tu complètes avec ce que tu vas trouver ici au sujet des séparateurs...