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 :

Différents formulaire


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 107
    Points : 42
    Points
    42
    Par défaut Différents formulaire
    Re,

    Je suis en train de travailler sur un formulaire relier a une table, pour l'instant cela ressemble plus a un formulaire ou on peut y faire de tout, modif, ajout, consultation, ...

    Je me ddais si ce n'était au final pas mieux de faire 2 formulaires (ke je mettrai surement en sous-formulaire d'une table principal) relié a cette table soit :

    2 formulaires + ou moins identique mais avec :

    1 formulaire de Consultation (ou l'on ne pourrait juste que consulter (voir) les infos de la table)
    et un 2ièm formulaire de qui serait un formulaire d'Ajout/Modification des données de cette même table.

    1 - Qu'en pensez vous ?
    2 - Mais surtout, comment faire un formulaire de consultation (ou l'on ne peut pas modifier les données) a partir déja de mon formulaire a tout faire (en fait j'ai pret d'une centaine de champs et j'ai pas envie de me retaper tous ces champs, en gros j'aimerai juste dupliqué le mien et changer pour qu'il ne soit pas modifiable ...


    Encore merci
    Alpha

  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 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    Bonjour,

    S'ils doivent au final être identique un seul est préférable surtout au niveau de la maintenance de l'ensemble.

    Maintenant il est souvent plus agréable de changer radicalement la présentation (format continu ou mode tabulaire) pour la consultation.

    On ne peut pas choisir pour toi.

    Tu peux configurer momentanément un formulaire ayant tout pouvoir (ajout, modif...) en un formulaire de consultation. Il existe de nombreuses méthodes.

    Jouer avec les propriétés du formulaire lors de son ouverture ( modif, suppr ajout autorisée)
    Jouer sur les propriétés de verrouillage des contrôles pendant la session (Propriété verrouillé) au moyen d'un bouton.

    Il existe d'autres méthodes mais celle-ci sont les plus courantes.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 107
    Points : 42
    Points
    42
    Par défaut
    S'ils doivent au final être identique un seul est préférable surtout au niveau de la maintenance de l'ensemble.
    Ok, cela ne pause "presque" pas de pb, je vais donc t'écouter

    "presque"
    Pourquoi presque :

    Tu peux configurer momentanément un formulaire ayant tout pouvoir (ajout, modif...) en un formulaire de consultation. Il existe de nombreuses méthodes.

    Jouer avec les propriétés du formulaire lors de son ouverture ( modif, suppr ajout autorisée)
    Jouer sur les propriétés de verrouillage des contrôles pendant la session (Propriété verrouillé) au moyen d'un bouton.
    Il semblerai que tu me réponde a cela, mais je ne suis pas sûr de comprendre.
    Imaginon le cas suivant :
    1 Formulaire principal (form1) qui appele un autre formulaire (form2)

    Sur form1 je met 2 boutons soit
    - Saisie
    - Consultation

    Les 2 appelant form2 sauf que :
    dans le 1ier cas form2 serai en Saisie
    dans le 2ièm cas form2 serai en Modification

    C vraiment ce que je voudrai faire, mais comment exactement ?

    Encore merci
    Alpha31

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    Bonjour,

    Il te faut définir les propriétés dans ton code de lancement (VBA) après l'ouverture (docmd.openform)

    Avec les propriétés :

    Modif autorisé, Suppr autorisé ...

    utilise la commande Forms.nomduform.AllowEdits = true ou false suivant le cas. La prorpiété est en gras. Pour connaitre l'équivalent de la propriété en gras, fait F1 sur la propriété il te donne sont équivalent en VBA.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 107
    Points : 42
    Points
    42
    Par défaut
    Hum, je ne comprend qu'a moitier :

    En fait la j'ai un formulaire de Saisie (Nommé : Formulaire de Saisie)uniquement ou j'ai coché dans le propriété du formulaire : -> Données -> Entrée Données : Oui

    En ouvrant "Formulaire de Saisie", je ne peux donc que saisir des nouveaux enregistement.

    Maintenant,
    A partir d'un Autre formulaire j'appele comme sous-formulaire le sous formualire pécédent soit : "Formulaire de Saisie", mais la je voudrai l'ouvrir en mettant "DataEntry = False" pour pouvoir modifier des info (en gros pour ne pas l'avoir k'en "ajout de données"), mais je ne sais pas comment m'y prendre

    Merci Alpha

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    il faut procéder comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    docmd.openform "monFormulaire",....
    Forms!monFormulaire.dataEntry = false
    .... etc
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 107
    Points : 42
    Points
    42
    Par défaut
    Hum, curieusement cela ne marche pas avec mon cas.

    Je recapitule donc :
    J'ai 2 formulaires, 1 que j'ai mis en sous formulaire dans le 2èm a l'aide de la boite a outils d'Access en mode création.

    J'ai paramétré (par l'interface graphique) les propriété du sous formulaire de la sorte :
    modif autorisée : Non
    Suppr autorisée : Non
    Ajout autorisé : Non
    Entrée donnée : Non

    J'ai donc mon sous formulaire k'en consultation.

    Je voudrai créer un bouton sur le formulaire (parent) pour modifier l'attribut modif autorisé en : Oui, sur le sous formulaire

    j'ai Tester ceci :
    Me!Formulaire_de_Saisie.AllowEdits = True
    il me dit : "Propriété ou méthode non gérée par cet objet"

    j'ai Tester ceci :
    Me.Formulaire_de_Saisie.AllowEdits = True
    il me dit : "Erreur de compil : Membre de méthode ou de données introuvable"

    j'ai Tester ceci :
    Forms!Formulaire_de_Saisie.AllowEdits = True
    il me dit : "Impossible de trouver le formulaire 'Formulaire_de_Saisie' auquel il est fait référence dans une expression de macro ou un code Visual Basic

    Quelqu'un serait il comment faire ?

    Merci
    Alpha

    Ps :
    Mon formulaire s'appelle : Formulaire_de_Saisie
    Nom : Formulaire_de_Saisie
    Objet source : Formulaire_de_Saisie

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 107
    Points : 42
    Points
    42
    Par défaut
    Hum ...
    Personne ?


  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    C'est le fait que cela soit un sous form que tu modifie à partir d'un form père.

    Regarde sur mon site perso, rubrique Cours, le dernier cours propose un tableau avec les appels entre form, sousform, soussousform, form externe ...Etc.

    Il y a une version pdf A3 que tu peux imprimer et punaiser au mur ou utiliser en sous main... un must.

    Tu résoudra le pb.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 107
    Points : 42
    Points
    42
    Par défaut
    Hum bien merci, j'ai tout de suite trouvé comment faire grace a ton cour.

    Néanmoins il me reste encore (et oui encore) un petit problème.

    J'ai maintenant mon bouton qui permet de passer mon sous formulaire en mode edition ou consultation.

    Cela marche c'est un fait.

    Sauf que quand je passe en mode edition, que je modifie une donnée, et ke je clique pour passer en consultation il me met un message a chaque fois :

    Les données ont été modifiées

    Un autre utilisateur a modifé cet enregistrement et a sauvegardé ses modifcations avant que vous essayiez de sauvegarder les votres

    Re-modifiez l'enregistement

    Ok
    Si je ne modifie aucun champs je n'ai pas le message,
    Si je créé un bouton actualiser ou enregistrer, ou je clique dessus (avant de repasser en mode consultation) aprés une quelquonque modification je n'ai
    plus non plus ce message.

    J'ai fait des test en Copiant le code de Actualiser ou Enregistrer, sur le boutont (Edition/Consultation), mais la ca n'a plus d'effet et je me retrouve avec le meme message.

    Voici aussi le bout de code :
    Private Sub Bt_Masque_Click()

    If (Me.Bt_Masque.Caption = "Edition Verrouillé") Then

    Me.Bt_Masque.Caption = "Edition Déverrouillé"

    Me!Formulaire_de_Saisie.Form.AllowEdits = True
    Me!Formulaire_de_Saisie.Form.AllowDeletions = True
    Else
    Me.Bt_Masque.Caption = "Edition Verrouillé"

    Me!Formulaire_de_Saisie.Form.AllowEdits = False
    Me!Formulaire_de_Saisie.Form.AllowDeletions = False
    End If

    End Sub

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    Je commence juste à voir ce que essais de faire.

    Ton soucis est de verrouiller les champs tant que l'utilisateur n'a pas cliqué sur un bouton Consultation/Modification.

    Je te propose un code un peu plus complexe à mettre en oeuvre mais avec lequel tu n'auras pas de problème de messages.
    Brièvement cela consiste à repérer l'état d'un controle (locked) et en fonction de l'appuie sur le bouton modifier/consulter de mettre le blocage ou non (locked). Lors du changement d'enregistrement le blocage se remet à oui, en cas d'ajout le blocage se met à non.

    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
     
    Private Sub Verrouille()
    ' verouille ou déverrouille les controles
     
    VerrouControl Me, Me.N_CLIENT  ' ici on dé/verrouille
    ' Me c'est l'objet Form à traiter
    ' Me.N_client le champ à tester qui détermine si blocage ou déblocage. 
     
    ' ici on déverrouille les controles qui doivent toujours
    ' être accessible.
    Me.zl_RechercheClient.Locked = False  'une zone liste recherche
    Me.groupebouton.Locked = False ' un groupe d'option
    Me.op1.Locked = False ' et ses 4 boutons d'option
    Me.op2.Locked = False
    Me.op3.Locked = False
    Me.op4.Locked = False
    Me.sfPAYEUR.Locked = False  ' un sous-formulaire
     
    End Sub
    ici c'est la fonction générique (à mettre dans un module)
    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
     
    Function VerrouControl(frm As Form, Testctrl As Control)
    Dim i, booLock
    ' verrouille ou dévérouille avant saisie.
    On Error Resume Next
     
    booLock = True   ' par defaut le blocage est à faire.
    If Testctrl.Locked = True Then booLock = False   ' si déja bloqué on débloque
    ' test du champ passé en parametre
     
    ' parcours tout les controles et les bloque ou debloque
    For i = 0 To frm.Controls.Count - 1
        frm.Controls.Item(i).Locked = booLock
        'Debug.Print frm.Controls.Item(i).Name & "=" & frm.Controls.Item(i).Locked
    Next
     
    ' renvoi l'état du blocage
    VerrouControl = booLock
     
    End Function
    Ici c'est le bouton Modif/consultation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Btn_Modifier_Click()
    Verrouille  'On ou Off
    End Sub
    ici chaque fois que l'on change d'enregistrement le verrouillage se remet en place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Form_Current()
    If Me.N_CLIENT.Locked = False Or Me.NewRecord Then Verrouille
     
    ' si c'est bloqué on change le nom du bouton
    If Me.N_CLIENT.Locked Then
       Me.Btn_Modifier.Caption = "Modifier"
    Else
       Me.Btn_Modifier.Caption = "Enregistrer"
    End If
     
    End Sub
    ici c'est quand on appuie sur le bouton ajouter
    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
     
    Private Sub btn_Ajouter_Click()
    On Error GoTo Err_BtnAjouter_Click
     
        DoCmd.GoToRecord , , A_NEWREC
     
        ' ici on deverrouille
        If Me.N_CLIENT.Locked Then Verrouille  'On
        ' on replace le focus sur le 1er champ.
        Me.N_CLIENT.SetFocus
     
    Exit_BtnAjouter_Click:
        Exit Sub
     
    Err_BtnAjouter_Click:
        MsgBox "Erreur :" & vbCrLf & Err.Number & vbCrLf & Err.Description
        Resume Exit_BtnAjouter_Click
    End Sub
    Il y a surement quelques améliorations possibles, mais comme c'est une vieille appli... on me pardonnera surement.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

Discussions similaires

  1. [A-07] Lancer des "sub" à partir de différents formulaires
    Par Alain7751 dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/02/2009, 14h56
  2. Transfert de données entre différents formulaires
    Par sbocquet dans le forum InfoPath
    Réponses: 1
    Dernier message: 16/04/2008, 15h04
  3. Réponses: 1
    Dernier message: 09/02/2007, 08h50
  4. stockage de données de différents formulaires
    Par fred44300 dans le forum Langage
    Réponses: 5
    Dernier message: 05/05/2006, 11h09
  5. Changement de valeur dans différents formulaires
    Par dragonfly dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/05/2006, 10h21

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