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

Macros et VBA Excel Discussion :

Interroger une base Access


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Par défaut Interroger une base Access
    Bonjour


    Juste une question technique et aussi de syntaxe.

    Je dois interroger une fichier Access pour utiliser des données. Normalement je fais une extraction du dossier et le met en format.xls pour bosser dessu à partir d'un autre fichier .xls.


    Hors là la table Access que je souhaite interroger fais 1.659.000 lignes

    Donc biensur je ne peux pas faire tenir sa sur une feuille Excel

    Je veux savoir si il est possible d'interroger une table Access pour en retirer des informations ??

    Thanks

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonjour


    Tu peux faire ta requète directement depuis Excel sans avoir besoin de tout importer :

    http://excel.developpez.com/faq/?page=Access

    http://cafeine.developpez.com/access/tutoriel/excel/


    Si besoin, tu peux indiquer le nombre de lignes maxi par feuille de calcul (ici 65536) et créer plusieurs feuilles pour tout importer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    'boucle sur le résultat de la requete
    While Not Rs.EOF
        'Ajout Feuille
        Worksheets.Add
        'Ecriture des données dans la feuille
        '65536 spécifie le nombre de lignes par feuille
        ActiveSheet.Range("A1").CopyFromRecordset Rs, 65536
    Wend
    bonne soirée
    michel

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Par défaut
    Ok merci je vais jeter un oeil sur les deus liens. Pour l'exportation vers Excel j'ai essayé (avant de lire ton message), et partir de ma table Access de 1.659.000 lignes j'ai exporté vers Excel mais j'avais obtenu que 16k lignes sur une seule feuille de calcul


    Je vais essayé ton code. Parcontre je dois le copier ce code sur Access ??

    je manque de pratique de VBA sur Access mais je me débrouille correctement sur Excel, mais par exemple j'ai ouvert ma requete en mode création, et lorsque je suis dessus j'ai ouvert Visual Basic Editor, mais je n'ai pas pu ouvrir de feuille pour le code ?? Pareil lorsque j'étais sur ma table !

    Quelle est donc la procédure pour afficher le code ??

    Sinon ce que tu m'a donné à l'air de correspondre faut juste que je puisse l'appliquer en réel

    En attendant je me jète sur tes liens !

    thanks

    J'ai regardé les liens, ils proposent diffénretes solutions pour mon problème. j'ai testé microsoft query et le copier mais je rencontre le problème de la taille des fichiers.

    J'ai alors essayé de mettre le code que tu as fourni.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Workbook_AfterXmlImport(ByVal Map As XmlMap, ByVal IsRefresh As Boolean, ByVal Result As XlXmlImportResult)
    While Not Rs.EOF
        'Ajout Feuille
        Worksheets.Add
        'Ecriture des données dans la feuille
        '65536 spécifie le nombre de lignes par feuille
        ActiveSheet.Range("A1").CopyFromRecordset Rs, 65536
    Wend
    End Sub
    Cependant j'ai du faire une erreur car elle ne marche pas.

    Juste une précission sinon.

    Je me suis focalisé pour le moment sur l'import de ma base d'access vers excel. Mais sinno dans un code VBA, est il possible d'interroger ma table Access ??

    J'ai besoin de faire une fonction find dans une colonne de ma table Access, et de récupérer des infos. je sais le faire dans un fichier Excel pas de soucis, mais si je peux le faire sur la table Access meme alors très bien.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pour interroger une base Access, une solution (et l'idéal) est de passer par DAO, dont voici l'article: http://warin.developpez.com/access/dao/

    En faite il n'y a pas de Find pour Access, il faut que tu interroges ta table à la l'aide d'une requête SQL, et ton critère de recherche sera dans la clause Where de celle-ci.

    Je t'invite à consulter la FAQ Access (lien dans ma signature) et aller faire un tour du coté du forum Access, où tu auras de nombreuses réponses à tes questions.

    Philippe

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 110
    Par défaut
    Merci !

    Je commence la lecture de l'article DAO qui à l'air très riche.

    SilkyRoad est ce que néanmoins tu pourrais juste me dire comment je dois utiliser le code que tu m'as donné.

    A très court terme (avant que je finisse de lire l'article) ça va me servir !



    Merci je laisse ouvert j'aurai sans doute des remarques ou autre...

  6. #6
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    rebonjour

    SilkyRoad est ce que néanmoins tu pourrais juste me dire comment je dois utiliser le code que tu m'as donné.
    tu places la procédure dans un module standard du classeur Excel et tu actives la référence "Microsoft ActiveX Data Objects x.x Library"
    Dans l'éditeur de macros,
    Menu Otils
    Références
    Sélectionne la ligne "Microsoft ActiveX Data Objects x.x Library"
    Clique sur le bouton OK pour valider.



    bon après midi
    michel

Discussions similaires

  1. Interroger une base access
    Par enzo68290 dans le forum VB.NET
    Réponses: 4
    Dernier message: 06/06/2011, 15h07
  2. INterrogation d'une base ACCESS depuis Postgre
    Par jsteffe dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 08/11/2007, 15h25
  3. Interroger une base access via le web
    Par pascale86 dans le forum Access
    Réponses: 1
    Dernier message: 15/03/2007, 15h33
  4. [VBA Excel]Interroger une base access depuis Excel
    Par Stephane_123 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/02/2007, 10h43
  5. [VB] interroger une base Access contenant des libellés Russe
    Par roby dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/03/2006, 15h03

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