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 :

Enr_Copie et Enr_CopieBis


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2024
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2024
    Messages : 55
    Par défaut Enr_Copie et Enr_CopieBis
    Bonjour à tous,

    J'utilise les fonction Enr_Copie et Enr_CopieBis de la solution :

    Manipuler les données des bases Access depuis Excel
    Fonctions en VBA basées sur ADODB pour les développeurs

    Site : https://laurent-ott.developpez.com/t...-depuis-excel/


    Alors, pour ma part, je récupere des informations d'une base de donnée qui sont exportées sous format Excel. (impossible d'avoir un accés à celle-ci). Donc unique solution.

    Ainsi, j'importe ce fichier Excel dans une table nommé REF_USI60_V1

    En regardant Enr_Copie, je peux effectivement faire une copie des informations vers une autre table, mais cet autre table doit voir la meme structure... Ce qui m'interesse pas du tout car il y a énormément de champ...

    Voici dans les commentaires de Enr_Copie ce qu'il y a dans les commentaires :
    ' Remarque : si la table destination à des champs supplémentaires à la table sources, ils ne seront pas renseignés.

    C'est aussi pareil, si je souhaite mettre à jour les données de table sources (REF_USI60_V1) vers ma table destination (OF_GENERAL)...
    Commentaire pour Enr_CopieBis :
    ' Remarque : si la table destination à des champs supplémentaires à la table sources, ils ne seront pas renseignés.


    Vous l'aurez compris, ce que je souhaite, c'est pouvoir faire une copie de ma table source (REF_USI60_V1) vers ma table OF_GENERAL en indiquant mes champs à importer...

    Et biensur, là aussi, Enr_CopieBis pour mettre à jour ma table OF_GENERAL avec les données de ma table source REF_USI60_V1

    A moins de passer par une requette Sql, mais là , j'ai du mal tout seul

    Merci pour le coup de pousse.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 361
    Par défaut
    Bonjour,

    Pour avancer un peu ci-attaché un petit exemple qui montre comment ajouter et mettre à jour des données depuis une feuille Excel dans une table Access. A tester en ajoutant, modifiant des données dans la feuille Excel puis en lançant les requêtes.

    Cordialement.
    Fichiers attachés Fichiers attachés

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 504
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Je ne sais pas où vous en êtes de vos recherches.

    Hormis la solution proposée par par EricDgn , qui paraît la plus simple.

    Si vous connaissez un peu VBA vous pouvez essayer d'insérer les colonnes choisies dans une chaîne SQL :

    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
    28
            chemin_fichier = "c:\documents\..\fichier_xlsx"
            nom_feuille = 'feuille1" 
            plage_donnees = "" ' facultatif
            liste_colonnes = "champ1, champ2, champ3"
            nom_table = "table_dest"
     
            ' si la table de destination n'existe pas
            If Not TableExists(nom_table) Then ' création d'une nouvelle table
     
                sSQL = "SELECT " & liste_colonnes & " INTO [" & nom_table & "] " & _
                        "FROM [Excel 8.0;HDR=YES;DATABASE=" & chemin_fichier & "].[" & nom_feuille & "$" & plage_donnees & "] AS T1 "                    
     
            Else ' insert dans table existante
     
                If MsgBox("Table déjà présente : Souhaitez-vous vider les données de la table de destination ?", vbYesNo) = vbYes Then
                    CurrentDb.Execute "delete from [" & nom_table & "]", dbFailOnError
                End If
     
                sSQL = "INSERT INTO [" & nom_table & "] " & _
                    "SELECT " & liste_colonnes & " " & _
                    "FROM [Excel 8.0;HDR=YES;DATABASE=" & chemin_fichier & "].[" & nom_feuille & "$" & plage_donnees & "] AS T1 "
     
            End If
     
            CurrentDb.Execute sSQL, dbFailOnError
     
            ' rafraîchit la fenêtre de navigation Access
            Application.RefreshDatabaseWindow
    Pour la fonction TableExists vous pouvez trouver son code sur internet :

    https://stackoverflow.com/questions/...s-table-exists
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 458
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 458
    Par défaut
    Hello

    Comme cela t'as déja été mentionné sur le forum Excel: Power Query est ton ami.

    Avec Office, il ne faut pas se faire ch**, tout ce qu'on peut faire en se passant de VBA, on le fait. Il en résulte un application plus fiable et plus robuste.

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