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 :

Nom de Champ dans une table pour utiliser For/Next


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Nom de Champ dans une table pour utiliser For/Next
    Bonjour à tous,

    Je ne trouve pas la synthaxe pour le nom du champ dans une table pour pouvoir untiliser la boucle for/next dans un formulaire.

    Exemple :
    For I = 1 to 20
    MonChamp(I) = I
    next I

    J'ai essayé les noms de champ suivants dans la table : MonChamp&1, MonChamp_1, MonChamp1 mais rien ne marche dans le For/Next.

    J'ai fait une recherche sur le forum mais je n'ai pas vraiment trouvé de solution.

    Merci de votre aide.

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut Re: Nom de Champ dans une table pour utiliser For/Next
    Bonjour

    En considérant que tu as nommé tes champs Champ1, Champ2, Champ3, ... tu peux utiliser la syntaxe suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            For i = 1 To 3
                    Me.Recordset.Fields("champ" & i) = i
            Next i
    Cela étant, ce n'est pas très "sage" de nommer tes champs de cette manière.

    De plus, je ne vois pas l'utilité d'attribuer à tes champs les valeurs de I...

    Cela convient-il?

    Pierre

  3. #3
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Tu peux partir d'une base comme celle-ci (à peaufiner):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub TestForNext_Click()
    Dim oCtrl As Control
    Dim tbName As String
     
      For Each oCtrl In Screen.ActiveForm
      tbName = oCtrl.Name
        If Left(tbName, 5) = "Texte" Then
          I = I + 1
          If Not IsNull(oCtrl.Name) Then
            oCtrl = I
          End If
        End If
      Next
    End Sub
    Mes champs s'appellent Texte1 à Texte5

    Argy

  4. #4
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Points : 131
    Points
    131
    Par défaut
    Si c'est vraiment les noms de champs d'une table, essaie d'utiliser la méthode fields de l'objet tabledefs.
    Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for each fld in application.currentdb.tabledefs("nom de ta table").fields
         ' Ton traitement
    next fld
    Devrait t'aider.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Nom de Champ dans une table pour utiliser For/Next
    Bonjour et merci de la rapidité de vos réponse mais

    La solution de Pierre me plait bien mais j'ai alors l'erreur suivante :
    Update or CancelUpdate without Addnew or Edit.

    Voici en fait ce que je veux faire et ce sur l'action click d'un bouton de commande :

    For I = 1 to 20
    If NomDepotI = "Nossegem" then
    QteDepotI = QteTot + QteDepotI
    Else
    QteDepotI = QteTot - QteDepotI
    end if
    next I

    NomDepot1, NomDepot2 .... ainsi que QteDepot19, QteDepot20 et QteTot étant des noms de champs de ma table.

    Merci encore et déjà

    Mulele

  6. #6
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2004
    Messages : 159
    Points : 131
    Points
    131
    Par défaut
    J'ai comme l'impression que l'erreur que tu as n'a pas de lien avec le code dont tu nous parle.

    Utilise les outils de déboguage fourni pas access pour voir sur quelle ligne l'erreur arrive.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Je crois avoir trouvé une solution


    For I = 1 To 20
    If Me.Controls.Item("CdeDepot" & I) = "Nossegem" Then
    Me.Controls.Item("CdeQteDepot" & I) = Me.QteTot + Me.Controls.Item("CdeQteDepot" & I)
    Else
    Me.Controls.Item("CdeQteDepot" & I) = Me.QteTot - Me.Controls.Item("CdeQteDepot" & I)
    End If
    Next I

    Salut à tous

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

Discussions similaires

  1. Récupérer des noms de fichier dans une table pour les placer en masque du tfilelist
    Par charliplanete dans le forum Développement de jobs
    Réponses: 11
    Dernier message: 24/08/2011, 17h16
  2. Réponses: 5
    Dernier message: 10/02/2010, 14h11
  3. Réponses: 3
    Dernier message: 04/07/2008, 11h33
  4. Modification nom de champ dans une table
    Par yoaugoulo dans le forum Langage SQL
    Réponses: 4
    Dernier message: 30/01/2008, 13h08
  5. cherche requette pour trouver le nom des champs dans une table
    Par maverick56 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 12/07/2007, 10h28

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