Problème macro access

Bonjour,

J'ai créé un formulaire sur access 2007 basé sur une table à trois colonnes. Il s'agit d'un formulaire en mode "continue" Je souhaiterais par une macro, affecter une valeur à un champs mais que cette valeur soit dépendante de la valeur d'un autre champs (en introduisant une condition dans la macro) Cà je maitrise

Mais ma question est : comment faire pour que la mise à jour de la valeur se fasse sur TOUTES les lignes du formulaire et non sur la première seulement ?

Merci pour vos réponses

6 réponses

  1. bonjour que ve tu faire exactement on pourra transformer ta macro en code vba
    0
    1. Salut,

      Sans rentrer trop dans les détails, il s'agit d'un sous formulaire dans lequel j'ai une case à cocher de type oui/non. Une requête ne peut pas fonctionner car je dois pouvoir la décocher.
      Disons que suivant la valeur d'une case dans le formulaire père, une série de case doit être cochée en oui (ou en non) dans le sous formulaire automatiquement. MAIS on doit pouvoir modifier sa valeur

      J'éspère que c'est compréhensible
      0
      1. bonjour

        Quelque chose comm ca pourrais surement t aider:*

        tu creer un bouton sur ton formulaire et derriere tu met:

        Dim dbs As Database
        Dim ... As Recordset 'remplace les ... par le nom du champ que tu veu verifier
        Set dbs = CurrentDb
        Set ...= dbs.OpenRecordset("ici le nom de ta table", dbOpenTable)

        Recordset.MoveFirst
        While Not Recordset.EOF
        Recordset.MoveNext
        If Me.... = "ta condition que tu veux verifier" Then la les ... correspondent a ce du haut

        ta case a cocher = true

        Else: ta case a cocher = false

        End If

        Wend

        je pense que c ce que tu recherche si besoin hesite pas
        0
        1. Merci pour ta réponse. Je suis sur que la solution est là

          J'ai adapté de la façon suivante :

          Private Sub Commande32_Click()
          On Error GoTo Err_Commande32_Click

          Dim dbs As Database
          Dim N°adresse As Recordset
          Set dbs = CurrentDb
          Set N°adresse = dbs.OpenRecordset(definircontacts, dbOpenTable)

          Recordset.MoveFirst
          While Not Recordset.EOF
          Recordset.MoveNext
          If Me!N°adresse = Me!rappeladresse Then

          Validation = True
          Else: Validation = False

          End If

          End Sub

          Mais çà ne marche pas. Je dois faire des erreurs dans la rédaction mais je manipule très mal le VBA

          en synthèse, dans la requête "définir contact" j'ai un champs "N°adresse" qui doit être identique à un champs texte "rappeladresse" du formulaire pour que la case à cocher "validation" soit définie comme vraie.

          Peux tu me dépanner sur la rédaction du code ? je pense que l'erreur se situe dans le début du code
          0
          1. re

            alors apres le end if il manque le le wend

            il manque les " " entre le nom de ta requete "definircontacts",dbopendynaset

            et aussi vu que c une requete que tu utilise et non une table le type est dynamique dc : dbopendynaset comme je te l ai indiqué ci desssus

            essai en modifiat ca deja si cela ne vas tjs pas on essaira en modifiant tes " if "
            0
            1. Salut,
              en corrigeant quelques lignes
              Private Sub Commande32_Click()
              On Error GoTo Err_Commande32_Click

              Dim dbs As DAO.Database
              dim rst as DAO.Recordset
              Set dbs = CurrentDb
              Set rst= dbs.OpenRecordset("nom_tble du sous-formulaire fils", dbOpendynaset)
              rst.MoveFirst
              While Not rst.EOF
              If rst![nom_champ en commun_table fils] = Me.nom_champ_communpère Then
              Validation = True
              Else: Validation = False
              End If
              rst.MoveNext
              wend
              End Sub
              j'espère vous avoir aider.
              Bonne chance.
              Merci.
              0