Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2011, 11h05   #1
Membre du Club
 
beauchat symba
Inscription : janvier 2010
Messages : 95
Détails du profil
Informations personnelles :
Nom : beauchat symba

Informations forums :
Inscription : janvier 2010
Messages : 95
Points : 50
Points : 50
Par défaut interdire la suppression d'un Enregistrement selon une condition dans un Sous_FormulaireContinu

Bonjour

Mon Sous_formualire Continu est une liste des lignes d'un Devis.
Selon qu'une Ligne est déjà facturée je veux interdire sa suppression,sa Modification et l'afficher en Rouge
Les autres Lignes on fait ce qu'on veut

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Form_Current() 'mon Sous-formulaire CONTINU
 
    'Interdire la Supression des Lignes déjà Facturées
    'les Colorer en Rouge et les Vérouiller
    'les autres lignes on fait ce qu'on veut
 
      Select Case (Me.K_Facture) 'Mon champ à Tester
           Case Is <> "" 'la condition est réalisée
                Me.Description.ForeColor = RGB(233, 23, 0) 'Rouge
                Me.AllowDeletions = False
                Me.AllowEdits = False
      End Select
End Sub
Dès que la condition est rencontrée toutes les lignes du Sous_formulaire sont Rouges,Interdites en Suppression
Je ne peux donc pas modifier ou supprimer les autres.

Cordialement
symbabeauchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 13h06   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

Pourquoi tester la valeur avant alors ?
Simplement mettre ça sans rien d'autre.


Code :
1
2
3
                Me.Description.ForeColor = iif(nz(Me.K_Facture,"") <> ""),RGB(233, 23, 0) ,RBG(???,???,???))
                Me.AllowDeletions = (nz(Me.K_Facture,"") <> "")
                Me.AllowEdits = (nz(Me.K_Facture,"") <> "")

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/08/2011, 16h52   #3
Membre du Club
 
beauchat symba
Inscription : janvier 2010
Messages : 95
Détails du profil
Informations personnelles :
Nom : beauchat symba

Informations forums :
Inscription : janvier 2010
Messages : 95
Points : 50
Points : 50
Par défaut les lignes sont soit Rouges soit Noires

Merci Loufab

Le code marche mais pas comme je voudrais

1 ) Car sur l'activation je passe soit tous les entregistrements en Rouge soit Tous en Noir
2 ) Et seul le premier champ de la ligne :[Description] respecte le AllowDeletions et AllowEdits (Pas bon les lignes déjà Facturées seraient modifiables !)

Voici une ligne :

Description-----------Qté---Pu---Qté*Pu-----K_Facture(Non Visible)

Code :
1
2
3
4
5
6
7
Private Sub Form_Current() 'mon Sous-formulaire CONTINU
 
     MsgBox (Nz(Me.K_Facture, "") <> "") 'pour voir Vrai ou Faux
                Me.Description.ForeColor = IIf((Nz(Me.K_Facture, "") = ""), RGB(0, 0, 0), RGB(233, 23, 0))
                Me.AllowDeletions = (Nz(Me.K_Facture, "") = "") 'Vrai ou Faux
                Me.AllowEdits = (Nz(Me.K_Facture, "") = "")
End Sub
C'est dommage car c'était simple

A l'ouverture du Sous-formulaire je voudrais voir les lignes Rouges et les Lignes Noires
Comme ça je repère tout de de suite les Lignes Modifiables
Je suppute un truc que je ne maitrise pas trop du genre
For Each Enregistrement in MonRecordset
tester ma condition K_Facture
et appliquer mes couleurs et
bloquages pour chaque enregistrement
J'espère que je me fait mieux comprendre
symbabeauchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/08/2011, 10h19   #4
Futur Membre du Club
 
Inscription : février 2007
Messages : 32
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : février 2007
Messages : 32
Points : 18
Points : 18
Bonjour,

J'avais il y a quelques temps déjà à peu près la même interrogation que toi (rendre visible ou pas un contrôle dans un FContinu selon un critère de l'enregistrement) sous Ac-2003. A l'époque, nous en avions conclu que cela était impossible. Le résultat du code vaudra pour tous les enregistrements de ton SF et se basera sur le résultat du 1er enregistrement.

Pour la mise en couleur par contre tu peux utiliser la mise en forme conditionnelle d'un contrôle (limité à 3 conditions maxi) qui sera bien enregistrement dépendant.

Cordialement,


Edit,
Avec la mise en forme conditionnelle tu peut aussi rendre inactif un contrôle pour en éviter la modification. Par contre rien contre la suppression dans 2003 tout au moins.
TLImpala est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/08/2011, 18h51   #5
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 622
Points : 11 622
Bonjour,

En relisant ta demande j'ai remarqué un oubli de ma part :

Citation:
Mon Sous_formualire Continu
Effectivement la couleur ne fonctionnera qu'avec la mise en forme conditionnelle comme l'a justement fait remarqué Impala (une 1966 pour moi svp )

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2011, 19h26   #6
Membre du Club
 
beauchat symba
Inscription : janvier 2010
Messages : 95
Détails du profil
Informations personnelles :
Nom : beauchat symba

Informations forums :
Inscription : janvier 2010
Messages : 95
Points : 50
Points : 50
Par défaut mise en forme conditionnelle

Bonjour

Mes remerciements à Loufab et TLImpala pour pour vos réponses

1) La mise en forme conditionnelle: TipTop pour les couleurs !

2) Pour interdire la suppression d'un enregistrement selon une condition j'ai opté pour un Bouton_Supprimer qui me garanti la suppression de l' Enregistrement qui rempli ma condition .
Le fait d'avoir un Bouton par ligne me convient bien
Dans mon option de départ sur Form_Current,le sélecteur d'enregistrement permettait une Multi-sélection sans tenir compte de ma condition j'ai donc supprimer le Sélecteur

Bon WE
Bien cordialement
symbabeauchat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h49.


 
 
 
 
Partenaires

Hébergement Web