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

Requêtes et SQL. Discussion :

Problème de recordset avec requête SELECT


Sujet :

Requêtes et SQL.

  1. #1
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut Problème de recordset avec requête SELECT
    Salut à tous,

    Je débute en VBA avec Access et j'ai besoin d'effectuer différents traitements avec VBA pour collecter et formater des données notamment.

    Je vous mets mon code actuel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim req1 As Recordset
    Dim sql1 As String
     
    Set db = CurrentDb()
     
    sql1 = "SELECT c.id_c AS id FROM client c, intervenir intr WHERE c.id_c=intr.id_c AND YEAR(date)>(YEAR(now())-1) AND YEAR(date)<(YEAR(now())+1) GROUP BY c.id_c ORDER BY c.id_c;"
     
    Set req1 = db.OpenRecordset(sql1)
    Et il me retourne cette chère erreur 13: incompatibilité de type sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set req1 = db.OpenRecordset(sql1)
    Je comprends pas...
    Et d'ailleurs au passage, quelle est la méthode pour récupérer le nombre de lignes retournées? et les valeurs retournées svp?

    Merci d'avance
    PS: ah juste un truc, j'ai testé la requête, elle fonctionne impeccablement

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    En lecture rapide je dirai que tu as du SQL non conforme aux syntaxes reconnues pas le Jet.

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM client as c, intervenir as intr

    PS: ah juste un truc, j'ai testé la requête, elle fonctionne impeccablement
    Ha bon? Tu l'as essayé dans Access?

    Par ailleurs, pourquoi faire la jointure par un Where? utilises un INNER JOIN , c'est mieux.

  3. #3
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Sinon, n'aurais-tu pas les biblios ADO et DAO de référencées?

    Essayes avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim req1 As DAO.Recordset

  4. #4
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    ça marche pas...

    j'ai testé les alias, ça marche pas.

    Et les inner join, pourquoi pas, mais je ne sais pas m'en servir et à vrai dire, je trouve que ça ne change pas grand chose quand les jointures avec Where sont bien faites

  5. #5
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Citation Envoyé par mout1234
    Sinon, n'aurais-tu pas les biblios ADO et DAO de référencées?

    Essayes avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim req1 As DAO.Recordset
    Désolé, je n'ai qu'un truc qui se rapproche seulement du nom et qui s'appelle ADODB...

  6. #6
    seb92400
    Invité(e)
    Par défaut
    Juste une question b****...

    Pourquoi ne recopies-tu pas le code sql de ta requête si tu l'as testée et qu'elle fonctionne ?

    N'oublie pas non plus le :

    Pour compter, regarde l'aide d'Access sur RecordCount...

  7. #7
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    YEAR(date)
    Essayes en mettant
    L'inner join est préférable car elle favorise- il me semble - les mecanismes d'optimisation du moteur de requêtes (Rushmore).

  8. #8
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    C'est ce que j'ai fait pour la requête SQL, elle a fonctionné dans l'outil de requête d'access, je l'ai fait là et ensuite je l'ai recopié tout simplement avec un copier/coller...

    Par contre, je n'ai pas ADO ni DAO, mais il ne me fait pas d'erreur en ce qui concerne mon objet db, en tout cas pas avant la ligne en question...

  9. #9
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Citation Envoyé par gwinyam
    Désolé, je n'ai qu'un truc qui se rapproche seulement du nom et qui s'appelle ADODB...
    C'est donc que tu fais un mélange des genres!

    Ton code correspond à du DAO. Il te faut donc ajouter la référence à la bibliothèque DAO.

  10. #10
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Question bête, je fais comment?

  11. #11
    seb92400
    Invité(e)
    Par défaut
    re,

    Va dans l'éditeur vba, puis dans le menu Outils/Références, coche Microsoft DAO 3.6 Object Library (ou autre numéro suivant la version d'Access)

    Ensuite, tu peux également écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Req1 = Currentdb.OpenRecordset(sql1)
    Il est toutefois largement conseillé de déclarer les objets et les variables...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim db As DAO.DataBase
    Dim Req1 As DAO.RecordSet
    Dim Sql1 As String
     
    Set db = CurrentDb
    Set Sql1 As ........
    Set Req1 = db.OpenRecordset(Sql1)

    Question bête, je fais comment?
    Il y a un tutoriel complet et indispensable à lire impérativement sur DAO... Très important... Très...

  12. #12
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ok merci

    Eh vous savez quoi, maintenant ça marche

    Ah les mecs, je vous aime

    Allez, c'est résolu, c'était juste l'option qu'il fallait activer, les boules...

  13. #13
    seb92400
    Invité(e)
    Par défaut
    Je sais pas vous... Mais, moi, perso, j'adore quand on me dit ça...

    Ah les mecs, je vous aime

  14. #14
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Mais de rien, c'est normal

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

Discussions similaires

  1. Problème avec Requête SELECT FROM
    Par PaulH38 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 30/05/2013, 14h57
  2. Résultat commençant par un chiffre avec requête SELECT
    Par nicolas.pissard dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/04/2010, 13h31
  3. Problème avec requête SELECT!
    Par Ronaldinho dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/08/2008, 14h44
  4. Problème d'états avec requêtes
    Par Claire07 dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2006, 13h57
  5. Case à Cocher avec Requête SELECT DISTINCT
    Par Polo_973 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 03/04/2006, 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