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

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Magistrat
    Inscrit en
    janvier 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Magistrat

    Informations forums :
    Inscription : janvier 2019
    Messages : 28
    Points : 8
    Points
    8
    Par défaut Cocher case d'un champ de l'enregistrement N si l'enregistrement N+1 existe
    Bonjour à tous. Alors voilà, j'ai plusieurs tables mais seulement deux d'entre elles nous intéressent. J'ai une table dossier et une table actes liée à la table dossier par une relation un à plusieurs (un dossier peut avoir plusieurs actes). Dans la table actes il y a un champ '' suite'' avec case à cocher. J'aimerai que, lorsqu'un enregistrement N+1 existe (ou est créée ?) pour un dossier, la case à cocher du champ "suite" de l'enregistrement N (donc l' enregistrement précédent) soit automatiquement cochée. Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    juin 2012
    Messages
    967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

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

    Informations forums :
    Inscription : juin 2012
    Messages : 967
    Points : 1 564
    Points
    1 564
    Par défaut
    Bonjour,

    Le code ci-dessous coche toutes les "suite", sauf pour la dernière, cela pour tous les dossiers.
    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
    Sub Suites()
       '--- coche les "suite", sauf la dernière, cela pour tous les dossiers
       Dim dB As DAO.Database, rsD As Recordset, rsA As Recordset
       Dim sSQL As String, vMax As Long
       Set dB = CurrentDb
       Set rsD = dB.OpenRecordset("tDoss")
       rsD.MoveLast
       rsD.MoveFirst
       Do While Not rsD.EOF
          Debug.Print rsD!Dnum, rsD!DNom
          sSQL = "SELECT Anum, ANom, A_Dnum, ASuite FROM tAct WHERE A_Dnum=" & rsD!Dnum & " ORDER BY Anum;"
          Set rsA = dB.OpenRecordset(sSQL)
          If rsA.RecordCount > 0 Then
             rsA.MoveLast
             rsA.MoveFirst
             '--- tAct.Anum est le champ pris en compte pour détecter si dernier ou pas
             vMax = DMax("Anum", "tAct", "A_Dnum=" & rsD!Dnum)
             Do While Not rsA.EOF
                Debug.Print vMax, rsA!anum, rsA!A_dnum, rsA!anom
                rsA.Edit
                If rsA!anum < vMax Then
                   rsA!Asuite = True
                Else
                   rsA!Asuite = False
                End If
                rsA.Update
                rsA.MoveNext
             Loop
          End If
          rsD.MoveNext
       Loop
       Set rsA = Nothing
       Set rsD = Nothing
       Set dB = Nothing
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Magistrat
    Inscrit en
    janvier 2019
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Magistrat

    Informations forums :
    Inscription : janvier 2019
    Messages : 28
    Points : 8
    Points
    8
    Par défaut
    merci beaucoup. ma question est, où est-ce que je mets ce code? le fichier ne s'ouvre pas sur mon access 2013

  4. #4
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    juin 2012
    Messages
    967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

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

    Informations forums :
    Inscription : juin 2012
    Messages : 967
    Points : 1 564
    Points
    1 564
    Par défaut
    L'exemple joint est en Access 2010. Bizarre qu'il ne s'ouvre pas avec Access 2013.

    La routine Suite() est à placer dans un module. Il faut évidemment adapter les noms des tables et champs aux noms effectivement utilisés dans votre application. La routine est ensuite appelée par un bouton à placer dans un formulaire, par exemple celui qui ouvre les dossiers.

    Bonne continuation.

Discussions similaires

  1. Access macro cocher case sur tout enregistrement
    Par dr2105071 dans le forum Macros Access
    Réponses: 1
    Dernier message: 07/07/2018, 11h29
  2. Cocher automatiquement toutes les cases d'un champ
    Par Wenth dans le forum VBA Access
    Réponses: 9
    Dernier message: 08/07/2013, 12h04
  3. Réponses: 1
    Dernier message: 31/03/2009, 10h15
  4. Réponses: 3
    Dernier message: 02/12/2008, 21h27
  5. Rajouter une case à cocher en fonction du champs séléctionné !
    Par Arkoze dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/03/2007, 18h55

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