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

Excel Discussion :

Mise à jours base de donnée Access depuis liste Excel


Sujet :

Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 67
    Points
    67
    Par défaut Mise à jours base de donnée Access depuis liste Excel
    Bonjour,

    J'ai une nouvelle liste d'ID dans un fichier Excel et je dois mettre à jours la base Access suivant ces ID.

    Soit deux champs dans la base :
    champ1 : ID
    champ2 : Etat

    Si un ID du fichier excel est présent, le champ2 correspondant au même ID sur access est mis à jours à "oui"
    Sinon toute la colonne est mise à "non".

    Je suis un peu perdu, je voulais passer par des recordset et dictionnaire.
    Du genre :
    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
     Dim Cnt As ADODB.Connection, Rst As ADODB.Recordset, r As Long
      ' connect to the Access database
      Set Cnt = New ADODB.Connection
      Set Rst = New ADODB.Recordset
      MaBase = "TR50000.accdb"
      MaTable = "TR25000"
      URL_BASE = ActiveWorkbook.Path & "\" & MaBase
      Cnt.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & URL_BASE & ";"
      Rst.Open MaTable, Cnt, adOpenKeyset, adLockOptimistic, adCmdTable
      With Rst
        .MoveFirst
        Do Until .EOF
          If .Fields( "NumSeries" ) = "55000003370" Then
            !Batch = "999999"
            .Update
          End If
          .MoveNext
        Loop
      End With
      Rst.Close
    End Sub
    Mais en faite je crois qu'une requête depuis EXcel suffirait?

    Merci de vos avis

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE Table1 
    INNER JOIN source ON Table1.ID = source.ID
    SET Table1.Etat = "oui";
    Si les deux bases sont sur access cela donne ca.
    Seulement la base source sera un fichier excel..
    Edit : J'ai réussi à l'importer sous Access en tant que données externes

    Il manque le faite de mettre les autres lignes à non???


    Merci d'avance

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 438
    Points : 16 296
    Points
    16 296
    Par défaut
    Bonjour

    Si tu lies le classeur Excel en tant que table liée, tu fait deux requêtes : un requête pour les communs (que tu as faites) et un autre pour les introuvables.

    Passe par l'assistant requête de non correspondance, transformes en requête mise à jour, puis affiche le SQL...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    Merci de ta réponse,

    Je suis passé en mode création assisté et j'obtiens la requête suivante :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Table1.N°, Table1.ID, Table1.Etat, Table1.Date
    FROM Table1 LEFT JOIN Watchlist ON Table1.[ID] = Watchlist.[ID]
    WHERE (((Watchlist.ID) Is Null));
    Cependant je n'arrive pas à mettre à jour à "non"

    Merci encore

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 173
    Points : 67
    Points
    67
    Par défaut
    Nevermind, clique droit, Reque MAJ

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

Discussions similaires

  1. [Débutant] Mise à jour base de données access
    Par jonueva dans le forum Accès aux données
    Réponses: 0
    Dernier message: 30/03/2015, 22h58
  2. [AC-2010] Mise à jour base de données Access depuis Excel
    Par NewUserAccess dans le forum Access
    Réponses: 3
    Dernier message: 26/02/2015, 13h58
  3. [AC-2007] Base de donnée access depuis feuille excel.
    Par le_sayan dans le forum VBA Access
    Réponses: 6
    Dernier message: 13/06/2010, 10h19
  4. mise a jour base de donnée access
    Par Razielone dans le forum C#
    Réponses: 5
    Dernier message: 28/03/2008, 08h43
  5. [mise a jour] base de donnée access
    Par escobar dans le forum Access
    Réponses: 11
    Dernier message: 17/07/2006, 10h12

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