Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
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 07/12/2010, 11h29   #1
Candidat au titre de Membre du Club
 
Gabriel Freitas
Inscription : décembre 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Gabriel Freitas

Informations forums :
Inscription : décembre 2010
Messages : 30
Points : 12
Points : 12
Par défaut Modification d'un élément de formulaire tabulaire

Bonjour,

Je suis actuellement étudiant en informatique et je travaille sur un projet de gestion de matériel dans les classes informatiques de notre école.

Le formulaire d'accueil doit lister les objets empruntés par l'utilisateur actuellement loggé sur la machine (jusque là pas de problèmes). Grâce à deux boutons il doit avoir la possibilité d'indiquer que l'objet emprunté est restitué ou de signaler l'objet comme "défectueux" (jusque là pas de problèmes non plus)

Je suis cependant face à un problème. Un label coloré doit indiquer l'état actuel de l'objet. Cet état peut varier entre "disponible" , "indisponible" ou "défectueux"

Les états des objets empruntés ne pourront donc logiquement qu'être "indisponible" (puisqu'emprunté, ils ne sont pas disponibles pour les autres utilisateurs) ou "défectueux". et les labels correspondant devront changer de couleur selon cet état (vert pour indisponible, orange pour défectueux). Malheureusement, dans le tableau tabulaire, tout les labels disposent du même et lors du changement de couleurs, tous adoptent la même couleur en lieu et place d'un seul. (A l'ouverture du formulaire, les labels prennent la couleur de l'état du dernier objet listé)

Je souhaite ainsi que lorsque l'on clique sur le bouton pour signaler l'objet comme défectueux, seul le label concerné change de couleur.

Voici le code VBA que j'utilise (j'utilise des textbox pour connaitre réellement l'état de l'objet pendant la phase de text)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
'BUT :  Signaler l'objet comme défectueux
'        Référence de statut (3)
 
Private Sub btnDefect_Click()
 
    'Variables
    Dim iObjet As Integer       'Référence de l'objet concerné
    Dim strCritere As String    'Critere de recherche pour "FindFirst"
    Dim ColorOrange As Long      'Contiendra la couleur orange utilisée pour le label tbxDefect de "frmAccueil"
    Dim ColorGreen As Long       'Contiendra la couleur verte utilisée pour le label tbxDefect de "frmAccueil"
 
    '(!) Pas réussi à définir en tant que variables globales
    ColorOrange = RGB(237, 127, 16) 'Définit l'orange
    ColorGreen = RGB(22, 184, 78)   'Définit le vert
 
    'Préparation d'un recordset
    Dim Db As DAO.Database
    Dim Rst As DAO.Recordset
 
    'Ouverture de la requête
    '-----------------------
    Set Db = CurrentDb()
    Set Rst = Db.OpenRecordset("REQ_ListeEmprunts", dbOpenDynaset)
 
    'On se positionne sur le dernier enregistrement pour forcer la lecture des données de la table
    Rst.MoveLast
 
    'Puis on se postitionne sur l'enregistrement de l'objet que l'on souhaite
    Rst.AbsolutePosition = (Form.CurrentRecord - 1)
 
    'On enregistre le numero référence de l'objet
    iObjet = Rst("numeroObjet")
 
    'On ferme le recordset
    Rst.Close
 
    'On ouvre la table objet
    Set Rst = Db.OpenRecordset("tblObjet", dbOpenDynaset)
 
    'On recherche l'enregistrement correspondant
    strCritere = "([numero] LIKE " & iObjet & ")"    'Critere de recherche sur la référence de l'objet
    Rst.FindFirst strCritere
 
    'On informe si on ne trouve pas, sinon, on modifie le statut correctement
    If Rst.NoMatch = True Then
    MsgBox ("Une erreur inatendue est survenue" & vbCrLf & _
            "La référence de l'objet n'a pas été trouvée")
    Else
        Rst.Edit
            Rst("fkStatut") = 3
        Rst.Update
        'On affiche le label en orange
        tbxDefect.BackColor = ColorOrange
    End If
 
    Set Rst = Nothing
    Set Db = Nothing
 
End Sub
Images attachées
Type de fichier : jpg access_tbxProblem.JPG (28,8 Ko, 5 affichages)
Gibra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 12h09   #2
Membre Expert
 
Inscription : avril 2006
Messages : 1 050
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 050
Points : 1 230
Points : 1 230
Bonjour,
jette un œil sur la mise en forme conditionnelle.
ilank est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2010, 13h21   #3
Candidat au titre de Membre du Club
 
Gabriel Freitas
Inscription : décembre 2010
Messages : 30
Détails du profil
Informations personnelles :
Nom : Gabriel Freitas

Informations forums :
Inscription : décembre 2010
Messages : 30
Points : 12
Points : 12
Je te remercie de cette réponse rapide

Je me débrouille comme je peux avec access et j'ignorais qu'il disposait de cette option. Cela à en effet résolu le problème.

Navré du dérangement pour si peu
Gibra 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 19h29.


 
 
 
 
Partenaires

Hébergement Web