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

Access Discussion :

Erreur sur openRecordset à pratir d'un queryDef


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut Erreur sur openRecordset à pratir d'un queryDef
    Bonjour à tous,

    Voilà je n'arrive pas ouvrir un recordSet sur une querydef nouvellement créée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        Dim db        As Database
        Dim rsTmp     As DAO.Recordset
        Dim qdfTmp    As QueryDef
    ....
    Set db = CurrentDb
        'création de la requete temporaire
        Set qdfTmp = db.CreateQueryDef("QueryTmp", "SELECT [T_export_stock].référence FROM [T_export_stock]")
        'ouverture d'un recordset sur la requete
        Set rsTmp = qdfTmp.OpenRecordset(dbOpenDynaset, dbReadOnly)
    Je tombe sur une erreur 3061, trop peu de paramètres. 1 attendu

    Pourtant dans ça ressemble fort à ce qui est dit dans l'aide access.
    C'est surement une erreur très bete, mais ça fait longtemps que je bloque dessus.
    Merci d'avance pour vos réponses

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Le nom du champ est peut être mal orthographié

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    Non, non, j'ai essayé avec (select *) et ça ne fonctionne pas non plus. Pourtant la requete est bien créé, j'arrive à y accéder à partir d'access.c'est très bizarre. J'ai aussi essayé avec les différents arguments de openRecordSet et meme échec.

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    T_export_stock est bien une table ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    Non c'est une autre requete(non temporaire celle-ci). mais c'est bizarre comme problème vu que la requete est bien créée et renvoi le résultat escompté, l'ouverture d'un recordset ne devrait pas poser de problème.

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Quel est le SQL de cette requête ?

    DAO ne peut interroger des formulaires par exemple. Je pense que le problème est là.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    Pour résumer :

    Je veux mettre en place un système simple d'export de fichier:
    -J'ai donc créer une requete T_export_stock
    SELECT [00300-articles].art_ref_cli AS Référence, [00300-articles].art_designation AS désignation, [00300-articles].art_couleur AS couleur, [00300-articles].art_taille AS taille, [00300-articles].art_prix AS prix, [00300-articles].art_poid AS poids, [00300-articles].art_stock_info AS [stock disponible], [00300-articles].art_stock_reserve AS [stock reservé], [00200-fournisseurs].frn_nom AS fournisseur, [00700-categories].cat_nom AS catégorie, [00750-sous_categories].sscat_nom AS [sous-catégorie]
    FROM [00750-sous_categories] RIGHT JOIN ([00700-categories] RIGHT JOIN ([00200-fournisseurs] RIGHT JOIN [00300-articles] ON [00200-fournisseurs].frn_id = [00300-articles].frn_id) ON [00700-categories].cat_id = [00300-articles].cat_id) ON [00750-sous_categories].sscat_id = [00300-articles].sscat_id
    WHERE ((([00300-articles].cli_id)=[Formulaires]![INDEX]![id_client]));
    Bon elle n'est pas si complexe qu'elle y parait, elle fait juste des jointures entre les tables articles, fournisseurs, catégories, sous-catégories.
    - Dans mon formulaire j'ai une zone de liste qui contient les champs de cette requete.
    -L'utilisateur selectionne les champs qu'il veut exporter.
    -Le bouton export lance le code contenant le querydef et le recordset qu ne veut pas s'ouvrir,
    ----> mon but est de créer une requete temporaire à partir de la sélection faite par l'utilisateur et d'exporter le résultat de cette requete.

    J'espère avoir été clair

  8. #8
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 898
    Points : 4 787
    Points
    4 787
    Par défaut
    Essaie de mettre le Sql dans une variable
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'création de la requete temporaire
        dim strSql as String
    ...
    strSql ="SELECT [T_export_stock].référence FROM [T_export_stock]"
        Set qdfTmp = db.CreateQueryDef("QueryTmp", strSql )
    ...

    Et puis par soucis de cohérence complètes tes références DAO.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim db        As DAO.Database
        Dim rsTmp     As DAO.Recordset
        Dim qdfTmp    As DAO.QueryDef
    Bonne journée
    "Always look at the bright side of life." Monty Python.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    Essaie de mettre le Sql dans une variable
    Code SQL :

    'création de la requete temporaire dim strSql as String ... strSql ="SELECT [T_export_stock].référence FROM [T_export_stock]" Set qdfTmp = db.CreateQueryDef("QueryTmp", strSql ) ...


    Et puis par soucis de cohérence complètes tes références DAO.
    Code :

    Dim db As DAO.Database Dim rsTmp As DAO.Recordset Dim qdfTmp As DAO.QueryDef


    Bonne journée
    J'ai essayé sans succès

    j'ai aussi essayer de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rsTmp = qdfTmp.OpenRecordset()
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rsTmp = db.OpenRecordset("QueryTmp")
    sans succès

  10. #10
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    mmm

    J'ai donné la raison

    Ta requête fait appel à des contrôles de formulaires, ce n'est pas possible de les exécuter avec DAO, d'où l'intéret de créer de vraies requêtes paramétrées

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 96
    Points : 78
    Points
    78
    Par défaut
    Ah ok d'accord, je n'avais pas compris ça dans ce sens là.
    Ok je vais corriger ça, je vais mettre le filtre au moment de la création de la requete temporaire.


    Merci beaucoup

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

Discussions similaires

  1. [AC-2007] Erreur 3061 sur "OpenrecordSet" basé sur une requête SQL
    Par MarcelB dans le forum Access
    Réponses: 1
    Dernier message: 29/09/2014, 05h30
  2. Réponses: 1
    Dernier message: 16/12/2010, 14h25
  3. [AC-2003] Erreur 3061 sur OpenRecordset, 2 paramètres attendus
    Par tototiti2008 dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/08/2009, 11h53
  4. [SQL] Erreur sur Querydefs
    Par Zawawi dans le forum VBA Access
    Réponses: 3
    Dernier message: 10/11/2007, 14h19
  5. Réponses: 13
    Dernier message: 27/02/2007, 10h09

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