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 nombre d'enregistrements dans mon recordset


Sujet :

VBA Access

  1. #1
    Membre régulier
    Femme Profil pro
    Ingénieur laser
    Inscrit en
    Septembre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur laser
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2014
    Messages : 98
    Points : 76
    Points
    76
    Par défaut Problème nombre d'enregistrements dans mon recordset
    Bonjour,

    Ma BDD Optique a bien avancé et je découvre maintenant la création d'Etat, mais j'ai un problème que je ne comprends pas:

    Sur l'ouverture de mon état je crée le code suivant:

    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
    20
    21
    Dim oDb As DAO.Database
    Dim oTbl As DAO.TableDef
    Dim oRst As DAO.Recordset
    Dim oRst2 As DAO.Recordset
    Dim oRst3 As DAO.Recordset
    Dim oString As String
    Dim oCaracteristique() As String
    Dim oChamps As String
    Dim oNumeroCaracteristique As Long
    Dim TailleTableau As Integer
    Dim j As Integer
     
    Set oDb = CurrentDb
    Set oTbl = oDb.TableDefs("Tbl_ChampOptique")
    oString = "Select * FROM Tbl_ChampOptique"
    Set oRst = oDb.OpenRecordset(oString, dbOpenDynaset)
    Debug.Print oTbl.RecordCount
    Debug.Print oRst.RecordCount
    .
    .
    .
    J'ai ajouté des lignes et supprimé le filtre de ma requête car je pense que les problèmes que j'ai ensuite viennent de là.
    Contrairement à ce qu'on pourrait penser, le nombre d'enregistrements de oTbl est de 15, et le nombre d'enregistrement de oRst est de 1.
    Je ne comprends pas pourquoi. Je tourne en rond depuis le début de l'aprèm et je ne vois pas ce qui cloche. Si vous avez une idée...
    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    C'est une attrape classique.

    Pour les objets DAO.Recordset, le nombre d'enregistrements n'est connu que quand TOUS les enregistrements on été parcourus, sinon il indique 1.

    Une solution possible est juste après l'ouverture du recordset de mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if not monRecordset.eof() then
       monRecordset.movelast 'Force Access à parcourir tous les enregistrements
       monRecordset.movefirst 'Revient au début
    end if
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Rajoutes ceci après le Set oRst et avant les comptages.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    oRst.MoveLast
    oRst.MoveFirst
    Cela devrait fonctionner.

    Philippe

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Points : 165
    Points
    165
    Par défaut
    Bonjour.

    Le réponse qui me vient immédiatement en regardant tes définitions
    Dim oRst As DAO.Recordset
    est que tu as instancier un objet et non une collection. Évidemment l'objet est seul.

    Cordialement.

  5. #5
    Membre régulier
    Femme Profil pro
    Ingénieur laser
    Inscrit en
    Septembre 2014
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur laser
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2014
    Messages : 98
    Points : 76
    Points
    76
    Par défaut
    Merci à vous
    Ce n'est pourtant pas la première fois que j'utilise ce recordcount sans avoir ce genre de problème.

    En tout cas ça marche et j'ai perdu une demi journée pour rien ^^
    Merci encore!!

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

Discussions similaires

  1. Compter le nombre d'enregistrements dans un recordset
    Par possible924 dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/05/2013, 18h52
  2. compter un nombre d'enregistrement dans un recordset
    Par adelsunwind dans le forum IHM
    Réponses: 2
    Dernier message: 21/10/2008, 19h11
  3. [SQL] Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 14/08/2006, 13h28
  4. Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/08/2006, 13h21
  5. [SQL][ACCESS]Compter le nombres d'enregistrement dans deux..
    Par pc152 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 05/06/2004, 12h30

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