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 :

Peut-on utiliser openrecordset avec une requête ?


Sujet :

VBA Access

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    683
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 683
    Points : 237
    Points
    237
    Par défaut Peut-on utiliser openrecordset avec une requête ?
    Bonjour,

    Je viens de m'apercevoir que le code que j'avais récupéré ne marche pas.
    Je l'ai modifié en pointant sur une de mes requêtes mais il ne trouve qu'une 1 ligne (sur 15).

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Set bds = DBEngine.Workspaces(0).Databases(0)
     
     
                Set Rst1 = dbs.OpenRecordset(Requete_Commandes)  'XXXX   NOM REQUETE
                NBF = Rst1.RecordCount
                MsgBox ("nbre de BC : " & NBF)
    NBF me sot 1 au lieu de 15


    J'ai essayé de mettre directement le code SQL de ma requête (qui marche) mais à la place, j'obtiens erreur d'exécution 3075 erreur de syntaxe... Alors que celle-ci marche ailleurs ?!

    Savez-vous comment je peux faire un openrecordset sur une requête ?

    Merci
    Thibault

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,

    Je me souviens avoir lu que si rst1 est sur une table externe, rst1.recordcount renvoie le nombre d'enregistrements lus !

    As-tu essayé de parcourir ton recordset pour voir s'il n'a bien qu'une ligne ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Points : 30
    Points
    30
    Par défaut mettre le recordset en fin
    Je confirme ce que dit nico84: pour avoir le nombre d'enregistrements d'un recordset, il faut au préalable placer celui-ci sur le dernier enregistrement. Dans le cas contraire, les données fournies par Recordset.RecordCount sont erronées.

    Soit la toute petite modif dans le code envoyé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Set bds = DBEngine.Workspaces(0).Databases(0)
                Set Rst1 = dbs.OpenRecordset(Requete_Commandes)  'XXXX   NOM REQUETE
                Rst1.Movelast
                NBF = Rst1.RecordCount
                MsgBox ("nbre de BC : " & NBF)
    Là, ça affiche le bon décompte...

  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
    Je confirme ce que dit nico84: pour avoir le nombre d'enregistrements d'un recordset, il faut au préalable placer celui-ci sur le dernier enregistrement.
    Incomplet

    Recordcount retourne le nombre d'enregistrements total dans un recordset de type dbOpenTable et le numéro du dernier enregistrement atteint dans les recordset d'un autre type

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 31
    Points : 30
    Points
    30
    Par défaut oups...
    ...au temps pour moi: je n'avais pas connaissance de cette subtilité. Merci donc pour l'info.

Discussions similaires

  1. Peut-on trouver le trou d'une suite avec une requête SQL ?
    Par clavier12AZQSWX dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/03/2014, 07h57
  2. Réponses: 3
    Dernier message: 25/10/2013, 08h46
  3. Réponses: 9
    Dernier message: 19/12/2011, 17h11
  4. Peut on utiliser Hibernate avec une BDD de type Myisam?
    Par Annsen dans le forum Hibernate
    Réponses: 19
    Dernier message: 04/05/2011, 22h58
  5. Utiliser les données importées avec une requête
    Par Shinyshine dans le forum C#
    Réponses: 20
    Dernier message: 18/05/2010, 14h48

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