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

IHM Discussion :

code VBA et formulaire en mode continu


Sujet :

IHM

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut code VBA et formulaire en mode continu
    Bonjour,
    j'essaie de créer un planning sur access et je bloque sur un point.

    j'ai créé un formulaire en mode continu qui liste tous mes salariés . En face de chaque salarié j'ajoute des rectangles pour les jours du mois en cours et je voudrais que ces rectangles changent de couleur selon le type de pointage fait. Par exemple le 1/09 le salarié A pointe en congès donc je veux que le rectangle correspondant au 1/09 de colore en jaune.
    voici l'exemple en image de ce que cela donne

    [IMG][/IMG]

    et l'image du même formulaire en mode création :



    J'ai écrit le code vba qui me permet d'aller interroger la table pointage et de récupérer le type_pointage. Ce code fonctionne très bien mais il applique le résultat du premier salarié sur mon formulaire en mode continu à l'ensemble des salariés.

    Ma grande question est donc :
    comment faire en sorte que mon code vba s'applique à chacune des lignes de mon formulaire en mode continu ??
    Est-ce seulement possible ? Et si oui quel est l'évènement qui peut me permettre de déclencher mon code.

    J'ai beau essayer tous les cas possibles je ne trouve pas d'issue à mon pb.

    Par avance merci de votre aide

    Cordialement Redtek

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Sans code ce n'est pas évident de t'aider.

    As-tu été voir du coté de la mise en forme conditionnelle http://warin.developpez.com/access/mfc/, mais attention limitée aux nombres de conditions.

    Starec

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Code
    En fait mon souci ne se situe pas dans la mise en forme des rectangles mais dans la détection et le pointage de la ligne de mon formulaire en mode continu. Globalement, il me semble que mon code ne s'execute qu'une seule fois .... ce qui ne me convient pas

    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
    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
    61
    62
    63
     
    Private Sub saisie_jours()
     
    Dim madate As Date
    Dim firstday As Date
    Dim prem As Integer
    Dim i As Integer
    Dim j As Integer
    Dim qté As Integer
    Dim codeSQL As String
    Dim typpoint As Variant
    Dim filtre As String
     
    madate = Me.txt_dateselectionnee
     
    'calcul du premier jour à afficher
    prem = DatePart("w", madate, vbSunday) - 2
    madate = DateAdd("d", -(prem + 5), madate)
    firstday = madate
     
    'rempli les champs texte contenant les num des jours
    For i = 1 To 45
    jour = Day(madate)
    Me("J" & Format(i, "00")) = jour
    madate = DateAdd("d", 1, madate)
    Next i
     
     
    'adapte les couleurs selon le type de pointage
     
    madate = firstday & " 08:00:00"
    i = 1
    For i = 1 To 45
        codeSQL = "ID_PERSO = " & Me.ID_PERSO & " And DATEDEB_POINT <= #" & madate & "# And DATEFIN_POINT >= #" & madate & "#"
     
        typpoint = DLookup("TYPE_POINT", "POINTAGE", codeSQL)
     
     
                If DatePart("w", madate, vbSunday) = 1 Or DatePart("w", madate, vbSunday) = 7 Then
                    Me("M" & Format(i, "00")).BackColor = 12632256
                Else
                    If IsNull(typpoint) Then
                        typpoint = 0
                    End If
     
                    Select Case typpoint
                        Case 0
                            Me("M" & Format(i, "00")).BackColor = 255
                        Case 1
                            Me("M" & Format(i, "00")).BackColor = 16711680
                        Case 2
                            Me("M" & Format(i, "00")).BackColor = 65535
                        Case 3
                            Me("M" & Format(i, "00")).BackColor = 8454143
                    End Select
                End If
     
     
       madate = DateAdd("d", 1, madate)
     
    Next i
     
    End Sub
    la première partie du code permet d'affecter les num de jours dans l'en-tête du formulaire
    la seconde partie est celle qui me pose problème dans la mesure où je n'arrive pas à l'exécuter sur les differentes lignes de mon planning.

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2020, 19h57
  2. Sous-formulaire en mode continu ?
    Par polianita dans le forum IHM
    Réponses: 21
    Dernier message: 06/09/2006, 16h56
  3. Réponses: 4
    Dernier message: 06/09/2006, 10h12
  4. [Access-VBA] Requête multi-critère/Formulaire en mode continu
    Par adriano057 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/08/2006, 10h07
  5. Réponses: 1
    Dernier message: 10/07/2006, 09h15

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