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 :

Requête access dans vba excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Par défaut Requête access dans vba excel
    Bonjour la Communauté,

    Dans le code qui suit il m'affiche une erreur de type "Type défini par l'utilisateur non défini".
    Quelqu'un pourrait-il m'aider?

    Bien à vous

    Habiler

    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
        Sub RunParameterQuery()
     
        'Step 1: Declare your variables
        Dim MyDatabase As DAO.Database
        Dim MyQueryDef As DAO.QueryDef
        Dim MyRecordset As DAO.Recordset
        Dim i As Integer
     
        'Step 2: Identify the database and query
        Set MyDatabase = Workspace(0).OpenDatabase _
        ("C:\Users\hab\Filr\Air Traffic control.accdb")
        Set MyQueryDef = MyDatabase.QueryDefs("Main Query")
     
        'Step 3: Define the Parameters
        With MyQueryDef
        .Parameters("[datexam]") = Range("D3").Value
        .Parameters("[PTS engl]") = Range("D4").Value
        End With
     
        'Step 4: Open the query
        Set MyRecordset = MyQueryDef.OpenRecordset
     
        'Step 5: Clear previous contents
        Sheets("Main").Select
        ActiveSheet.Range("A6:K10000").ClearContents
     
        'Step 6: Copy the recordset to Excel
        ActiveSheet.Range("A7").CopyFromRecordset MyRecordset
     
        'Step 7: Add column heading names to the spreadsheet
        For i = 1 To MyRecordset.Fields.Count
        ActiveSheet.Cells(6, i).Value = MyRecordset.Fields(i - 1).Name
        Next i
     
        MsgBox "Your Query has been Run"
     
        End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Dans la fenêtre VBE, menus Outils, Références, est-ce que tu as coché la référence Microsoft DAO n.nn Object Library ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Par défaut
    Merci daniel,

    j'avais totalement oublié cet élément. Mais maintenant il m'indique une erreur 3343 " Erreur due a l'application ou à l'objet.

    J'ai bien modifié le workspace(0) en DBEngine.

    Habiler

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Mais maintenant il m'indique une erreur 3343 " Erreur due a l'application ou à l'objet.
    Sur quelle ligne ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Par défaut
    Pas de ligne!

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    J'ai bien modifié le workspace(0) en DBEngine.
    Poste ton code modifié.
    D'autre part,, exécute-le ligne à ligne en appuyant sur la touche F8. Observe attentivement la ligne au moment où la macro va s'arrêter.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Par défaut
    Bonjour

    Le code s'arrête à la ligne =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set MyDatabase = Workspace(0).OpenDatabase ("C:\Users\hab\Filr\Air Traffic control.accdb")
    Bien à toi

    Habiler
    Fichiers attachés Fichiers attachés

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Je sèche, là... J'ai trouvé ce code sur internet; il faut cocher aussi la référence "Microsoft Access nn.n Object Library".

    Le code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim oAccess As Access.Application
    Dim oDB As DAO.Database
    Set oAccess = New Access.Application
    oAccess.OpenCurrentDatabase "C:\Users\Daniel\Documents\Donnees\Daniel\Database1.accdb"
    Set oDB = oAccess.CurrentDb

Discussions similaires

  1. [XL-2003] Ouverture d'une requête Access via VBA Excel
    Par hoodoo dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 19/03/2015, 10h43
  2. Réponses: 7
    Dernier message: 20/08/2012, 08h11
  3. [AC-2007] Problème requête count dans VBA ACCESS
    Par carophil dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/06/2010, 16h11
  4. [AC-2003] Transfert Fichier Texte dans ACCESS depuis vba Excel
    Par pio_killer dans le forum VBA Access
    Réponses: 17
    Dernier message: 17/11/2009, 12h49
  5. EXporter une requête Access dans Excel
    Par hellbilly dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/07/2006, 15h51

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