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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Importer un fichier TXT avec création clé primaire autoincré


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Importer un fichier TXT avec création clé primaire autoincré
    Bonjour,

    Je voudrais importer un fichier texte (.txt) selon une spécification et inserer en même temps un champ autoincrémenté (clé primaire) en commande VBA.
    Avec la commande :
    DoCmd.TransferText acImportFixed, nomspec, nomtable, NomFichierTXT
    je ne peux pas rajouter de clé primaire.

    Mes fichier sont volumineux (plus de 50 000 enregistrements) et je ne veux pas passés par "ALTER TABLE nomtable ADD COLUMN compteurID COUNTER" qui est couteux en temps.

    Connaissez vous une autre méthode en VBA.
    Cordialement.

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut Re: Importer un fichier TXT avec création clé primaire autoi
    Citation Envoyé par n.blandine
    ../..
    Mes fichier sont volumineux (plus de 50 000 enregistrements) et je ne veux pas passés par "ALTER TABLE nomtable ADD COLUMN compteurID COUNTER" qui est couteux en temps.
    ../..
    Hello,

    très franchement, je ne vois pas solution qui soit moins couteuse en temps que la requête SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE nomtable ADD COLUMN compteurID COUNTER
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Membre régulier
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Points : 73
    Points
    73
    Par défaut re : Importer un fichier TXT avec création clé primaire autoincré
    Bonjour,

    En fait tu as plusieurs possibilités :

    - l’exécution du code SQL que tu as fourni ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE [nomtable] ADD COLUMN compteurID Autoincrement;
    - Ensuite tu peux faire un transfertext puis ajouter du code vba pour créer un champ numéro auto que tu peux indexer ensuite en clé primaire ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    dim DB as dao.database
    dim TBF as dao.tabledef
    dim idx as dao.index
    dim fld as dao.field
     
    set DB = Currentdb
    set TBF = DB.tabledefs("Matable")
     
    With TBF
     
      '*** Création du champ à indexer ***
      Set fld = .CreateField("ID", dbLong) 'doit porter le même nom que le champ de l'index
      fld.Attributes = dbAutoIncrField    'NumeroAuto
      .Fields.Append fld 'le champ doit être ajouté à la collection fields en 1er 
     
      '*** Création de l'index ***
      Set idx = .CreateIndex("ID")
      idx.Primary = True
      '**création du champ de l'index**
       idx.Fields.Append idx.CreateField("ID")
      '**ajout de l'index
      .Indexes.Append idx
     
    End With
     
    DB.TableDefs.Refresh
    Sinon plus simple tu peux créer une importation enregistrée manuellement (ruban "données externe sous 2007")avec la possibilité de laisser access créer ta clé primaire, puis ensuite lancer l'importation par code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSavedImportExport ("NomDeLimportationEnregistree")
    Mais j'ai remarqué qu'avec l'ensemble de ces méthodes, les données n'étaient pas toujours triées dans le même ordre. Tu peux avoir parfois plusieurs enregistrements consécutifs qui se retrouvent à un autre endroit et donc n'auront pas la même clé primaire que si tu ré importe le fichier par exemple.
    Donc ajouter un champ numéroAuto dans une table qui contient déja des enregistrement peux être problématique si tu as besoin que la clé soit dans un ordre précis.

    Les bonnes vieilles méthodes restent donc les plus fiables le cas échéant, une fois importée tu transfert dans une autre table créée auparavant avec une clé primaire, ou tu fait une boucle qui rajoute un champ que tu incrémente (plus long).

Discussions similaires

  1. Importer un fichier txt avec des titres indésirables
    Par piflechien73 dans le forum VBA Access
    Réponses: 17
    Dernier message: 24/09/2010, 16h27
  2. Importation de fichiers TXT avec chemin variable
    Par moulayoubi dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/04/2007, 14h29
  3. Réponses: 8
    Dernier message: 08/10/2006, 11h00
  4. probleme d'import de fichier txt avec des tab
    Par lecureuil dans le forum Access
    Réponses: 4
    Dernier message: 23/08/2005, 19h22
  5. Pb import fichier txt avec lignes de longueurs diverses
    Par zebulon90 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/12/2004, 08h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo