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

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 469
    Points : 149
    Points
    149
    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 éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    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 ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 469
    Points : 149
    Points
    149
    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 éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Mais maintenant il m'indique une erreur 3343 " Erreur due a l'application ou à l'objet.
    Sur quelle ligne ?
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 469
    Points : 149
    Points
    149
    Par défaut
    Pas de ligne!

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    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.
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 469
    Points : 149
    Points
    149
    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 éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    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
    Cordialement.

    Daniel

    La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

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