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

IHM Discussion :

Constater le changement du nombre d'enregistrements d'une table


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 28
    Points
    28
    Par défaut Constater le changement du nombre d'enregistrements d'une table
    Bonjour,
    Comment constater l'augmentation du nombre d'enregistrements d'une table en utilisant l'événement timer (sur minuterie) d'un formulaire, afin de déclencher un traitement particulier?.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    il suffit de conserver le RecordCount au chargement du formulaire et lorsque cette valeur est modifiée. Utiliser un Dao.Recordset.

    Exemple :
    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
     Dim NbRecords as long, Rcd_Source As DAO.Recordset
     
    Private Sub Form_Load()
      Set Rcd_Source=CurrentDb.OpenRecordset("......")
      NbRecords=Rcd_Source.RecordCount
      Rcd.Close
    End sub
     
    Private sub Form_Timer()
     Set Rcd_Source = CurrentDb.OpenRecordset("...")
     If Rcd_Source.RecordCount > NbRecords Then
       'Traitement
        NbRecords=Rcd_Source.RecordCount
     End if
     Rcd_Source.Close
    End sub
     
    Private Sub Form_Close()
    If Not (Rcd_Source Is Nothing) Then Set Rcd_Source = Nothing
    End Sub

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 28
    Points
    28
    Par défaut Merci pour ta grande contribution
    Merci pour ta grande contribution, je vais la mettre en œuvre et je te tiendrai au courant du résultat

  4. #4
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 28
    Points
    28
    Par défaut Ta solution est limitée
    Merci pour ta contribution, mais ta solution semble limitée car le test se fait seulement au chargement du formulaire. Mais une fois que le formulaire est chargé, il n'y aucun moyen de constater le changement du nombre d'enregistrements de la table. En fait si je pose cette question, c'est parce que MS Access ne dispose pas des triggers pour modification des enregistrements d'une table.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur VBA Access
    Inscrit en
    Avril 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VBA Access

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 109
    Points : 1 535
    Points
    1 535
    Par défaut
    Bonjour,

    tu as raison, j'ai oublié certains éléments importants. Pour récupérer le nombre d'enregistrements d'un recordset il faut le parcourir une fois.

    Un truc ressemblant à ça :
    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 NbRecords as long, LocalDB As Dao.DataBase, RcdSource As DAO.Recordset
     
    Private Sub Form_Load()
      Set LocalDB=CurrentDB
      Set RcdSource=LocalDB.OpenRecordset("......")
      RcdSource.MoveLast
      NbRecords=RcdSource.RecordCount
      RcdSource.Close
      Set RcdSource=Nothing
    End sub
     
    Private sub Form_Timer()
     Set RcdSource = LocalDB.OpenRecordset("...")
     RcdSource.MoveLast
     If RcdSource.RecordCount > NbRecords Then
       'Traitement
        NbRecords=RcdSource.RecordCount
     End if
     RcdSource.Close
     Set RcdSource=Nothing
    End sub

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Décembre 2006
    Messages : 32
    Points : 28
    Points
    28
    Par défaut Merci, ça marche bien
    Bonjour,

    Merci mille fois pour cette solution, je l'ai testée et ça marche bien.

    Cordialement,

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

Discussions similaires

  1. [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
  2. 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
  3. [DB] Nombre d'enregistrements d'une table
    Par Mister Nono dans le forum Bases de données
    Réponses: 26
    Dernier message: 09/05/2006, 09h51
  4. [SQL] nombre d enregistrement d une table
    Par sharpeye dans le forum Access
    Réponses: 1
    Dernier message: 03/11/2005, 18h46
  5. Nombre d'enregistrement dans une table MySQL
    Par tom06440 dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 21/10/2005, 19h07

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