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 :

Requête d'importation d'un fichier .txt ou EXCEL dans une table déjà existante


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de keketteboy
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Points : 73
    Points
    73
    Par défaut Requête d'importation d'un fichier .txt ou EXCEL dans une table déjà existante
    Bonjour, je voulais savoir s'il existait la possibilité d'importer des données depuis un tableau EXCEL ou un fichier en .txt dans une table déjà existante et pré-formatée à travers une simple requête ou faut-il que je passe par un formulaire et du vba ? Si c'est possible, pourrait-on m'expliquer comment faire svp ? Merci d'avance à la communauté.
    Haï-Ha TRINH-VU, Consultant MS BI.

    "L'expérience est une lanterne attachée dans notre dos, qui n'éclaire que le chemin parcouru."
    "Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide."

    Confucius

    Merci de cliquer sur si la réponse apportée est celle attendue.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    350
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 350
    Points : 507
    Points
    507
    Par défaut
    Oui c'est possible d'importer d'excel dans une table deja créer, il faut passer par du VBA ! Il y a deja plusieurs post sur sa dans le forum !

    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
    29
    30
    31
    32
    33
    34
    35
    36
    Private Sub bt_MaJCli_Click()
     
    Dim oApp As Excel.Application
    Dim oWkb As Excel.Workbook
    Dim oWSht As Excel.Worksheet
     
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open("F:\stage p\fichier client.xls") 'chemin vers fichier Excel
    Set oWSht = oWkb.Worksheets("fichier client") ' nom de la feuille qui contient les données à importer
     
    'première ligne ou commence l'import
    i = 2
     
    'pour éviter les messages lors de l'ajout des enregistrements
    DoCmd.SetWarnings False
     
    'tant qu'on ne rencontre pas une case vide
    While oWSht.Range("I" & i).Value <> ""
        'condition de remplissage de la table => eviter les doublons
        'si l'enregistrement existe déjà dans la table destination,
        'on le supprime puis on place le nouveau
        If DCount("*", "[client]", "[codecli] LIKE '" & oWSht.Cells(i, 1) & "*'") = 1 Then
        'le numéro 1 correspond au numéro de la colonne source, tel que : A=1, B=2, C=3 ...
            cSQL = "delete * from [client] where [codecli] LIKE '" & oWSht.Cells(i, 1) & "*'"
            DoCmd.RunSQL cSQL
        End If
        cSQL = ""
        'requète SQL (avec en paramètre la ligne i et le numéro de la colonne comme précisé au-dessus)
        cSQL = "insert into [client] ( [codecli], [nomcli] ) values (" & Chr(34) & oWSht.Cells(i, 1) & Chr(34) & ", " & Chr(34) & oWSht.Cells(i, 2) & Chr(34) & ")"
        'ici, on ne prend que les colonnes A (=1) et B (=2).
        DoCmd.RunSQL cSQL 'exécute la requète
        'on incrémente la variable i pour passer à la ligne suivante
        i = i + 1
    Wend
    DoCmd.SetWarnings True
    End Sub
    Ça c'est un code que j'ai pris sur le forum, il est adapter a ma base, t'as juste a l'adapter pour la tienne, il est tout commenter !
    Marcuscircus : La seule différence entre un rêve et sa réalisation, c'est l'envie

  3. #3
    Membre régulier Avatar de keketteboy
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Mai 2008
    Messages : 100
    Points : 73
    Points
    73
    Par défaut
    Merci beaucoup.
    Haï-Ha TRINH-VU, Consultant MS BI.

    "L'expérience est une lanterne attachée dans notre dos, qui n'éclaire que le chemin parcouru."
    "Lorsque l'on se cogne la tête contre un pot et que cela sonne creux, ça n'est pas forcément le pot qui est vide."

    Confucius

    Merci de cliquer sur si la réponse apportée est celle attendue.

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

Discussions similaires

  1. Comment importer une feuille Excel dans une table Access existante?
    Par ac264 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/09/2010, 12h28
  2. importer un fichier excel dans une table
    Par joe370 dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/07/2007, 11h21
  3. Réponses: 2
    Dernier message: 04/06/2007, 15h39
  4. Réponses: 8
    Dernier message: 08/03/2007, 16h54
  5. Réponses: 7
    Dernier message: 04/10/2005, 18h21

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