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 :

Problème sql en vba [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Par défaut Problème sql en vba
    Bonjour,

    Mon code ci-après ne fonctionne pas et je ne comprends pas pourquoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
    Dim sSQL As String
    Dim strSynt As String
     
        sSQL = Left(CurrentDb.QueryDefs("RqtForme").SQL, Len(CurrentDb.QueryDefs("RqtForme").SQL) - 3) & " WHERE (((IDBesoin)=3));"
     
        Set rst = CurrentDb.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)
        If Not rst.EOF Then
        rst.MoveFirst
        Debug.Print rst.RecordCount
        rst.Close
        Exit Sub
        End If
    J'ai une erreur sur rst.movefirst.
    Ma chaine ssql est correcte (je fais un debug.print je récupère la chaine sql puis la colle dans la créateur de requête est le résultat de la requête est bien celui que j'attends. D'ailleurs, ce résultat me donne 3 enregistrements mais quand je passe avec mon code et que je fais un debug.print je ne récupère qu'un seul enregistrement...).

    Quelqu'un peut-il m'aider ?

    Autre élément étrange : j'utilise ce code pour d'autres besoin et il fonctionne très bien.

    Merci

  2. #2
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Bonjour AidezMoiSvp,

    ta requête n'est pas fausse au niveau syntaxe mais :

    If Not rst.EOF Then
    Si ça n'est pas la fin de l'enregistrement

    rst.MoveFirst
    Aller au début

    je ne vois pas trop à quoi ça sert !!

    Curt

  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
    Bonjour,

    Les méthodes .MoveFirst .MoveLast .MovePrevious ne sont pas prises en charge pour des recordset «En avant seulement» (dbOpenForwardOnly).
    Essaie le type «Instantané» (dbOpenSnapshot).

    .RecordCount indique le plus souvent le plus grand nombre d'enregistrements parcourus.
    Il n'indique le nombre réel d'enregistrements que dans certaines conditions.
    (Voir l'aide en ligne pour plus de détails.)
    La méthode qui fonctionne tout le temps avec un recordset supportant .MoveLast, est de faire un .MoveLast pour mettre à jour .RecordCount.
    Ensuite faire un .MoveFirst si tu dois parcourir l'ensemble du jeu d'enregistrements.

    A+

  4. #4
    Membre éclairé
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Par défaut
    Merci à vous deux pour les explications

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

Discussions similaires

  1. Problème avec les apostrophes dans le sql en VBA
    Par cyrilboulan dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 14/03/2017, 10h11
  2. [AC-2007] Problème SQL en VBA
    Par selverine dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/07/2011, 10h42
  3. Problème SQL dans VBA
    Par Basicnav dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/02/2010, 14h03
  4. problème sql en vba
    Par maxime350 dans le forum VBA Access
    Réponses: 8
    Dernier message: 16/06/2008, 11h34
  5. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24

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