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

VBA Access Discussion :

Parcourir enregistrement et champ formulaire [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 125
    Points : 62
    Points
    62
    Par défaut Parcourir enregistrement et champ formulaire
    Bonjour,

    Cela fait des heures que je lie des discussions sur le sujet, mais impossible de trouver comment faire marcher la chose...

    J'ai simplement un formulaire continu avec donc plusieurs enregistrement, qui ont tous un champ oui/non "finished"
    J'aimerai faire une fonction VBA qui après modification de ce dit champ, me lise chaque enregistrements et fasse une action si elle croise un enregistrement qui a le champs "finished"positioner sur non.

    Voici mon code, evidemment il ne fonctionne pas, j'ai l'impression que la boucle marche uniquement la premiere fois que je coche le champ oui/non, puis elle ne marche plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Dim Enregistrement As DAO.Recordset
    Set Enregistrement = Forms![frm_HOME].RecordsetClone
     
    With Enregistrement
        Do Until .EOF
             If Enregistrement![Finished] = False Then
                MsgBox ("SubTasks are missing") 'la message box sert juste a voir si la boucle marche'
            End If
            .MoveNext
        Loop
     
    End With

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 125
    Points : 62
    Points
    62
    Par défaut
    En effet, j'ai mit une nouvelle msgbox qui dit "hi" a cette endroit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim Enregistrement As DAO.Recordset
    Set Enregistrement = Forms![frm_HOME].RecordsetClone
     
    With Enregistrement
        Do Until .EOF
            If Enregistrement![Finished] = False Then
                MsgBox ("SubTasks are missing")
            End If
            .MoveNext
        MsgBox ("Hi")
        Loop
    End With
    Quand je modifie une checkbox elle apparait autant de fois qu'il y a d'enregistrement, puis quand je remodifie un autre champ oui/non (checkbox) elle n'apparait plus

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 125
    Points : 62
    Points
    62
    Par défaut
    J'ai pris le probleme autrement :

    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
     
    Private Sub Finished_AfterUpdate()
     
    Dim ID As Integer
    Dim Tasks As DAO.Recordset 'Premier sous formulaire'
    Set Tasks = Forms![frm_HOME]![frm_Project].Form![frm_Project_Tasks].Form.RecordsetClone
    Dim SubTasks As DAO.Recordset 'Deuxieme sous formulaire dependant du premier'
    Set SubTasks = Forms![frm_HOME]![frm_Project].Form![frm_Project_SubTasks].Form.RecordsetClone
     
     
    With SubTasks
        .FindFirst "[Finished]=" & False ' cherche si il existe un enregistrement qui n'est pas check'
        If .NoMatch Then 'si tout est check'
            MsgBox ("Il n'y en a pas de vide")
            .MoveFirst
            ID = SubTasks("ID_Tasks") 'enregistre la cle etrangere du deuxieme sous formulaire'
            MsgBox (ID)
            With Tasks
                .FindFirst "[ID_Tasks]=" & ID 'cherche dans le premier sous formulaire l'enregistrement qui a la meme cle'
                .Edit
                ![Finished].Enabled = True
                .Update
            End With
        Else 'sinon tant pis on fait rien'
            MsgBox ("Il y en a au moins un de pas check")
        End If
    End With
     
     
    Set Tasks = Nothing
    Set SubTasks = Nothing
     
    End Sub
    Dans la derniere boucle With, j'aimerai changer la propriete "enabled" du champ "finished", quelqu'un aurait une idee de la bonne syntaxe ? Car celle ci ne fonctionne pas
    Merci

  4. #4
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    la mise à jour ne se fait que sous la condition "If .NoMatch"; vous devez utiliser le débogueur (F8) et suivre les différents cas pour voir comment réagit votre code.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2017
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2017
    Messages : 125
    Points : 62
    Points
    62
    Par défaut
    La mise a jour marche, si par exemple je souhiate changer la valeur d'un des champs du recordset sous "if .NoMatch" tout marche super, mais la je cherche la formulation pour ne pas changer la valeur, mais la propriete "enabled" d'un champ

  6. #6
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut
    Réponse incomplète ....
    Pouvez-vous poster copie de votre DB,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Atteindre enregistrement selon champ Formulaire
    Par brankorri dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/07/2013, 11h07
  2. Parcourir les enregistrements d'un formulaire access
    Par mymi10 dans le forum VBA Access
    Réponses: 12
    Dernier message: 31/12/2007, 09h24
  3. Réponses: 2
    Dernier message: 29/06/2007, 08h17
  4. Réponses: 3
    Dernier message: 24/03/2007, 22h35
  5. Réponses: 4
    Dernier message: 28/12/2006, 17h38

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