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 :

Modele code pour importation requete ds Excel


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Modele code pour importation requete ds Excel
    Bonjour,


    J'ai deja poste deux messages sur le forum concernant un code qui ne foctionne pas ( dt un message intitule #verifcation de mon code#) : aucune reponse en trois jours :-(

    Je re-formule donc ma demande,

    J'aimereais importer une requete en SQl sur une bd Access (via OLEDB ou ODBC grace a ADO) sur un feuille Excel a un endroit precis

    Qq1 pourrait-il me donner un modele de code en exemple ? (NB j'ai deja la requete forulee en SQL donc ok pour ca


    Merci d'avance et en esperant que j'aurai au moins une reponse cette fois ci

    Am

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2003
    Messages : 50
    Points : 68
    Points
    68
    Par défaut
    Salut,

    J'aimereais importer une requete en SQl sur une bd Access (via OLEDB ou ODBC grace a ADO) sur un feuille Excel a un endroit precis
    Je suppose que tu voulais dire
    "depuis Access vers Excel"

    Pourquoi ne pas utiliser la fonction prévu a cette effet dans Access.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DoCmd.OutputTo acOutputQuery, "le nom de ta query", acFormatXLS
    A+,
    MasterSleepy.

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,


    Merci infiniment pour ta reponse.

    Toutefois, je souhaite programmer la requete directement dans le code, via du SQL

    Je n'ai donc pas de requete pre faite sur access

    Aurait-tu une autre idee?

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2003
    Messages : 50
    Points : 68
    Points
    68
    Par défaut
    Voici un bout de code qui devrait d'aiguiller.
    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
    37
    38
    39
    40
    41
    42
    43
    Sub extract(lconADO As ADODB.Connection, lstrSQL As String)
        Dim lrecRead As Recordset
        Dim lfldField As Field
        Dim llngCol As Long
        Dim llngRow As Long
     
        Dim lappExcel As Excel.Application
        Dim lwkbWorkbook As Excel.Workbook
        Dim lwksWorkSheet As Excel.Worksheet
     
        Set lappExcel = New Excel.Application
        Set lwkbWorkbook = lappExcel.Workbooks.Add
        Set lwksWorkSheet = lwkbWorkbook.Worksheets.Add
     
        lwksWorkSheet.Name = "Extract"
     
        Set lrecRead = lconADO.Execute(lstrSQL)
     
        For llngCol = 1 To lrecRead.Fields.Count
     
            lwksWorkSheet.Cells(1, llngCol) = lrecRead.Fields(llngCol).Name
     
        Next llngCol
     
        llngRow = 2
        While Not lrecRead.EOF
            For llngCol = 1 To lrecRead.Fields.Count
     
                lwksWorkSheet.Cells(llngRow, llngCol) = lrecRead.Fields(llngCol).Value
     
            Next llngCol
     
            llngRow = llngRow + 1
     
            lrecRead.MoveNext
        Wend
     
        lrecRead.Close
     
        lappExcel.Visible = True
     
     
    End Sub
    Il faut avoir la référence vers Excel de cocher.
    Je ne l'ai absolument pas testé.

    A+,
    MasterSleepy.

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Re-,

    Merci beaucoup pour ton aide. Cependant, j'ai teste la macro, et j'obtients un message d'erreur:

    Run-time error '-2147467259 (80004005)'
    The Microsoft Jet Database engine could not open the file 'chemin d'acces de ma base de donnees'.
    It is opened exclusively by another user or you need permission to view these data.
    Je commence vraiement a deprimer, cela fait une semaine que j'y arrive pas



    Merci d'avance
    PS: cette macro se fait un poste au bureau, ou les PC sont en reseau, cela peut-il expliquer le probleme? En sachant que la base de donnee manipulee est situee sur mon disque dur prive de mon PC

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2003
    Messages : 50
    Points : 68
    Points
    68
    Par défaut
    Salut,

    Il faut bien sur que le connexion à la base de donnée soit ouvert et fonctionnel.
    Il faut que tu testes ta connexion.

    Comment ouvres-tu ta connexion?

    A+,
    MasterSleepy.

  7. #7
    Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,


    Voici un bout de mon code ou je declare mes variables et definit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Cnn1 As ADODB.Connection, Cmd1 As ADODB.Command, MonRs As ADODB.Recordset
    Dim ColNum As Long, LigNum As Long
    'Declaration des variables'
     
    Set Cnn1 = New ADODB.Connection 'Assignation de l'objet Connection'
        With Cnn1
        .Provider = "Microsoft.Jet.OLEDB.4.0;" 'Defintion du Provider/Fournisseur de donnees'
        .ConnectionTimeout = 30 'Definition du temps de rafraichissement des donnees
        .Mode = adModeRead
        .Open "Data Source=C:\PB AM;User Id=Admin; Password="
    End With

    J'avais aussi pense que peut-etre c 'etait lie au fait que je bosse sur un PC en reseau ?

    Qu'en penses tu ?


    Merci d'avance
    AM

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

    As-tu lus ce tuto de Caféine http://cafeine.developpez.com/access/tutoriel/excel/

    Starec

Discussions similaires

  1. [XL-2010] code pour importer un requete de report builder vers excel (dynamics)
    Par chafoo dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/01/2015, 11h09
  2. [AC-2003] Code VBA pour importer un fichier Excel dans access
    Par granddebutant dans le forum VBA Access
    Réponses: 5
    Dernier message: 24/01/2012, 14h51
  3. problème code pour remplir un fichier Excel
    Par ririrourou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/07/2008, 09h51
  4. Code pour importer res. requete sur Ecxel
    Par AMVBA dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/06/2007, 10h40
  5. code pour import d'une table d'un fichier HTM
    Par jeanluc065 dans le forum Access
    Réponses: 7
    Dernier message: 26/10/2006, 08h09

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