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 :

Mise à disposition d'une liste modifiable malgré AllowEdit


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2022
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Mise à disposition d'une liste modifiable malgré AllowEdit
    Bonjour

    J'ai un formulaire "BL" dont je bloque la modification des champs en fonction d'une case à cocher que j'appelle "verrou". Malgré tout, j'utilise une liste modifiable "modifiable120" pour afficher les enregistrements de ma table dans mon formulaire.
    En utilisant Allowedit c'est tout le formulaire qui freeze, mais j'aimerais conserver l'utilisation de cette liste "modifiable120" pour acceder à d'autre enregistrement non concerné par l'action de "verrou"

    je précise que je galère en VBA... alors un tit coup de code... je dis pas non

    Voici mon code

    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()
    GRey = RGB(214, 220, 229)
    If Forms![BL]![verrou] = False Then
        Me.AllowEdits = True
    Else
        Me.AllowEdits = False
        Me.controls("modifiable120").AllowEdits = True  ' <----
        Me.controls("N°Contact").BackColor = GRey
        Me.controls("Numero Bulletin").BackColor = GRey
        Me.controls("date1BV").BackColor = GRey
    End If
    End Sub
    En adressant directement AllowEdits à "Modifiable120" il n'y a pas d'action à part celle d'annuler tout le processus. Je ne sais pas comment désactiver AllowEdits pour le seul champ "modifiable120"

    Naturellement le but définitif c'est que si "verrou" est coché on ne puisse plus modifier l'enregistrement concerné... mais changer d'enregistrement..

    Merci pour votre écoute

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 230
    Points : 5 605
    Points
    5 605
    Par défaut
    Bonjour,

    Oui, AllowEdits=False va bloquer tous les contrôles du formulaire concerné et il n'est pas possible de faire une exception. Le seul moyen est en pratique de changer la propriété Verouillé de tous les contrôles, sauf le champ modifiable120, quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Dim c As Control
        For Each c In Me.Controls
            '--- https://docs.microsoft.com/en-us/office/vba/api/access.accontroltype
            If c.ControlType = acTextBox Or c.ControlType = acListBox Or c.ControlType = acComboBox Then
                If c.Name = "modifiable120" Then
                    c.Locked = False
                Else
                    c.Locked = True
                End If
            End If
        Next c
    Eventuellement, pour rapidement voir ce qu'il y a comme contrôles dans le formulaire, dans un module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ControlsList()
        Dim c As Control, sFormName As String
        sFormName = "NomDuFormulaire"          '--- à adapter
        For Each c In Forms(sFormName).Controls
            Debug.Print c.ControlType, c.Name
        Next c
    End Sub
    Cordialement.

  3. #3
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2022
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci EricDgn

    Effectivement à force de recherche et de test j'ai fini par trouver une solution proche, moins simple apparemment, mais fonctionnelle vu le peu de champs touché par cette action
    J'ai utilisé la fonction "Locked" et fait le code suivant, qui ne touchait du coup plus ma liste modifiable.

    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 Form_Current()
    GRey = RGB(214, 220, 229)
    WHite = RGB(255, 255, 255)
    If IsNull(signéle) Then
        Me.controls("N°Contact").BackColor = WHite
        Me.controls("Numero Bulletin").BackColor = WHite
        Me.controls("date1BV").BackColor = WHite
        Me.controls("N°Contact").Locked = False
        Me.controls("Numero Bulletin").Locked = False
        Me.controls("date1BV").Locked = False
    Else
        Me.controls("N°Contact").BackColor = GRey
        Me.controls("Numero Bulletin").BackColor = GRey
        Me.controls("date1BV").BackColor = GRey
        Me.controls("N°Contact").Locked = True
        Me.controls("Numero Bulletin").Locked = True
        Me.controls("date1BV").Locked = True
    End If
    End Sub
    Dans tous les cas merci pour votre réponse, et il faut vraiment que je me mette aux VBA
    Bonne journée

Discussions similaires

  1. [AC-2000] problème de mise à jour d'une requête de contenu d'une liste modifiable
    Par Deverry57 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 30/07/2010, 08h42
  2. Réponses: 4
    Dernier message: 12/10/2009, 14h46
  3. [AC-2003] mise en forme conditionnelle pour une liste modifiable
    Par Miss Ti dans le forum VBA Access
    Réponses: 4
    Dernier message: 17/06/2009, 14h37
  4. mise à jour en fonction d une liste modifiable
    Par sunwind dans le forum Access
    Réponses: 2
    Dernier message: 10/08/2007, 15h50
  5. mise à jour d'une liste par un popup
    Par Equus dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/02/2005, 11h21

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