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 et ecraser des donnees [AC-2016]


Sujet :

Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Workforce planner
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Malte

    Informations professionnelles :
    Activité : Workforce planner
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Importer et ecraser des donnees
    Bonjour,

    Je suis novice sur Access et en charge de la creation d'une DB.
    Je me sers de Access comme d'un conteneur et Excel avec le DataModel me permet de trier les donnees, et de produire des reports a la demande.

    j'ai donc une table avec 8 champs, dont une cle primaire unique.
    J'importe quotidiennement des fichier xlsx, avec un range de date sur 30 jours. Ex. si j'importe le 01/02, le range de data sera du 02/01 au 31/01. J'importe ces fichiers grace au systeme automatise de Access.

    Les data sont susceptibles de changer dans le temps; un seul champs est impacte.

    Question: est-il possible d'ecraser les anciennes lignes, en considerant que le champs de la cle primaire sera l'identifiant unique pour la ligne?
    .............si l'ID existe deja, MS Access ecrase la ligne existante.


    J'ai checke les FAQ et certains tuto sans trouver de solution.

    Merci d'avance pour votre aide.

    Sebastien

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    L'importation d'Access ne tient pas compte des clefs.
    Elle prend les données et les déverse dans la table de destination.
    Se baser sur le numéro de ligne est assez imprudent, si le tri change, le numéro de ligne va changer.
    Dans l'idéal, il faudrait trouver un élément qui identifie de manière unique chaque ligne quelle que soit sa position dans le fichier.

    Sinon la méthode que je recommande est la suivante :
    • Vider la table temporaire.
    • Si tu te fies au numéro de ligne il faut réinitialiser le compteur automatique.

      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      SQL = "ALTER TABLE NomTaTable ALTER COLUMN NomTonChampAutoNum COUNTER(1, 1);"
      dim db as dao.database:set db=currentdb
      call db.Execute(sql, dbfailonerror)
      db.close:set db=nothing
    • Importer les données dans la table temporaire.
    • Faire une requête qui va identifier les enregistrements qui existent à la fois dans la table permanante et dans la table temporaire. Une bête requète sélection avec jointure fait l'affaire.
    • Faire du code VBA qui parcourt cette requête et qui mest à jour les données de la table permanante.
      Idéalement on ferait une requête de MAJ mais j'ai eu pas mal de souci et la solution VBA est plus contrôlable.
    • Faire une requête d'ajout qui ajoute les nouvelles données.
      C-à-d toutes les lignes qui sont dans la table temporaire mais qui ne sont pas dans la table permanente.
    • Vider la table temporaire. (optionel)


    A+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Workforce planner
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Malte

    Informations professionnelles :
    Activité : Workforce planner
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci Marot_r pour cette reponse rapide.

    Dans l'idéal, il faudrait trouver un élément qui identifie de manière unique chaque ligne quelle que soit sa position dans le fichier.

    L'ID est un identifiant unique qui reprend certaines infos + date + intervalle horaire. Il n'y a pas de duplicate. Dans le fichier attache, tu pourras te rendre compte du format de l'ID, qui est traite comme du texte et non comme un nombre. En derniere colonne, le champs qui peut etre modifie dans le temps.


    Nom : Lignes type.JPG
Affichages : 481
Taille : 27,9 Ko

    Ce que tu me proposes me semble un peu complexe eu égard a mon niveau. Mais je vais quand même essayer. Une solution alternative plus simple aurait été appréciée.


    Sebastien

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour.

    Si tu as des difficultés à mettre en oeuvre la solution n'hésite pas à demander des explications supplémentaires.

    A+

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Workforce planner
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Malte

    Informations professionnelles :
    Activité : Workforce planner
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Salut Marot_r

    J'ai enfin reussi. ca fonctionne sur des BD test legeres.
    Merci pour ton aide.

    Bon weekend.

    Sebastien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. importer des donnees dans word
    Par neuneu1 dans le forum Delphi
    Réponses: 11
    Dernier message: 13/05/2007, 01h32
  2. Importer des données Access dans Excel
    Par petitloup71 dans le forum Access
    Réponses: 7
    Dernier message: 30/08/2006, 14h48
  3. [C#/Excel <> SqlServer 2000] Comment importer/exporter des données ?
    Par Abydos Business Group dans le forum Accès aux données
    Réponses: 3
    Dernier message: 09/08/2006, 23h54
  4. Importer des donnees avec fichier txt
    Par flOZ dans le forum Requêtes
    Réponses: 8
    Dernier message: 21/04/2006, 17h26
  5. importer des donnees dans interbase
    Par ms91fr dans le forum InterBase
    Réponses: 3
    Dernier message: 25/11/2002, 17h43

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