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

Access Discussion :

Boucles pour changer des valeurs


Sujet :

Access

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Boucles pour changer des valeurs
    Bonjour ;

    j'ai 10 champs bal_xxx et je voudrai faire une boucle de 1 à 10 et changer la valeur de chaque champ en utilisant ma boucle style pour i de 1 à 10 alors ["bal_"&i].Value = i*20 mais écrit comme ça ça marche pas

    Comment je peux cibler chaque champ bal_xxx en faisant passer dynamiquement la valeur de la variable i ?

    Merci par avance pour votre aide.

    Aymeric

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Si c'est dans un form :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.controls("bal_" & i).value=maNouvelleValeur
    c'est un objet recordset

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    me.fields("bal_" & i).value = maNouvelleValeur
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    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
     
    Function modif(nomtable As String, prem As Integer, der As Integer,i as variant) As Boolean
    'attention la collection fields a pour base zéro
    Dim mabase As DAO.Database
    Dim champ  As String
    Dim boucle As Integer
    On Error GoTo fin
    Set mabase = CurrentDb()
    DoCmd.SetWarnings (False)
    For boucle = prem To der
    champ = mabase.TableDefs(nomtable).Fields(boucle - 1).Name
    DoCmd.RunSQL ("UPDATE matable SET " & champ & " = [" & champ & "]*" & i & ";")
    Next boucle
    DoCmd.SetWarnings (False)
    modif = True
    fin:
    MsgBox ("cata")
    modif = False
    End Function
    Elle est pas belle la vie ?

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Re :
    Bonjour ;

    D'abord merci pour votre réponse.

    En fait, mon code VB est sur l'évènement Enter d'un objet du form du coup le Me.controls génère une erreur car Me. correspond à mon objet et non mon form qui est lui-même sous-form du formulaire principal.

    Désolé pour cette question de débutant mais dans ce contexte, comment est-ce que je peux cibler les controls Form(nom_form).Form(nom_sous_form).Controls ?

    Merci pour votre aide ;

    Aymeric

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Pour référér un control dans un sous form tu peux faire

    me.nomSousForm.form.controls("nomControl")

    Petite note les sous-form sont remplis avant les form c'est à dire que ton form principal peut ne pas contenir de données alors que ton sous-form en a. C'est un peu bizare mais c'est ainsi.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Suite ...
    Alors, en suivnat un peu tes conseils, j'essaye de cibler en tapant cela :
    Forms("Form_fClients").Form_sfClients.Form.Controls("bal_" & i).Value = rst2!montant

    Form_fClients est mon form principal et Form_sfClients est mon sous form.

    Avec cela, j'ai une erreur VB m'indiquant que le formulaire Form_fClients dont il est fait référence est introuvable alors qu'il existe bien.

    Aymeric

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Enlève le Form_, il sert à typer les données (classe form) pas à l'identifier le form.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Suite
    Je me suis rendu compte de mon énorme connerie de mettre le form_ devant ! Comme quoi, à force d'avoir le nez dedans on voit vraiment plus rien.

    En tout cas, c'est OK, ça marche nickel.

    Merci de ton aide.

    @+ ;

    Aymeric

Discussions similaires

  1. [XL-2007] Boucle pour copier des valeurs à la suite dans une même feuille
    Par LaMite dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/04/2014, 18h21
  2. Réponses: 14
    Dernier message: 04/10/2012, 13h14
  3. Réponses: 8
    Dernier message: 03/04/2011, 01h45
  4. Un programme "p2p" pour échanger des fichiers text
    Par Cthulhu 22 dans le forum Développement
    Réponses: 2
    Dernier message: 17/02/2005, 15h51
  5. boucle pour insérer des enregistrements
    Par roots_man dans le forum ASP
    Réponses: 7
    Dernier message: 05/10/2004, 09h28

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