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 :

Requête SQL Direct et paramètre variable


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut Requête SQL Direct et paramètre variable
    Bonjour,

    J'utilise une bdd access pour accéder à une source oracle. pour celà j'ai créé une connexion et utilise une requête de type "SQL Direct". jusque là pas de problème, la requête s'exécute et me renvoi bien les valeurs. cependant, les paramètres sont inscrits "en dur" et je les voudrais en variable sélectionnables à partir d'un formulaire.

    J'ai bien trouvé l'option parameters "mon paramètre" format, mais visiblement le silo sur lequel je travail ne comprend pas cette syntaxe.

    J'ai essayé en vba, mais je dois avoué que bien qu'ayant lu le tutoriel "connexion odbc" je n'arrive pas à mes fins.

    Pour info, j'utilise le pilote "Oracle in HoraHome92" et le paramètre qui m'interesse est une date au format "aaaa-mm-dd"

    Si quelqu'un à une solution, je l'en remercie d'avance

  2. #2
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut Suite
    Bonjour,

    Suite des évènements :j'ai trouvé des exemples de code pour des connexions dsn sql serveur, pour mysql, fait plein de tests à l'aide des tutoriels "définition et manipulation de données avec DAO" et "connexion ODBC" mais sans succés

    Pourriez-vous me fournir un bout de code vba permettant de se connecter à une source ODBC et de lancer une requête SQL (via access) ?

    Merci d'avance

  3. #3
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Je ne pense pas qu'une requête SQL-Direct puisse être paramétrable comme une requête Access standard.

    Mais on peut manipler le code SQL en VBA.

    Exemple :
    J'ai un formulaire avec une zone de texte txtPays et un bouton CmdOuvrirRequeteSQLdirect.
    Je tape le début d'un nom de pays dans la zone de texte, puis en cliquant sur le bouton, je vais modifier le code de la requête pour y intégrer mon paramètre.
    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
    Private Sub CmdOuvrirRequeteSQLdirect_Click()
    Dim db As DAO.Database, qdef As DAO.QueryDef
    Dim strNomRequete As String, strSQL As String
     
    ' Nom de l'objet requête Access SQL-Direct
    strNomRequete = "sqlsvrClients"
    ' Code SQL de la requête SQL-Direct
    strSQL = "SELECT * FROM Clients" & vbCrLf
    ' On intègre le paramètre (ici zone de texte txtPays)
    strSQL = strSQL & "WHERE Pays LIKE '" & Me.txtPays & "%'"
     
    ' On ferme la requête si elle est déjà ouverte en
    ' mode feuille de données
    DoCmd.Close acQuery, strNomRequete
    ' On référence la base de données en cours
    Set db = CurrentDb
    ' on référence un objet QueryDef sur la requête SQL-Direct
    Set qdef = db.QueryDefs(strNomRequete)
    ' on modifie le code SQL de la requête SQL-Direct
    qdef.SQL = strSQL
    Set qdef = Nothing
    Set db = Nothing
    ' on ouvre la requête
    DoCmd.OpenQuery strNomRequete
     
    End Sub
    A+

  4. #4
    Membre habitué
    Inscrit en
    Mars 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 10
    Par défaut Merci !
    Merci beaucoup LedZep !

    Ta méthode fonctionne à merveille !

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] requête SQL Direct
    Par Darraji22 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 13/02/2011, 14h27
  2. Requête SQL query avec paramètre non représentable graphiquement
    Par bimone dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/08/2009, 17h26
  3. [AC-2003] création d'une requête SQL directe en VBA
    Par patbeautifulday dans le forum VBA Access
    Réponses: 3
    Dernier message: 25/06/2009, 14h09
  4. Requête SQL Direct et tables locales
    Par Chtulus dans le forum Access
    Réponses: 7
    Dernier message: 07/05/2008, 13h43
  5. Requête SQL Direct à partir de VBA
    Par petitmic dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 25/05/2007, 17h35

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