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

Access Discussion :

Limiter nombre d'enregistrement d'un sous-formulaire


Sujet :

Access

  1. #1
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut Limiter nombre d'enregistrement d'un sous-formulaire
    Bonjour à tous ...

    Voici ma question. J'aimerais limiter le nombre d'enregistrement possible pour un sous formulaire c'est à dire que j'aimerais avoir seulement 4 enregistrement possible dans ce sous formulaire et pas un de plus ...

    Es ce que cela est possible par le code ou alors par un autre moyen ???

    Merci de vos réponses et à tout bientôt ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  2. #2
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Slt,
    Dans ta requete source de ton sous form utilise le "SELECT TOP 4" en début d'instruction !
    En fait ta requete ne sortira que les 4 premiers enregistrements, donc ton sous-formulaire n'en présentera que 4 enregistrements !
    @+
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  3. #3
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Merci de ta réponse ... c'est pas totallement ce que je voulais faire ... mais cela marche ...

    J'aimerais en fait interdir l'insertion d'enregistrement si il y en à déjà 4 par rapport à un champ de mon sous-formulaire

    Es ce que cela est possible ???

    Merci de vos réponses ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  4. #4
    Membre actif Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Points : 217
    Points
    217
    Par défaut
    Re,
    Haa là je peux pas t'aider !
    Empêcher que SI il y a déja 4 enregistrements ....
    Et donc SI il y a mois de 4 pouvoir ajouter ??
    Désolé je sais pas!
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  5. #5
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Oki alors je vais essyer d'aller faire un ptit tour dans le monde si vaste de VBA pour créer un module qui me fasse mes tests ...

    Ouais ouais ... Si quelqu'un à une autre idée, je prends volontier ...

    Merci des réponses que vous me donnez ...

    +++
    ++
    +
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,

    Ton sou formulaire est sûrement lié à une table, ou à une requête, essaye par DAO et un recordset d'avoir le nombre d'enregistrements avec un RecordCount. Et suivant la valeur bloque ton formulaire.

    Je n'ai jamais essayé, c'est juste une piste

    Starec

  7. #7
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Merci pour ta piste ... je vais jeter un oeuil ...

    A plus les gens ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  8. #8
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Voici ce que j'ai trové ....

    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
    22
    23
    Sub nombre_enregistrement()
     
    'Déclaration des variables
     
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
     
    'Ouverture de la table TB_CARACTERISTIQUES
    Set db = CurrentDb
    Set rst = dbOpenRecorset("TB_CARACTERISTIQUES", dbOpenDynaset)
     
    'Affichage des résultats
    MsgBox "Nombre d'enregistrements :" & rst.RecordCount
    If Not rst.EOF Then rst.MoveLast
    MsgBox "Nombre d'enregistrements :" & rst.RecordCount
     
    'Fermeture et libération des objets
    rst.Close
    Set rst = Nothing
    Set db = Nothing
     
     
    End Sub
    EN fait avec ce code j'aimerais déjà (pour commencer) afficher le nombre d'enregistrement que j'ai dans ma table mais j'ai une erreur qui me dit :
    Erreur de compilation
    Sub ou fonction non définie
    Savez vous d'ou vient le problème ???

    merci de vos réponses ...

    +++
    ++
    +
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  9. #9
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Salut,

    Il te manque un point sur la ligne set rst ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rst = db.OpenRecorset("TB_CARACTERISTIQUES", dbOpenDynaset)
    Par ailleurs, il faudrait vérifier que le dbOpenDynaset ne pose pas un pb d'accès au recordCount. Pourquoi pas dbOpenTable?

    Tu peux aussi chercher u nb d'enregistrements avec une fonction de domaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DCount("*","TB_CRACTERISTIQUES", "écrire ici la condition")
    Bonne chance,

    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  10. #10
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    Merci de ta réponse ... j'ai encore une erreur ... la voici :

    Erreur de compilation
    Membre de méthode ou de donnée introuvable
    Tu sais de quoi cela vient ???

    Merci pour ton aide ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  11. #11
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Il faut que tu montres de nouveau le code...

    A+
    pgz
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  12. #12
    Membre averti Avatar de snoopy69
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 737
    Points : 395
    Points
    395
    Par défaut
    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
    22
    23
    Sub nombre_enregistrement()
     
    'Déclaration des variables
     
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
     
    'Ouverture de la table TB_CARACTERISTIQUES
    Set db = CurrentDb
    Set rst = db.OpenRecorset("TB_CARACTERISTIQUES", dbOpenDynaset)
     
    'Affichage des résultats
    MsgBox "Nombre d'enregistrements :" & rst.RecordCount
    If Not rst.EOF Then rst.MoveLast
    MsgBox "Nombre d'enregistrements :" & rst.RecordCount
     
    'Fermeture et libération des objets
    rst.Close
    Set rst = Nothing
    Set db = Nothing
     
     
    End Sub
    Voili ... pardon ...

    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  13. #13
    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
    Salut j'apporte une partie de la solution

    Déjà il faudrait que ce soit une Function pour que tu puisse récupérer ton nombre d'enr.

    À la la vue de ton code, transforme ta Sub nombre_enregistrement en Function et ajoute

    nombre_enregistrement=rst.recordCount

    avant le rst.close.

    Tu associe ensuite dans une Sub pour l'événement 'Avant Insertion' dans ton form avec un code du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if nombreEnregistrement > 4 then
           msgbox "Pas plus de 4 enr"
        else
           'Annule l'insertion et ça je ne sais pas le faire :-(
    end if
    Tu peux aussi offrir un bouton Ajouter qui compte AVANT même de faire l'insertion.

    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.

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/02/2013, 16h34
  2. Réponses: 4
    Dernier message: 30/12/2011, 11h32
  3. [AC-2000] Définir le nombre d'enregistrements d'un sous formulaire
    Par mcfly37 dans le forum IHM
    Réponses: 7
    Dernier message: 15/05/2009, 10h39
  4. Réponses: 4
    Dernier message: 10/04/2009, 11h10
  5. compter le nombre d'enregistrements d'un sous formulaire
    Par Alexandre Sahli dans le forum Access
    Réponses: 5
    Dernier message: 02/02/2006, 15h47

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