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 :

Formulaire en lecture seule


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 133
    Par défaut Formulaire en lecture seule
    Bonjour,

    J'ai une question à poser. Est-il possible d'afficher un formulaire en mode lecture seule et son formulaire en mode "ajout de données" ? Si oui, avec quel code en VBA ?

    En gros, au début, je saisis des données dans le formulaire et je les enregistre. Ensuite, je fais appel à une zone de liste permettant l'ajout de données dans le sous formulaire à partir d'un formulaire existant.

    Dès lors qu'on double-clik sur 1 ligne de cette zone de liste, le formulaire s'ouvre et je voudrais que l'utilisateur ne puisse pas modifier des données dans le formulaire et doit seulement insérer des données dans le sous formulaire.

    Mci

  2. #2
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Est-il possible d'afficher un formulaire en mode lecture seule et son formulaire en mode "ajout de données" ?
    C'est pas clair ça...
    Dès lors qu'on double-clik sur 1 ligne de cette zone de liste, le formulaire s'ouvre
    Sur l'évènement correspondant, tu modifies les propriétés du formulaire.
    sur allowedits

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 133
    Par défaut
    Ce que je voudrais c'est ajouter des données uniquement dans le sous formulaire et éviter de modifier les données déja saisies dans le formulaire.

    Est-ce que tu as compris ma pensée ?

  4. #4
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Ton sous formulaire est affiché sous quelle forme ?? mode formulaire, mode feuilel de données, mode continu ??

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 133
    Par défaut
    Le sous formulaire est en mode formulaire.

  6. #6
    seb92400
    Invité(e)
    Par défaut
    il me semble de mémoire... J'avais eu le problème inverse : Lorsque mon sous-formulaire principal était en allowedits = false, je pouvais quand même modifier mon sous-formulaire...

    Donc si mes souvenirs sont exacts, tu n'as qu'à simplement mettre la propriété allowedits de ton formulaire principal sur false et tu pourras uniquement modifier les données de ton sous-formulaire...

    A tester... car c'est assez lointain quand même... on se fait plus tout jeunes !!!

  7. #7
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    Je ne suis pas très sur d'avoir compris, moi non plus

    Tu peux jouer sur la propriété Enabled en la mettant à False pour les champs que tu ne souhaites pas mettre à jour.

    Par ailleurs, tu devrais aussi empêcher la suppression en jouant avec Form_BeforeDelConfirm.

    Tu peux aussi, par mesure de précaution, mettre dans ta Form_BeforeInsert et Form_BeforeUpdate mettre un
    pour virer tout ce que l'utilisateur aurait réussi à faire.

    Si tu veux un réponse plus précise, essaye de clarifier ce que tu veux faire.

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 133
    Par défaut
    Mci d'abord de m'avoir répondu.

    Je vais tt expliquer. J'ai une table Contrat et une table Avenant. Un contrat a plusieurs avenants. J'ai un formulaire principal formContrat et un sous formulaire formAvenant.

    Il y a 2 types de saisies :
    - saisie dans formContrat et pas dans formAvenant
    - saisie dans formContrat et dans formAvenant

    Par exemple je saisie des données que dans formContrat.
    Ensuite, pour ajouter des données dans formAvenant, je fais appel à un autre formulaire qui contient une zone de liste contenant les éléments saisis dans formContrat.

    Lorsque je double clic sur 1ligne, j'ouvre formContrat et formAvenant. Je voudrais éviter la saisie dans formContrat et permettre l'ajout de données dans formAvenant.

    Je trouve pas de solutions snif. Est-ce que j'ai été clair ? Sinon posez moi d qst

  9. #9
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    Pour résumé tu as
    - une forme de création/mise à jour d'un contrat seul,
    - une forme d'affichage d'un contrat et de mise à jour de ses avenants (une sous forme d'avenants)
    - une forme qui liste tous les couples contrat/avenants. Si tu double-cliques sur une ligne tu ouvres la 2ème forme.

    Est-ce comme ça ?

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 133
    Par défaut
    En fait, j'ai
    -création d'un contrat seul (seul le formContrat est visible)
    -ajout d'un avenant à un contrat seul (formContrat et formAvenant sont visibles)
    -un formulaire qui liste tous les contrats seuls. Si je double clic sur une ligne, les 2 forms sont visibles (formContrat contient déjà des données et pas formAvenant) et je veux empécher la saisie dans formContrat et ne permettre que la saisie dans formAvenant

  11. #11
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    Donc tu fais un Visible à True/False de ta sous-forme ?

    De deux choses l'une:
    1) Tu dédoubles ta forme d'édition:
    Forme 1: Un contrat éditable, mais sans avenants
    Forme 2: Un contrat non éditable, avec avenants

    Là c'est facile, tu bloques la suppression (propriété AllowDelete de la forme, je pense) idem pour la création. Pour la mise à jour, soit tu joues avec AllowEdit, mais il faut voir si ça ne va pas te bloquer aussi la gestion des avenants. Si ça la bloque, tu laisses AllowEdit à true et tu bloques individuellement tous les champs avec des Enabled à false.

    2) Tu ne dédouble pas, tu gardes 1 forme d'édition.
    La ça se complique, car tu dois, quand tu ouvres la forme, savoir dans quel but tu l'ouvres: édition du contrat ou des avenants ?
    En mode édition du contrat, du cache les avenants, tu autorises l'ajout, la suppression et la mise à jour des contrats.
    En mode édition des avenants, tu affiche les avenants, tu bloques l'ajout, la suppression et la mise à jour des contrats de la même manière que ci-dessus.


    J'espère que ça ira mieux ainsi

    Laurent

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 133
    Par défaut
    Oui, j'utilise Visible=true et Visible=false.

    J'ai compris ce que tu voulais dire...merci. Mais ceci dit, j'ai 1 une nouvelle question à te poser. La table Contrat a pour champs : num_contrat, nom_contrat, etc.. et la table Avenant a pour champs : num_avenant, num_contrat, nom_avenant,etc...

    Quand je veux créer un contrat seul (sans avenants), le formAvenant est invisible et quand j'enregistre et que je regarde table Avenant, num_avenant contient un numéro, num_contrat contient rien et nom_avenant contient rien.

    Pkoi num_avenant possède un numéro alr que je ne saisis rien dans formAvenant?

  13. #13
    lvr
    lvr est déconnecté
    Membre éclairé Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    920
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 920
    Par défaut
    Essaye de faire la même chose sans que ta sous-forme ne soit invisible pour voir ce qui se passe. Tu pourrais aussi au niveau de la propriété de ta table avenants dire que le nom_avenant est obligatoire: il ne peut pas être null ni contenir une chaîne vide. Faire ces 2 points ne devrait pas régler ton problème mais te permettre d'identifier pourquoi est-ce que Access crée un record.
    Par ailleurs, c'est une règle de bonne pratique que de préciser au niveau de la def de ta table quels champs sont obligatoires et lesquels ne le sont pas, lesquels peuvent être vides et lesquels ne le peuvent pas, ...

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 133
    Par défaut
    J'ai trouvé ce qui n'allait pas. En fait, dans le formulaire avenant, sur l'évènement sur activation, je fais des traitements et c'est sans doute la cause du newrecord.

    Mais, quelle est la différence entre l'évènement sur activation et l'évènement sur ouverture pour un formulaire ?

    Mci

  15. #15
    seb92400
    Invité(e)
    Par défaut
    Hello,

    Dans l'aide d'Access, tape "Ordre des événements pour les objets de base de données"... Tu vas y trouver ton bonheur...

Discussions similaires

  1. Basculer un formulaire en lecture seule
    Par matt1768 dans le forum Struts 2
    Réponses: 1
    Dernier message: 14/10/2008, 13h46
  2. Ouvrir formulaire en lecture seul
    Par alex291184 dans le forum Sécurité
    Réponses: 1
    Dernier message: 19/12/2007, 11h44
  3. Réponses: 4
    Dernier message: 31/08/2007, 10h46
  4. Formulaire en lecture seule
    Par zinovas dans le forum IHM
    Réponses: 6
    Dernier message: 04/01/2007, 16h13
  5. Débutant: Démarrage formulaire en lecture seule
    Par jrogron dans le forum Access
    Réponses: 3
    Dernier message: 31/07/2006, 13h18

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