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 :

Définir le nombre d'enregistrements d'un sous formulaire [AC-2000]


Sujet :

IHM

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut Définir le nombre d'enregistrements d'un sous formulaire
    Bonjour a tous,

    je travail en ce moment sur un logiciel sous access (d'ou ma venue ici )

    ma problématique est que j'ai un formulaire avec deux sous formulaires à l'intérieur, le premier me donne divers paramètres (reférence groupe, type, quantité), et le deuxième (qui en fait pourrait être un sous formulaire du précédent mais n'en est pas un vu que ce sont tous deux des formulaires continus) doit afficher des réferences d'outillages dont le type est le même que celui du premier ss formulaire, et il doit en afficher autant que [quantité],

    C'est a dire que dans ce ss formulaire je doit avoir [quantité] enregistrements, quantité dépendant bien entendu de l'enregistrement ou je me trouve dans le premier ss formulaire.

    c'est la que le bas blesse, je n'ais même pas le début du commencement de la pointe d'une idée pour faire ca.

    Je précise que je ne peut pas avoir de table type [outillage dans groupe] qui il est vrai résoudrais tous mais poserais d'autres problèmes.

    voila, je suis conscient que ca demande plus de précisions, mais je ne vois pas trop quoi préciser parmis la somme d'infos possibles, donc n'hésitez pas posez des questions, j'y répondrais du mieux que je peut.

    Merci d'avances de vos réponses.

    Cordialement,
    Mcfly

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 063
    Points : 24 668
    Points
    24 668
    Par défaut
    Bonjour,

    Quelques pistes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dcount("monchamp","matable","mes critères")
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.Recordset.recordcount
    à toi de choisir suivant ton besoin (qui n'est pas clair pour moi)

    Cordialement,

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Merci de ta réponse, malheureuseument elle ne correspond pas a mon besoin, elle fait même le contraire^^ En fait ce que je veut n'est pas compter le nombre d'enregistrement dans le formulaire mais le définir!!!

    Effectivement mon besoin n'est pas très clair, alors je vais essayer de le clarifier en explicant le fonctionnement :

    Il s'agit donc d'un logiciel de gestion d'outillage, pour ce faire je créé un chantier (ou une commande ca revient au même) sur lequel j'envoie des outillages qui on chacuns une réference propre et un type d'outillage (clé de 10, clé a pipe, poste a souder etc...), seulement on n'affecte pas directement l'outillage au chantier, je passe par des groupements (qui permettent comme leur noms l'indique de regrouper des outillages, par exemple lorsque l'on commande un poste a souder, on commande automatiquement avec une rallonge électrique, la torche qui va bien, des baguettes...). Ces groupements ne réferences pas des outillages mais des types d'outillages afin que la personne qui passe des commandes n'ai pas à choisir tel ou tel outillage mais seulement un type d'outillage (en gros cette personne s'en fiche d'avoir le poste numéros trois ou le quatre, elle veut juste un poste), l'affectation "nominative" de l'outillage au chantier étant ensuite faite par le magasinier en charge de l'envoie sur site. Petite précision, un groupement peut contenir plusieur fois le même type d'outillage (dans une caisse à outil par exemple on va avoir 3 tournevis, 5 clés...)

    J'en arrive a mon problème, dans le formulaire de création de commande, j'ai donc trois sous formulaires :

    -Le premier sous formulaire liste tous les groupements présents dans la commande

    - Le deuxième sous formulaire liste tous les types d'outillages ainsi que les quantités commandées présents dans le groupement qui a le focus dans le premier sous formulaire

    - le troisième sous formulaire (celui sur lequel je bloque) quant à lui liste les outillages envoyés sur la commande, c'est à dire que pour un type d'outillage dans le groupement ou je veut 3 outillages de ce type, le sous formulaire va contenir trois enregistrements (ces enregistrements comprenants les champs RefOutillage, TypeOutillage, RefOutillage étant une liste déroulante me permettant de choisir une réference d'outillage en particulier).

    Voila, pour la construction des tables maintenant :

    -J'ai donc une table commande qui regroupe des infos sur la commande (localisation, client, N° commande...)
    -Une deuxième table détailcommande qui regroupe donc le contenu à proprement parler de la commande (qui est en relation avec la table commande via le n° de commande)
    -Une table groupements regroupant les infos sur les groupements (RefGroupement, désignation, disponibilité...)
    -Une table Detailgroupement, même raisonnement que la table DetailCommande, elle va représenter le contenu du groupement (Type d'outillage, quantité) En relation avec la table groupement via la réfèrence du groupement
    -une table type qui regroupe tout les types d'outillages (avec une arborescence Famille -> SsFamille -> Type)
    -Et enfin une table outillage qui regroupe toutes les infos sur les outillages (RefOutillage, typeOutillage, Affectation, type, Etat...)

    Voila, j'espère avoir éclairé votre lanterne, n'hésitez pas a demander des précision car c'est je doit l'avouer une base assez complexe (enfin pour moi pauvre amateur en access^^)

    Cordialement

    Mcfly

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

    Si tu veux limiter le nombre de données affichés sur ton sous-formulaire, il faut jouer sur la requête qui alimente celui-ci avec l'instruction TOP, va voir dans la FAQ Access (lien en bas de cette page), il y a des choses dessus.

    En fait ta question n'est pas très clair (du moins pour moi), pourquoi n'en afficher que 3

    Philippe

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Lol effectivement ma question n'est pas très clair^^ (j'ai moi même mis un bout de temps avant de saisir le truc )

    En fait mon sous formulaire n'est pas basé sur une requête, le but de ce sous formulaire est simplement d'affecter un (ou plusieurs suivant le nombre commandé) outillage à une commande, une requête ne me conviendrait pas car imaginons par exemple que je fasse la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Outillage.refOutillage FROM Outillage WHERE Outillage.Type = 'MonType' Top 3
    'Pas sur pour le top mais l'idée est la
    Dans ce cas la j'aurais effectivement mes trois enregistrements, mais en fait je veut donner la possibilité a l'opérateur de choisir son outillage (si pour une raison x ou y il veut envoyer l'outillage 4 et pas le 2 par exemple)

    Je ne peut pas afficher tous les enregistrements car par exemple pour un groupement ne contenant que quatre tournevis, je veut que l'opérateur ai la possibilité d'ajouter uniquement trois tournevis et non pas de choisir parmis tous les tournevis en stock (via une case a cocher par exemple) afin d'améliorer la lisibilité du formulaire.

    Voila, je joint aussi un bout de code que j'ai fait pour tester une idée qui serais d'utiliser le recordset du formulaire pour ajouter des enregistrements, petit problème, étant donné que le formulaire est vide à l'origine le recordset ne veut s'affecter au formulaire (et je ne suis pas très sur de la syntaxe aussi)

    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
    24
    25
    26
    27
    28
    Private Sub cmbType_GotFocus()
     
    Dim rst As DAO.Recordset
    Dim i As Integer
     
    'Affecte le recordset au sous formulaire ssfrmCommandOutil du form frmCreationModifChantier, l'évenement got focus
    'venant du sous formulaire ssfrmDetailGroupement qui détermine le type d'outillage
     
    Set rst = Forms![frmCreationModifChantier]![ssfrmCommandOutil].Form.Recordset
     
    'Ajoute un enregistrement tant que la quantité d'outillage n'est pas attteinte
     
    For i = 0 To Me.txtQuantite
     
        rst.AddNew
     
        'Affecte au controle cmbType de ssfrmCommandOutil la valeur du champ cmbtype de ssfrmDetailGroupement
     
        Forms![frmCreationModifChantier]![ssfrmCommandOutil].Form.cmbType.Value = Me.cmbType.Value
        rst.Update
     
    Next
     
    'rafraichi ssfrmCommandOutil
     
    Forms![frmCreationModifChantier]![ssfrmCommandOutil].Form.Requery
     
    End Sub
    voila ca fait une belle uzine à gaz tout ca mais je ne voit pas trop que faire d'autre.


    A la réflexion l'idée de la requête n'est peut être pas si mauvaise.... je vais tester ca et je vous tiens au courant, merci de votre aide

    Cordialement

    Mcfly

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re voisin tourangeau

    En fait tu fais un choix arbitraire de ne leur proposer que trois outils.

    En plus, il faut dans ta requête un critère pour ne pas visualiser les outils déjà pris.

    Philippe

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Re,

    en fait le choix est de n'afficher que trois "lignes" dans mon ss formulaire, mais de permetre le choix d'outillage avec une combobox qui est alimentée par une requête (c'est un choix "graphique" je dirais), pour ce qui est du critère pour ne pas visualiser les outils déjà pris il est bien implémenté, je l'ai juste retirer pour rentre le code plus lisible (je prend en plus en compte les maintenances sur l'outil )

    Cordialement

    Mcfly

    (et en avant le TFC )

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Avril 2009
    Messages : 238
    Points : 183
    Points
    183
    Par défaut
    Areuhhh

    Bien en fait j'ai pu résoudre mon problème Bah en fait j'ai utilisé l'idée de la requête, et ca marche très bien ca me permet d'afficher un outillage par défaut, avec possibilité pour le magasinier de changé d'outillage Donc parfait, tout ca marche, merci à tous pour vos conseils ils m'ont été très utiles.

    Je joint le code si jamais ca peu servir un jours ou l'autre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub cmbType_GotFocus()
    Dim i As Integer
     
    i = txtQuantite.Value
     
    Forms![frmCreationModifChantier]![ssfrmCommandOutill].Form.RecordSource = "SELECT  TOP " & i & _
    " Outillage.repere, Outillage.Type FROM Outillage WHERE Outillage.Type= '" & Me.cmbType.Value & "' AND Outillage.Disponibilite = -1" & _
    " AND Outillage.Etat = 'Conforme' ;"
     
     
    End Sub
    voila encore une fois un grand merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 23/02/2013, 16h34
  2. Réponses: 4
    Dernier message: 30/12/2011, 11h32
  3. Réponses: 4
    Dernier message: 10/04/2009, 11h10
  4. 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
  5. Limiter nombre d'enregistrement d'un sous-formulaire
    Par snoopy69 dans le forum Access
    Réponses: 12
    Dernier message: 26/10/2005, 17h03

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