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

IHM Discussion :

boucle sur les textbox [AC-2010]


Sujet :

IHM

  1. #1
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut boucle sur les textbox
    Bonjour,


    Je reviens vers vous plus pour répondre à une interrogation, qu'une véritable question.

    J'ai actuellement un formulaire, sur lesquels des champs sont renseignées, pour pouvoir, derrière, remplir une table.
    Dans mon formulaire, j'ai beaucoup de textbox, mais aussi des CheckBox et des radios bouton.

    Plutôt que d'éviter de faire mon INSERT en passant sur chaque textbox, étant donné qu'elles ne vont plus bouger, j'effectue une boucle sur les contrôles de cette manière :

    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
     
    ValeurAAjouter = ""
    For Each mycontrol In Me.Controls
        If TypeOf mycontrol Is TextBox Then
            If Controls(mycontrol.Name).Value = "" Or IsNull(Controls(mycontrol.Name).Value) Then
                ValeurAAjouter = ValeurAAjouter & "NULL,"
            Else
                If IsNumeric(Controls(mycontrol.Name).Value) Then
                    ValeurAAjouter = ValeurAAjouter & "" & Controls(mycontrol.Name).Value & ","
                Else
                    ValeurAAjouter = ValeurAAjouter & "'" & Controls(mycontrol.Name).Value & "',"
                End If
            End If
            'MsgBox MyControl.Name
            'MsgBox Controls(MyControl.Name).Value
        End If
    Next
    iSQL = "INSERT INTO test (...)" _
    & "VALUES (" & ValeurAAjouter & ")"
    'Debug.Print iSQL
    CurrentDb.Execute iSQL
    J'ai 2 questions :
    - quand on fait un for each, est-ce qu'il boucle sur les différents contrôles toujours dans le même ordre ?
    - Si ce n'est pas le cas, il faudrait alors plutôt que je fasse une boucle for Sinon mon ValeurAAjouter ne sera jamais dans le même sens, et mon insertion en base va pas fonctionner correctement.
    J'ai alors essayé un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For i = 1 To Me.Controls.Count
        mycontrol = Me.Controls(i)
        If Left(mycontrol, 3) = "Txt" Then
            MsgBox mycontrol.Name
        End If
    Next i
    Mais il me fait une erreur sur "Me.controls(i)".
    Du coup, je sais pas trop comment boucler sur les différents contrôles..Quelqu'un aurait une piste à me fournir ?


    En vous remerciant par avance de vos réponses
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Je viens de faire quatre tests en utilisant : "For Each ..."
    1. En mode création, je sélectionne tous les champs à poser et glisse la sélection sur mon formulaire. A l'ouverture de formulaire, les contrôles sont lus dans l'ordre de la table. (Zone text puis l'étiquette attachée)
    2. Sur ce même formulaire, je modifie l'ordre des tabulations. La lecture est identique au test 1
    3. Je pose mes contrôles manuellement dans l'ordre qui m'intéresse. A l'ouverture, les contrôles sont lus dans l'ordre où je les ai posé
    4. Sur ce même formulaire, je modifie l'ordre des tabulations. La lecture est identique au test 3

    J'espère que cela répond à ta question

    Bonne continuation
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    Bonjour,


    Je te remercie pour ta réponse.

    Cela veut donc dire que le "for each" ne prend pas en compte l'ordre des tabulations des textbox, mais l'ordre de création de celle-ci.

    Imagine alors que j'ai renommé toutes mes textbox, et que par la suite, je reprend mon code. Je ne me souviens plus l'ordre dans laquelle je les ai créées. Comment retrouver l'ordre de création ? Car l'ordre de tabulation, si j'ai bien compris est totalement différent

    je te remercie en tout cas de t'être penché sur ma question
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

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

Discussions similaires

  1. Explication sur les textbox
    Par Djimson dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 30/11/2006, 16h09
  2. boucle sur les champs dynamiques
    Par Anduriel dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/06/2006, 19h49
  3. [C#] Boucle sur les controles
    Par stailer dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/05/2006, 08h48
  4. Macro sur Excel/Boucle sur les lettres
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/11/2005, 11h56
  5. [c#] une question de noob... sur les textbox
    Par warenbe dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/08/2005, 23h13

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