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

VB 6 et antérieur Discussion :

Envoyer des controles d'un formulaire dans un tableau


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Envoyer des controles d'un formulaire dans un tableau
    Bonjour,

    J'ai un formulaire où j'ai une connexion avec une base Oracle en passant par ADO.
    Je souhaite affecter chaque ligne retournée par la requête sql dans un Textbox.
    Mes textbox sont nommé "THEOR1 à THEOR10".
    Je souhaite mettre mes controles dans un tableau que je passe à la fonction qui lance le SQL et récupère les lignes.
    Je n'arrive pas à mettre mes contrôles dans le tableau.
    Voici une de mes tentatives :
    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
     
    Private Sub RECUP_LIBRA_Click()
     
    Dim param(1 To 10) As Control
     
    For x = 1 To 10
        For Each Control In UserForm2.Controls
            If TypeOf Control Is MSForms.TEXTBox Then
                       If Control.Name = "THEOR" & x Then
                         param(x) = Control
                         Exit For
                End If
            End If    
        Next Control
    Next x
    Est-ce possible de faire cela ?

    Voici aussi un extrait de la fonction qui va affecter à chaque textbox une des valeurs retournée par la requête. A mon avis elle n'est pas correcte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Set mycn = New ADODB.Connection
     
    mycn.Open stConn
    x = 0
    Set myRS = mycn.Execute(mySQL)
     
    For x = 1 To 10
    If param&#40;x&#41; <> "" Then
    param&#40;x&#41;.Value = myRS.Fields&#40;x - 1&#41;
    End If
    Next x
     
    mycn.Close

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    A priori tu met le nom d'un control dans ce tableau, donc un string, essaye de déclarer ton tableau comme un string

    Starec

  3. #3
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ton SELECT sur ta base, il te ramène exactement 10 lignes?
    En tout cas, l'utilisation de Field(n) na marchera pas pour toi, car elle tepermet de choisir le champ dansune ligne retournée.
    Je m'explique: si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT Prenom, Nom, Taille FROM Personnes WHERE Prenom = 'Robert'
    tu obtiendras par exemple 10 lignes représentant des personnes s'appelant Robert, Et sur chaque ligne, tu récupères le prénom par RS.Field(0), le nom par RS.Field(1) et la taille par RS.Field(2).
    Pour passer d'une ligne à la suivante, tu dois faire
    En général, on met cette boucle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    RS.MoveFirst
    While Not RS.EOF
      ...
      ...
    Wend
    Et avant tout traitement, on vérifie que le ResultSet n'est pas vide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    If Not &#40;RS.EOF And RS.BOF&#41; Then
       ...
    End If

  4. #4
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ensuite, je ne comprend pas l'interêt de ton tableau de textbox, puisque leur nom a déjà une forme de tableau. Tu peux désigner tes contrôles TextBox par leur nom, que tu reconstruis en concaténant "THEOR" et une varaible i qui s'incrémente de 1 à 10.
    Avec un petit bout d'exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub test&#40;&#41;
        Dim Texte&#40;5&#41; As String
     
        Texte&#40;1&#41; = "Hello"
        Texte&#40;2&#41; = "World"
     
        For i = 1 To 2
            UserForm1.Controls&#40;"THEOR" & i&#41;.Text = Texte&#40;i&#41;
        Next i
     
        UserForm1.Show
     
    End Sub

Discussions similaires

  1. [MySQL] Insérer des données d'un formulaire dans la base
    Par ciel65 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 15/01/2007, 10h39
  2. Réponses: 3
    Dernier message: 20/09/2006, 17h07
  3. Réponses: 6
    Dernier message: 01/08/2006, 19h45
  4. [Requete] Utiliser un controle de sous formulaire dans SQL
    Par gwendk dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 09/05/2006, 17h53
  5. [DREAMWEAVER8] Envoyer des données d'un formulaire sur mail
    Par steeves5 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/02/2006, 19h15

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