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 :

utilisation requete Acces via vba Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 4
    Par défaut utilisation requete Acces via vba Excel
    Bonjour,

    A partir d'une macro sur Excel, je cherche à lancer une requête nommée "test" que j'ai faite sur Access.

    Ma Macro est la suivante :

    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
     
    Dim objAccess As New Access.Application
     
    'ouvre la base de données
    Dim CheminDB As String
    CheminDB = ActiveWorkbook.Path & "\BDD Mallettes.accdb"
    objAccess.OpenCurrentDatabase CheminDB
     
    'Pour rendre le tout visible à l'utilisateur
    objAccess.Visible = True
     
     
    'Lance les requetes pour isoler la mallette
    Dim qdf As DAO.QueryDef
    Dim rcs As DAO.Recordset
     
    Set qdf = Nothing
    'Référence à la requête
    Set qdf = CurrentDb.QueryDefs("test")
    valeur = "352C4T1"
     
    qdf.Parameters("Entrer reference :") = valeur
    qdf.Execute
    Set qdf = Nothing
    Mon fichier Access s'ouvre cependant j'ai un bug de : Set qdf = CurrentDb.QueryDefs("test")La particularité de ma requête est que je demande à l'utilisateur de rentrer une requête au moment où on la lance...est-ce à cause de ça?

    Merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    CurrentDb ne référence pas la BDD que tu viens d'ouvrir avec OpenCurrentDatabase .

    Cordialement,

  3. #3
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Bonjour à toi,

    Cette partie me parait curieuse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qdf.Parameters("Entrer reference :")
    Le nom de ton paramètre est vraiment bizarre....

  4. #4

  5. #5
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    voila comment exécuter une requête paramétrée sur une base Access.
    Cette procédure utilise l'ancienne base de données Comptoir.accdb, que microsoft
    fournissait avec Access.
    NB: "[Ventes par représentant par pays]" est une procédure stockée dans la
    base de données Comptoir.accdb.
    A adapter.
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    Sub testdb()
     
        Dim cnn As ADODB.Connection
        Dim cmd As ADODB.Command
        Dim prm As ADODB.Parameter
        Dim rs As ADODB.Recordset
        Dim CheminDB As String
     
        CheminDB = "C:\Comptoir.accdb"
     
        ' instancier les objets
        Set cnn = New ADODB.Connection
        Set cmd = New ADODB.Command
     
        ' la connexion
        With cnn
            .Provider = "Microsoft.ACE.OLEDB.12.0"
            .Open CheminDB
        End With
     
        ' la commande
        With cmd
            .ActiveConnection = cnn
            .CommandText = "[Ventes par représentant par pays]" ' une requête paramétrée
            .CommandType = adCmdStoredProc
     
            ' on spécifie 2 paramètres
            .Parameters.Append cmd.CreateParameter("[Date début]", adDate, adParamInput)
            .Parameters("[Date début]") = #1/1/1996# ' valeur pour le param 1
     
            .Parameters.Append cmd.CreateParameter("[Date fin]", adDate, adParamInput)
            .Parameters("[Date fin]") = #1/1/1997# ' valeur pour le param 2
        End With
     
        Set rs = New ADODB.Recordset
        ' exécution
        rs.Open cmd
     
        Do Until rs.EOF
            Debug.Print rs.Fields("Pays").Value
            rs.MoveNext
        Loop
     
        rs.Close
        cnn.Close
     
        Set cmd = Nothing
        Set rs = Nothing
        Set prm = Nothing
        Set cnn = Nothing
     
    End Sub

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2016
    Messages : 4
    Par défaut
    merci pour vos réponses

    cerede2000, "Entrer référence :" c'est ce qui est marqué dans la fenêtre qui s'ouvre lorsque l'on lance la requête afin qu'on entre la référence pour laquelle on veut des informations

    Philippe pour le code que tu m'as donné en exemple, les paramètres représentent la valeurs pour lesquelles ou fait la requête?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Si tu utilise CreatObject pas besoin de références
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dim Conn As Object 
    Dim mrs As Object 
     set Conn=CreatObjecr("ADODB.Connection")
    Dim sconnect As String
     
    resu = 0
    sconnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Baptiste\Documents\BD_LACHATSA.accdb;Persist Security Info=False;"
     
    Conn.Open sconnect
     
     sSQLSting = "SELECT * From [tb_principale] ;"
    Set mrs=CreaObject("ADODB.Recordset")
     mrs.Open sSQLSting, Conn

Discussions similaires

  1. Requetes acces lancées depuis Excel avec variables
    Par jackfred dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 19/06/2007, 15h37
  2. Requete sql via vba
    Par Echizen1 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 10/12/2006, 16h13
  3. Sécurisation sources/code d'accès appli VBA Excel
    Par Pat_TOTO dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2006, 17h39
  4. [VBA] [ACCESS] Accès à une requete Access via VBA
    Par Yanmeunier dans le forum Access
    Réponses: 3
    Dernier message: 16/03/2006, 11h48
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

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