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 :

[DAO] Recordset avec paramètre


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 336
    Points : 166
    Points
    166
    Par défaut [DAO] Recordset avec paramètre
    Bonjour

    Comment se fait-il que la déclaration d'un recordse de la façon suivante ne fonctionne pas et me dise : 1 parmètre manquant (monParamètre...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim rst as DAO.Recordset
    dim SQL as string
     
    SQL = "SELECT * FROM MaTable WHERE MonChamp=" & Forms![tartenpion].monParamètre
     
    set rst = CurrentDb.OpenRecordset(SQL)
    alors que le SQL s'affiche trés bien avec monParamètre si je fais un debug.print SQL...

    merci

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    alors que le SQL s'affiche trés bien avec monParamètre si je fais un debug.print SQL...
    Et as-tu essayé d'exécuter cette requête SQL voir si elle était correcte ?

    Aussi, pensez à mentionner le numéro de l'erreur ainsi que le texte exacte de l'erreur dans ce genre de situation.

    En espérant t'aider.

  3. #3
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    Citation Envoyé par guen
    Bonjour

    Comment se fait-il que la déclaration d'un recordse de la façon suivante ne fonctionne pas et me dise : 1 parmètre manquant (monParamètre...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim rst as DAO.Recordset
    dim SQL as string
     
    SQL = "SELECT * FROM MaTable WHERE MonChamp=" & Forms![tartenpion].monParamètre
     
    set rst = CurrentDb.OpenRecordset(SQL)
    alors que le SQL s'affiche trés bien avec monParamètre si je fais un debug.print SQL...

    merci

    C'est Exactement le problème que j'avais, et je viens de le résoudre gràce à ça :

    Alors pour commencer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQL = "SELECT * FROM MaTable WHERE MonChamp= " & _ ' saut de Ligne -->& _  "Forms![tartenpion].monParamètre;"

    Puis tu Rajoutes au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     set rst = CurrentDb.OpenRecordset(SQL)
    Tu rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute (SQL)

  4. #4
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 336
    Points : 166
    Points
    166
    Par défaut
    le message d'erreur est : "Trop peu de paramètre : 1 attendu" erreur 3061
    La requête s'exécute trés bien en SQL sous le requêteur ACCESS (appel classique à un paramètre d'un formulaire).
    Si je remplace mon paramètre par la valeur en dur, mon recordset fonctionne trés bien...

    Pour faressam : je ne comprends pas pourquoi le saut de ligne change qq chose mais je vais essayer mais ensuite, je ne veux pas exécuter ma requête (d'ailleur c'est une requête sélection et non action) mais déclarer un recordset qui alimente une liste listeview...

    merci de votre aide à tous les 2

  5. #5
    Membre habitué
    Homme Profil pro
    consultant environnement et développement d'applications de base de données
    Inscrit en
    Janvier 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : consultant environnement et développement d'applications de base de données
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2006
    Messages : 336
    Points : 166
    Points
    166
    Par défaut
    Laissez tomber il n'y avait en fait aucune erreur dans mon code !!! mais une erreur dans ma requête source...désolé pour le temps perdu !

  6. #6
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    ça arrive

  7. #7
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    C'est Exactement le problème que j'avais, et je viens de le résoudre gràce à ça :

    Alors pour commencer :

    Code :

    SQL = "SELECT * FROM MaTable WHERE MonChamp= " & _ ' saut de Ligne -->& _ "Forms![tartenpion].monParamètre;"



    Puis tu Rajoutes au lieu de
    Code :

    set rst = CurrentDb.OpenRecordset(SQL)


    Tu rajoute
    Code :

    CurrentDb.Execute (SQL)
    Juste pour info car je viens de voir ça ... je ne pense pas vraiment que ton problème soit résolu. L'instruction CurrentDb.Execute, a ma connaissance, n'est absolument pas adapté à prendre en paramètre une requête de sélection, mais uniquement une requête d'action (UPDATE, INSERT ...).

  8. #8
    Inscrit
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    992
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 992
    Points : 217
    Points
    217
    Par défaut
    oui tu as raison,
    je pense que pour un Simple Select:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    Dim Req As QueryDef
    Dim StrSql As String
     
     
    Set Req = CurrentDb.CreateQueryDef("ReqCR", StrSql

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2009, 10h49
  2. [A-03] Recordset DAO sur requete paramétrée Access
    Par fxbrg dans le forum VBA Access
    Réponses: 12
    Dernier message: 23/03/2009, 16h34
  3. [DAO] problème avec Requery sur mon recordset
    Par vcattin dans le forum VBA Access
    Réponses: 8
    Dernier message: 03/04/2007, 23h08
  4. Fonction avec un recordset en paramètre
    Par Poussy-Puce dans le forum ASP
    Réponses: 1
    Dernier message: 20/01/2006, 20h40
  5. Manipulation de Recordset avec DAO
    Par Sinclar dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/09/2005, 20h19

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