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 :

Sous-Formulaire --> Interdire un enregistrement automatiq


Sujet :

IHM

  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 Sous-Formulaire --> Interdire un enregistrement automatiq
    Bonjour à tous ...

    Je viens de créer un formulaire qui me permet d'effectuer des recherches dans la base de données c'est à dire que j'ai une zone de liste déroulante et dès que je change son contenu, il y a le contenu de mon sous-formulaire qui change aussi.

    Construction :

    Mon formulaire est créer à l'aide de 2 champs qui forment une clé primaire dans une table associative.

    Sur l'un des 2 champs j'ai créer une zone de liste déroulante. En ce qui concerne l'autre champ, je l'ai caché.

    J'ai créer un sous formulaire et j'ai fait une liaison entre les champs pères et fils ... pas de soucis jusque là

    Problème :

    En fait lorsque je me positionne sur ma zone de liste déroulante et que je change son contenu cela marche mais si je me positionne par exemple sur l'enregistrement N°2 de ma zone de liste déroulante et que je ferme mon formulaire ben il y a un enregistrement qui se fait et cela me modifie les données de réponses dans mon sous formulaire ... ... Pour éviter ce problème je dois toujours presser sur ESC avant de quitter mon formulaire ... es ce que quelqu'un aurait une solution pour mon problème '???

    Si ce n'es pas clair, n'hésitez pas à me demander des précisions ...

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

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Salut, j'espère que ça pourra t'aider

    http://access.developpez.com/faq/?page=data#FormNonLie

    En fait faut que tu fasse un formulaire déconnecté, c'est toi qui le rempli...

  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
    Voici ce que ton lien dit :

    Il ne faut pas faire un formulaire lié. Méthode :

    * Créer formulaire déconnecté
    * Créer un Recordset
    * Afficher les données du Recordset dans le formulaire
    * Faire autant de boutons que d'actions dans votre formulaire (Validation, Suppression, Suivant, Précédent, ...). A chaque bouton correspond bien sûr une action (Requête de suppression, d'ajout ...).
    Je ne comprends pas trop ...



    Es ce que tu pourrais me donner un ptit coup de pouce ???

    Je ne vois pas comment créer un formulaire DECONNECTE ... je n'ai jamais fait cela ... et je ne sais vraiment pas comment faire ...



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

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 304
    Points : 94
    Points
    94
    Par défaut
    Ben je n'en ai jamais fait non plus... Je vais te dire ce que j'en pense, les connaisseurs n'hésiteront pas à intervenir si je me trompe...
    Mais je pense qu'il s'agit de créer son form en mode création, ensuite de créer sa liste en lui affectant une source de données et de créer un ss form.
    Ensuite, à l'évenement change de ta liste tu affecte une source de données à ton sous form en fonction des valeurs sélectionnées dans la liste... En fait tu dois tout gérer tout seul avec les évenements qui sont dispo.
    Et je pense que tu dois aussi trouver un évenement qui te servira de point d'enregistrement. ex un bouton Valider, quand l'utilisateur clique dessus tu enregistre toi même les infos avec soit des requetes SQL Insert ou Update soit des Recordsets que tu crée toi-même en utilisant les propriétés .addnew ou .edit

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    Le principe du formulaire imbriqué dans un formulaire a deux objectifs:
    1/ Soit créer des enregistrements connexes (Par ex: une facture, une commande et ses lignes de facture / commande)
    2/ Soit consulter des données dans les mêmes circonstances.

    Dans le cas 1, les formulaires ont les propriétés "Ajout autorisé" et "Entrée de données" à OUI
    Dans le cas 2, les formulaires ont les propriétés "Ajout autorisé" éventuellement à OUI et "Entrée de données" à NON

    Dans tous les cas le formulaire parent possède ou non une source bien définie (Table ou requête) mais le sous formulaire en possède obligatoirement une, qu'elle soit définie dynamiquement ou qu'elle soit fixe.

    Si tu veux consulter des données à la suite d'une séléction dans une liste, il te faut mettre les propriétés "Ajout autorisé" et "Entrée de données" à NON d'une part et créer dynamiquement le RecordSource de ton formulaire.
    Par exemple imagine que le formulaire principal s'appelle frmParent et que le sous formulaire s'appelle frmEnfant;
    frmParent ne possède pas de RecordSource mais il possède une liste déroulante qui est liée à un RowSource que tu es seule à connaître.

    Eh bien la liste déroulante va mettre à jour le RecordSource de frmEnfant en rafraîchissant simplement les enregistrements du fait que la propriété Champ Pères et Champs Fils sont définis sur la liste déroulante Parent.
    Pour ce faire tu dois mettre la proprété Champ Père avec le nom de la liste modifiable qui contient un ID primaire commun avec le formulaire frmEnfant et Champ Fils avec le nom du champ qui représente ce même ID primaire.
    La liste modifiable quant à elle contient l'ID primaire (en colonne cachée ou non selon le cas).

    C'est tout

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  6. #6
    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
    Eh bien le bonjour .... ...

    Alors,


    Argy à dit :

    C'est tout
    Ouais pour moi c'est déjà pas mal d'un coup ... je vais voir tout ce que tu m'as dit et je vous redonne des nouvelles ...

    En tout cas, merci pour les explications détaillées que tu m'as données.

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

  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
    Alors vici une explication plus détaillée ce que j'ai fait :

    En rapport avec le formulaire principal :

    Nom du formulaire : FORM_entree_matiere
    Champ : pk_fk_departement_destination
    pk_mouvement_destination

    Mon champ pk_fk_mouvement_destination est caché car je n'en ai pas besoin.

    Mon champ pk_fk_departement_destination est une zone de liste déroulante voici la requête que j'utilise pour faire apparaître ce que je veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT TB_DEPARTEMENTS.pk_departement, TB_DEPARTEMENTS.nom_departement FROM TB_DEPARTEMENTS;
    Propriétés:
    Modif autorisée : OUI
    Suppr autorisée : OUI
    Ajout autorisé : NON
    Entrée données : NON

    En rapport avec le sous-formulaire :

    Nom : SOUS_FORM_entree_matiere_mouvement
    Champ : ce sous-formulaire est basé sur une requête voici le code de cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT TB_MOUVEMENTS.pk_mouvement, TB_MOUVEMENTS.date_mouvement, TB_MOUVEMENTS.numero_mouvement, TB_MOUVEMENTS.masse_mouvement, TB_MOUVEMENTS.nombre_piece_mouvement, TB_MOUVEMENTS.fk_description, TB_MOUVEMENTS.fk_departement_provenance, TB_DEPARTEMENTS.pk_departement
    FROM TB_MOUVEMENTS INNER JOIN (TB_DEPARTEMENTS INNER JOIN TB_DESTINATIONS_ASSOCIATIVE ON TB_DEPARTEMENTS.pk_departement=TB_DESTINATIONS_ASSOCIATIVE.pk_fk_departement_destination) ON TB_MOUVEMENTS.pk_mouvement=TB_DESTINATIONS_ASSOCIATIVE.pk_fk_mouvement_destination;
    Propriétés:
    Modif autorisée : NON
    Suppr autorisée : NON
    Ajout autorisé : NON
    Entrée données : NON


    Passont maintenant au champ père et fils ... alors lorsque je veux voir les liens de mon sous-formulaire je clique dessus je vais dans les propriétés et j'ai ceci :

    Champs fils : pk_departement ( Clé primaire de la table tb_département )
    Champs pères : pk_fk_departement_destination ( Zone de liste déroulante du formulaire principal )

    Que dois je modifier ????

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

  8. #8
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par snoopy69
    Que dois je modifier ????
    Champs fils : pk_departement ( Clé primaire de la table tb_département )
    Champs fils : pk_fk_departement_destination ( Zone de liste déroulante du formulaire principal )
    Champs fils : pk_departement (RAS)
    Champs fils : le nom du contrôle liste déroulante (qui en générale porte un nom générique du style "Modifiable9" par exemple.)
    Nomme ce contrôle cboDepartement puis affecte-le à la propriété champ père de ton sous-formulaire.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  9. #9
    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
    je résume car pour moi cela n'est pas très clair ... ... ...


    Alors dans les propriétés de ma zone de liste déroulante j'ai ceci :

    Nom : pk_fk_depertement_destination
    Source contrôle : pk_fk_departement_destination

    Donc si j'ai bien compris dans les propriétés de mon sous formulaire je dois mettre cela :

    Champs fils : pk_departement
    Champs père : pk_fk_departement_destination

    Et je ne comprends pas du tout cela :

    Argy à dit :
    Nomme ce contrôle cboDepartement puis affecte-le à la propriété champ père de ton sous-formulaire.
    pk je dois l'appellet cboDepartement ??? Cela sert à quoi ...

    Je suis désolée je suis lente au retardement ... sorry ... ... ...

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

  10. #10
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    La réponse relative au nommage des contrôles se trouve ici.

    Si le nom de ta liste est "pk_fk_depertement_destination" alors c'est ce nom que tu définis comme champ père.

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  11. #11
    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
    Mais c'est ce que j'ai Argy ... regarde ce que je t'ai dit plus haut :

    Champs fils : pk_departement ( Clé primaire de la table tb_département )
    Champs pères : pk_fk_departement_destination ( Zone de liste déroulante du formulaire principal )
    Donc ouais c'est pour cela que je ne savais pas quoi modifier ... ... j'ai tout fait ce que tu m'as dit de faire mais cela ne marche pas ...

    Ouais je ne vois pas où il y a un problème ... ... c'est quand même bizard que j'ai des enregistrements qui se modifient comme ça .... je sais pas c'est louche ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  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
    Argy j'ai peut être une idée ...

    J'ai dit dans mes posts précédent que si je presse sur ESC avant de quitter je n'ai pas ce problème ... ce que je pourrais faire c'est créer un bout de code VBA qui s'exécuterais dès que je cliquer sur mon bouton pour fermer mon formulaire et qui aurait comme fonction la simulation de l'appui sur la touche ESC ... tu vois le truc ??? ??? ???

    Tu crois que cela pourrait fonctionner ????

    Redis moi ... Merci pour toute l'aide que tu m'as donné Argy ...
    ... Je me méfie de l'irrespect mais je revendique le droit à la frénésie ...

  13. #13
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Non Snoopy, Pas de bidouillage !!!
    Il est inutile de chercher plus loin.
    Prend ton sous formulaire "SOUS_FORM_entree_matiere_mouvement" et glisse-le dans un formulaire vierge en mode création
    Au dessus de celui-ci, pose une liste modifiable que tu affectes comme suit:
    Nom : cboDepartement
    Source de contrôle : Rien (laisser vierge)
    Origine source : Table/Requête
    Contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT TB_DEPARTEMENTS.pk_departement, TB_DEPARTEMENTS.nom_departement FROM TB_DEPARTEMENTS;
    Nbre colonnes : 2
    Largeurs colonnes : 0;5
    Colonne liée : 1
    Largeur liste : 5

    Le reste, tu le laisses par défaut.

    Tu cliques ensuite sur ton sous-formulaire:
    Champ Père : cboDepartement
    Champ Fils : pk_departement
    Modif autorisée : OUI (Verrouiller les contrôles)
    Suppr autorisée : OUI (Verrouiller les contrôles)
    Ajout autorisé : NON
    Entrée données : NON

    Tu passe en mode formulaire et tu testes et ça marche.
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  14. #14
    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
    Mais que puis-je dire mis à part : Merci pour ton aide Argy ...

    Tout marche à la perfection ... c'est parfait ... c'est même plus que parfait ...

    C'est super cool en tout cas ...




    Mille millions de mercis Argy ...

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

  15. #15
    Membre du Club
    Homme Profil pro
    Aides soignant
    Inscrit en
    Novembre 2005
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Aides soignant
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2005
    Messages : 125
    Points : 45
    Points
    45
    Par défaut Aide Formulaire de recherche
    Bonjour,

    je voir que tu a réussi a créer un formulair de recherche, est ce que tu peut m'aider a résolut mon problème de boutton

    le code :

    Dim strTable As String, strField As String, strCriteria As String, strSql As String
    Dim Criter As Variant strTable = Me.cbo_Table

    strField = Me.cbo_Champ
    strCriteria = strTable & "." & strField & " Like """ & Me.txt_Critere & """"
    strSql = "SELECT DISTINCTROW " & strTable & ".*"
    strSql = strSql & " FROM " & strTable
    strSql = strSql & " WHERE ((" & strCriteria & "));"

    Me.lst_Resultat.RowSource = strSql
    Me.lst_Resultat.Requery

    Fin du Code

    Le problème c'est que le nom du boutton est cmd_recherche,
    et quand je clique sur le boutton, il me l'indique en jaune., je ne sais quoi faire, je ne connais rien en language VB ou Access, j'essaye de m'instruire, quelqu'un peut m'aider ?

    Merci

    Mounir

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/03/2011, 17h04
  2. Réponses: 1
    Dernier message: 25/06/2010, 05h16
  3. Réponses: 2
    Dernier message: 09/01/2009, 09h21
  4. Réponses: 2
    Dernier message: 29/11/2008, 17h55
  5. Sous-formulaire avec 1 seul enregistrement
    Par Farbin dans le forum Access
    Réponses: 6
    Dernier message: 08/08/2006, 16h37

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