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 :

SQL Recordset dynamique


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 153
    Par défaut SQL Recordset dynamique
    Bonjour,

    Je me bats depuis 2 semaines sur un recordset.
    La requête sauvegardée fonctionne.
    Je n'arrive pas à la faire fonctionner en dynamique.

    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
    Dim db As Database
    Dim Req1 As Recordset
    Dim Sql1 As String
    Set db = CurrentDb
    Sql1 = "SELECT CodeClairSMA.IdGestion, MaterielSMA.IdPosition" _
    & "FROM CodeClairSMA INNER JOIN MaterielSMA ON CodeClairSMA.IdCodeSMA = MaterielSMA.IdCodeSMA" _
    & "GROUP BY CodeClairSMA.IdGestion, MaterielSMA.IdPosition" _
    & "HAVING (((CodeClairSMA.IdGestion) < 3) And ((MaterielSMA.IdPosition) = 11)) ORDER BY MaterielSMA.IdPosition"
     
    Set Req1 = db.OpenRecordset(Sql1)
    While Not Req1.EOF
    srtemp = Req1.Fields("idposition")
    Select Case StrTemp
        Case Is <> 11
        MsgBox ("Pas d'enregistrement!")
    Exit Sub
    Case Else
    End Select
    Wend
    J'ai l'erreur 3075: Erreur de syntaxe..

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 148
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sql1 = "SELECT CodeClairSMA.IdGestion, MaterielSMA.IdPosition" _
    & "FROM CodeClairSMA INNER JOIN MaterielSMA ON CodeClairSMA.IdCodeSMA = MaterielSMA.IdCodeSMA" _
    & "GROUP BY CodeClairSMA.IdGestion, MaterielSMA.IdPosition" _
    & "HAVING (((CodeClairSMA.IdGestion) < 3) And ((MaterielSMA.IdPosition) = 11)) ORDER BY MaterielSMA.IdPosition"
    Et les espaces ?
    si tu regarde le contenu de ta variable Sql1 tu verras qu'il en manque...

  3. #3
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonsoir,

    loufab voudrais dire par la les espaces qui devraient précéder chaque clause à savoir FROM, GROUP BY et HAVING.

    Bon courage et @+

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 153
    Par défaut
    Merci,

    C'est mieux avec les espaces.

    j'ai une autre erreur, "Erreur d'exécution 13 : incompatibilité de type"

    J'approfondis mes recherches.

    Merci encore!

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 153
    Par défaut
    La compatibilité de type vient de la bibliothèque :
    J'ai déclaré de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim db As DAO.Database
    Dim Req1 As DAO.Recordset
    Apparemment ma requête ne me retourne aucun enregistrement.
    Access me retourne : "objet requis"

    Je progresse
    Merci

  6. #6
    Membre Expert
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Par défaut
    Bonsoir,

    Dans un de tes posts précédents, tu as mis un code duquel j'ai tiré l'extrait suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set Req1 = db.OpenRecordset(Sql1)
    Et tu disais avoir une erreur...
    D'après moi, l'erreur ne provient pas de la bibliothèque !? mais plutôt de la manière dont tu as écrit le bout de code ci-dessus.
    Bref, ton recordset est une instruction SQL qui ne peut pas être initialisé comme un dbOpenTable qui, je pense, semble être l'option par défaut pour l'ouverture d'un objet recordset. Il faut, d'après moi, l'ouvrir en dbOpenDynaset. De ce fait, le bout de code ci-dessus devrait être écrit de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Req1 = db.OpenRecordset(Sql1, dbOpenDynaset)
    A toi et dis-nous des nouvelles.

    Bon courage et @+

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

Discussions similaires

  1. [PL/SQL] Curseur dynamique
    Par dcollart dans le forum Oracle
    Réponses: 2
    Dernier message: 09/11/2009, 10h08
  2. [SQL] head dynamique & sql
    Par baladeornitho dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 21/11/2006, 20h30
  3. [VB & SQL] Recordset reste vide apres SELECT
    Par ZeGuizmo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/06/2006, 09h04
  4. Réponses: 1
    Dernier message: 17/03/2006, 07h21
  5. [pb requête sql] Requête dynamique
    Par viny dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 15/09/2005, 12h31

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