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 :

Importation excel vers access avec recherche données [AC-2007]


Sujet :

VBA Access

  1. #21
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO TestInsertDb ( NumDoc, Livrable, Jalon, DateS1, DateA1, DateS2, DateA2, DateS3, DateA3, A_consulter, Version )SELECT Frm.NumDoc, Frm.Livrable, Frm.Jalon, Frm.DateS1, Frm.DateA1, Frm.DateS2, Frm.DateA2, Frm.DateS3, Frm.DateA3, Frm.A_consulter, Frm.Version
    FROM [TestInsertDb$] AS Frm IN 'C:\Users\rdurupt\Desktop\TestInsertDb\TestInsertDb.xlsx'[excel 12.0;HDR=Yes;IMEX=1;]
    WHERE (((Frm.NumDoc) Is Not Null));

  2. #22
    Membre du Club
    Homme Profil pro
    Ingénieur Projet
    Inscrit en
    Mai 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Projet
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Merci pour votre réponse rapide.

    Quelques questions:

    1. Dans ce cas, "TestInsertDb" est le nom de ma table Access et "TestInsertDb$" est le nom de ma feuille dans mon fichier excel?
    2. frm est le nom de table donné à ma feuille Excel? Et "frm.NumDoc" par exemple, cela implique quoi? Que NumDoc est une variable ou que le 1er champs de ma plage s'appelle nNumDoc?
    3. Comment cela fonctionne t il si je désire indiquer les cellule avec une syntaxe de ce type? :" Chr(34) & oWSht.Cells(i, 16) & Chr(34) "


    Car ce que je n'ai pas dit c'est que ma macro d'import est réalisé via une boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open(StrNomFichier) 'mettez ici le chemin vers votre fichier Excel
    Set oWSht = oWkb.Worksheets("Plan documentaire") 'mettez ici le nom de la feuille qui contient les données à importer
     
    While oWSht.Cells(i, 14) <> ""
    cSQL=...
     
    DoCmd.RunSQL cSQL
     
    i=i+1
     
    wend

  3. #23
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Moriceot Voir le message
    Merci pour votre réponse rapide.

    Quelques questions:

    1. Dans ce cas, "TestInsertDb" est le nom de ma table Access et "TestInsertDb$" est le nom de ma feuille dans mon fichier excel? Exactement
    2. frm est le nom de table donné à ma feuille Excel? Exactement Et "frm.NumDoc" par exemple, cela implique quoi? Que NumDoc est une variable ou que le 1er champs de ma plage s'appelle nNumDoc? nom c'est la colonne don le nom apprêt dans la zone de titre!
    3. Comment cela fonctionne t il si je désire indiquer les cellule avec une syntaxe de ce type? :" Chr(34) & oWSht.Cells(i, 16) & Chr(34) " ici nous ne sommes pas dans Excel mais bien dans une requête Access oWSht.Cells(i, 16) connait pas!


    Car ce que je n'ai pas dit c'est que ma macro d'import est réalisé via une boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Set oApp = CreateObject("excel.application")
    Set oWkb = oApp.Workbooks.Open(StrNomFichier) 'mettez ici le chemin vers votre fichier Excel
    Set oWSht = oWkb.Worksheets("Plan documentaire") 'mettez ici le nom de la feuille qui contient les données à importer
     
    While oWSht.Cells(i, 14) <> ""
    cSQL=...
     
    DoCmd.RunSQL cSQL
     
    i=i+1
     
    wend
    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
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT TestInsertDb.* FROM TestInsertDb;")
    While oWSht.Cells(i, 14) <> ""
    rs.AddNew
    rs("NumDoc") = oWSht.Cells(i, "A")
    rs("Livrable") = oWSht.Cells(i, "A")
    rs("Jalon") = oWSht.Cells(i, "A")
    rs("DateS1") = oWSht.Cells(i, "A")
    rs("DateA1") = oWSht.Cells(i, "A")
    rs("DateS2") = oWSht.Cells(i, "A")
    rs("DateA2") = oWSht.Cells(i, "A")
    rs("DateS3") = oWSht.Cells(i, "A")
    rs("DateA3") = oWSht.Cells(i, "A")
    rs("A_consulter") = oWSht.Cells(i, "A")
    rs("Version") = oWSht.Cells(i, "A")
    rs.Update
     
     
    i = i + 1
    Wend
    Images attachées Images attachées  

  4. #24
    Membre du Club
    Homme Profil pro
    Ingénieur Projet
    Inscrit en
    Mai 2017
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Projet
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2017
    Messages : 59
    Points : 40
    Points
    40
    Par défaut Ah oui, on peut faire comme ça aussi. :)
    Ca marche du tonnerre! Merci!

    Par contre, pour ma culture personnelle, pourquoi ma macro initiale avec la requête SQL et les dénominations de cellules type cells(i,j) est elle une hérésie?

    Je demande car mon import initial marchait sans problèmes. Seulement il ne permettait pas de filtres.

    peut être dois je préciser que évidemment je déclarais mes variables dans un premier temps:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim oApp As Excel.Application
    Dim oWkb As Excel.Workbook
    Dim oWSht As Excel.Worksheet
    Merci encore dysorthographie!!!

  5. #25
    Invité
    Invité(e)
    Par défaut
    il est pas toujours évident de faire matcher trois langage et/ou application Access,Excel et VBA!

    la méthode que je tes proposé marche à tous le coup! pour le reste j'essai de répondre à une problématique sens pour autant analyser tout le code!

    mais ravis si je t'es été utile!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [AC-2003] Import Excel vers Access avec choix du répertoire et du fichier *.xls
    Par jeanpierre78 dans le forum IHM
    Réponses: 12
    Dernier message: 19/10/2011, 12h14
  2. Réponses: 3
    Dernier message: 06/05/2011, 11h39
  3. Réponses: 25
    Dernier message: 26/04/2011, 13h58
  4. Réponses: 3
    Dernier message: 13/03/2010, 22h37
  5. import excel vers access avec bouton "parcourir"
    Par zeloutre dans le forum Access
    Réponses: 3
    Dernier message: 04/04/2007, 19h06

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