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

VBA Access Discussion :

Ajouter des Enregistrements dans une table d'une source Excel [AC-2016]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Directeur d'Exploitation
    Inscrit en
    Mai 2017
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur d'Exploitation
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2017
    Messages : 75
    Points : 23
    Points
    23
    Par défaut Ajouter des Enregistrements dans une table d'une source Excel
    Bonjour @ tous,

    J'ai actuellement dans ma base access une table liée dont la source et un fichier excel. Mon problème c'est qu'avec ce mode, l'accès est en exclusive. Impossible de partager le fichier lié pour se connecter à plusieurs.
    Ce fichier excel est alimenté tous les jours après la facturation de la journée.
    Est-il possible que j'importe le fichier actuel en table classique access mais d'ajouter via du code VBA les nouveaux enregistrements quotidien du fichier excel ?

    Merci de votre précieuse aide

  2. #2
    Modérateur

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

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

    Est-ce que tu as une information (ex : date de saisie, numéro d'entrée) qui permet de savoir que ces enregistrements sont nouveaux ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Directeur d'Exploitation
    Inscrit en
    Mai 2017
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur d'Exploitation
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2017
    Messages : 75
    Points : 23
    Points
    23
    Par défaut
    Oui,

    J'ai les dates de factures. Le champ n'est pas en première colonne.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Il y a-t'il aussi un numéro de facture ?

    En informatique, un numéro unique est le saint-graal, tout va vraiment mieux quand on en a un.

    Sinon, l'idée est la même de toute façon :
    1. Tu crées une table d'importation que je vais supposer appelé tblFacture_Import
    2. Tu crées une table permanente que je vais supposer appelé tblFacture (tblFacture à au moins tous les champs qu'on trouve dans tblFacture_Import)
    3. Tu crées une requête (reqFacture_Nouveau) de non correspondance qui va te donner toutes factures qui sont dans tblFacture_Import et qui ne sont pas dans tblFacture (donc les nouvelles factures).
      1. Tu crées une nouvelle requête avec l'éditeur de requête.
      2. Tu ajoutes les tables tblFacture et tblFacture_Import.
      3. Tu sélectionnes l'étoile (*) de tblFacture_Import et tu la glisses dans les colonnes de champs.
      4. Tu sélectionnes le champ date de tblFacture et tu le glisses dans les colonnes de champs.
      5. Sur la ligne critère, tu mets Is Null.
      6. Tu cliques le champ date de tblFacture_Import et tu le glisses sur le champ date de tblFacture (si tu as un champ NoFacture, utilises-le à la place).
      7. Tu cliques droit sur la jointure et tu choisis le choix 2 (Toutes les données de tblFacture_Import et seulement celles de tblFacture qui correspond).
      8. Tu exécutes et tu vérifies que tu as bien seulement les nouvelles données.
    4. Tu crées une requête d'ajout qui va prendre les donnes de reqFacture_Nouveau et les ajouter à tblFacture.
      1. Tu crées une nouvelle requête (reqFacture_AjouterNouveau) et tu y ajoutes la requête reqFacture_Nouveau
      2. Tu sélectionnes l'étoile (*) de reqFacture_Nouveau et tu la glisses dans la liste des champs.
      3. Tu changes le type de requête pour "Ajout" (c'est une des icônes au dessus des tables).
        Quand Access te demandes quelle table tu réponds tblFacture.


    On a fini avec les morceaux.

    Maintenant le traitement :
    1. Au début du traitement, tu vides la table tblFacture_Import. (utilise une requête de suppression).
    2. Tu importes les données dans la table tblFacture_Import
    3. Tu exécutes la requête reqFacture_AjouterNouveau qui va t'ajouter toutes les nouvelles factures.
    4. Quand tout est au point, tu peux vider la table d'import puisqu'elle est temporaire, inutile de garder les données.
      Pendant la phase de développement, il peut être pratique de voir ce que Access voit vraiment.


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Directeur d'Exploitation
    Inscrit en
    Mai 2017
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur d'Exploitation
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2017
    Messages : 75
    Points : 23
    Points
    23
    Par défaut
    Il n'y a pas plus précis comme explication !!

    Vraiment merci pour ta proposition de solution.

    Néanmoins, mon export excel comporte la totalité d'une journée, c'est à dire que le numéro de facture ou même la date n'est pas unique par ligne
    car l'export comprends aussi le contenu des factures et donc à chaque ligne j'ai la date et le n° de facture qui se répète.



    Cela va fonctionner aussi tu penses ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Directeur d'Exploitation
    Inscrit en
    Mai 2017
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur d'Exploitation
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2017
    Messages : 75
    Points : 23
    Points
    23
    Par défaut
    Donc,

    J'ai bien suivi ton tuto,

    Au moment d’exécuter la requête d'ajout j'ai message qui dit :

    Destination de sortie "Date" répliquée.

    Je clique OK et rien ne se passe.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Directeur d'Exploitation
    Inscrit en
    Mai 2017
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur d'Exploitation
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2017
    Messages : 75
    Points : 23
    Points
    23
    Par défaut
    J'ai trouvé,
    Dans la requête de comparaison j'ai rendu non visible le champ date de la table à comparer.

    De plus, j'ai crée un champ ID dans les deux table et c'est les ID que je compare car pour la date cela ne pouvait pas fonctionner puisqu'elle est répétée sur chaque lignes du fichier excel.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/07/2014, 14h44
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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