OVH Cloud OVH Cloud

Accéder à un nom de label par concaténation

21 réponses
Avatar
jerome
Bonjour,

J'ai un problème de syntaxte VB que j'arrive pas à régler.

J'ai 3 labels dans un formulaire
label1, label2, label3

Je récupère des champs dans une base de données et je voudrais que ces
labels prennent la valeur de ces champs

J'essaie, rst étant un curseur

I=0
Do While rst.cur.EOF = False
I = I+1
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur
rst.cur.MoveNext
Loop

Mais ça ne fonctionne pas.

Comment pourrais-je faire ?

Merci par avance

10 réponses

1 2 3
Avatar
LE TROLL
Bonjour,

label1.CAPTION = ...

--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"jerome" a écrit dans le message de news:
%
Bonjour,

J'ai un problème de syntaxte VB que j'arrive pas à régler.

J'ai 3 labels dans un formulaire
label1, label2, label3

Je récupère des champs dans une base de données et je voudrais que ces
labels prennent la valeur de ces champs

J'essaie, rst étant un curseur

I=0
Do While rst.cur.EOF = False
I = I+1
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur
rst.cur.MoveNext
Loop

Mais ça ne fonctionne pas.

Comment pourrais-je faire ?

Merci par avance




Avatar
jerome
Je ne comprends pas la réponse.
Pour moi je voudrais faire
labelI .CAPTION =... avec I qui varie de 1 à n

Mais si je mets labelI ça ne fonctionne pas

"LE TROLL" <le wrote in message
news:
Bonjour,

label1.CAPTION = ...

--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"jerome" a écrit dans le message de news:
%
> Bonjour,
>
> J'ai un problème de syntaxte VB que j'arrive pas à régler.
>
> J'ai 3 labels dans un formulaire
> label1, label2, label3
>
> Je récupère des champs dans une base de données et je voudrais que ces
> labels prennent la valeur de ces champs
>
> J'essaie, rst étant un curseur
>
> I=0
> Do While rst.cur.EOF = False
> I = I+1
> ligne = "label" & CStr(I)
> myForm.ligne.Caption = rst.cur!maValeur
> rst.cur.MoveNext
> Loop
>
> Mais ça ne fonctionne pas.
>
> Comment pourrais-je faire ?
>
> Merci par avance
>
>




Avatar
LE TROLL
Re-bonjour,
En regardant de plus rès:
C'est quoi:

myForm.ligne.
myForm ???
ligne.caption ???

Et aussi ça:
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur

ligne reçoit dans une boucle "Do" label... Puis reçoit "rst..."
Ligne contient la dernière affectation (rst), faut:
ligne ligne=ligne & ...

Et enfin, "ligne", ça perd sa valeur à chaque passage, et a priori cette
valeur n'est pas récupérée avant ???
dim x(y)
Do...
...
x(y) = ligne ' pour conserver sa valeur...
loop


--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"jerome" a écrit dans le message de news:
%
Bonjour,

J'ai un problème de syntaxte VB que j'arrive pas à régler.

J'ai 3 labels dans un formulaire
label1, label2, label3

Je récupère des champs dans une base de données et je voudrais que ces
labels prennent la valeur de ces champs

J'essaie, rst étant un curseur

I=0
Do While rst.cur.EOF = False
I = I+1
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur
rst.cur.MoveNext
Loop

Mais ça ne fonctionne pas.

Comment pourrais-je faire ?

Merci par avance




Avatar
LE TROLL
Faut mettre:

Label1.Caption = variable & "dutexte"
Label1.Caption = variable
Label1.Caption = "dutexte"

--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"jerome" a écrit dans le message de news:

Je ne comprends pas la réponse.
Pour moi je voudrais faire
labelI .CAPTION =... avec I qui varie de 1 à n

Mais si je mets labelI ça ne fonctionne pas

"LE TROLL" <le wrote in message
news:
Bonjour,

label1.CAPTION = ...

--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"jerome" a écrit dans le message de news:
%
> Bonjour,
>
> J'ai un problème de syntaxte VB que j'arrive pas à régler.
>
> J'ai 3 labels dans un formulaire
> label1, label2, label3
>
> Je récupère des champs dans une base de données et je voudrais que ces
> labels prennent la valeur de ces champs
>
> J'essaie, rst étant un curseur
>
> I=0
> Do While rst.cur.EOF = False
> I = I+1
> ligne = "label" & CStr(I)
> myForm.ligne.Caption = rst.cur!maValeur
> rst.cur.MoveNext
> Loop
>
> Mais ça ne fonctionne pas.
>
> Comment pourrais-je faire ?
>
> Merci par avance
>
>








Avatar
Clive Lumb
jerome wrote:
Bonjour,

J'ai un problème de syntaxte VB que j'arrive pas à régler.

J'ai 3 labels dans un formulaire
label1, label2, label3

Je récupère des champs dans une base de données et je voudrais que ces
labels prennent la valeur de ces champs

J'essaie, rst étant un curseur

I=0
Do While rst.cur.EOF = False
I = I+1
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur
rst.cur.MoveNext
Loop

Mais ça ne fonctionne pas.

Comment pourrais-je faire ?

Merci par avance



Solution la plus simple
Créer un groupe de contrôles "MonLabel"
Ensuite on accède au texte de chaque membre par MonLabel(I).Caption

(Pour créer le groupe de façon simple, créer un label puis copier/coller et
repondre "Oui" quand VB vous demande si vous voulez créer un groupe. Repeter
à souhait)

Clive
Avatar
jerome
Désolé mais je ne comprends toujours pas.

Disons plus simplement que je souhaiterais faire
Dim I as integer
I=0
Do While I<=3
I = I + 1
label(I).Caption = I
Loop

donc à l'arrivée
label1.Caption = 1
label2.Caption = 2
label3.Caption = 3



"LE TROLL" <le wrote in message
news:
Re-bonjour,
En regardant de plus rès:
C'est quoi:

myForm.ligne.
myForm ???
ligne.caption ???

Et aussi ça:
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur

ligne reçoit dans une boucle "Do" label... Puis reçoit "rst..."
Ligne contient la dernière affectation (rst), faut:
ligne > ligne=ligne & ...

Et enfin, "ligne", ça perd sa valeur à chaque passage, et a priori cette
valeur n'est pas récupérée avant ???
dim x(y)
Do...
...
x(y) = ligne ' pour conserver sa valeur...
loop


--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"jerome" a écrit dans le message de news:
%
> Bonjour,
>
> J'ai un problème de syntaxte VB que j'arrive pas à régler.
>
> J'ai 3 labels dans un formulaire
> label1, label2, label3
>
> Je récupère des champs dans une base de données et je voudrais que ces
> labels prennent la valeur de ces champs
>
> J'essaie, rst étant un curseur
>
> I=0
> Do While rst.cur.EOF = False
> I = I+1
> ligne = "label" & CStr(I)
> myForm.ligne.Caption = rst.cur!maValeur
> rst.cur.MoveNext
> Loop
>
> Mais ça ne fonctionne pas.
>
> Comment pourrais-je faire ?
>
> Merci par avance
>
>




Avatar
LE TROLL
Non, si tu as 3 label différents, il faut les appeler par leur nom (label1,
2, 3), soit:

Dim i As Integer
For i = 1 to 3
If = 1 Then Label1.Caption = i
If = 2 Then Label2.Caption = i
If = 3 Then Label3.Caption = i
Next i

Par contre, comme a dit "Clive", si tu veux indicer un Label
labelX(i)
Il faut préalablement déclarer 3 label du même nom qui vont être indicés, tu
fais ainsi:
- Tu colles sur la form un label1
- A la souris sur ce label1 tu fais <copier>
- Toujours à la souris, à un autre endroit de la form tu fais <coller> +
<oui>
- Tu recommences une seconde fois le coller (il n'y aura pas la question)
nb: en cliquant sur l'objet, dans sa propriété Index tu pourras voir son
numéro d'ailleurs...
- Et seulement ensuite tu pourras utiliser ton label comme tu l'as indiqué,
soit:

Dim i as integer
For i = 1 to 3
Label(i).Caption = i
Next i

Si tu n'y arrives pas, dis, je te fais le code et je te l'envoie par
fichier...

--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"jerome" a écrit dans le message de news:

Désolé mais je ne comprends toujours pas.

Disons plus simplement que je souhaiterais faire
Dim I as integer
I=0
Do While I<=3
I = I + 1
label(I).Caption = I
Loop

donc à l'arrivée
label1.Caption = 1
label2.Caption = 2
label3.Caption = 3



"LE TROLL" <le wrote in message
news:
Re-bonjour,
En regardant de plus rès:
C'est quoi:

myForm.ligne.
myForm ???
ligne.caption ???

Et aussi ça:
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur

ligne reçoit dans une boucle "Do" label... Puis reçoit "rst..."
Ligne contient la dernière affectation (rst), faut:
ligne >> ligne=ligne & ...

Et enfin, "ligne", ça perd sa valeur à chaque passage, et a priori cette
valeur n'est pas récupérée avant ???
dim x(y)
Do...
...
x(y) = ligne ' pour conserver sa valeur...
loop


--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"jerome" a écrit dans le message de news:
%
> Bonjour,
>
> J'ai un problème de syntaxte VB que j'arrive pas à régler.
>
> J'ai 3 labels dans un formulaire
> label1, label2, label3
>
> Je récupère des champs dans une base de données et je voudrais que ces
> labels prennent la valeur de ces champs
>
> J'essaie, rst étant un curseur
>
> I=0
> Do While rst.cur.EOF = False
> I = I+1
> ligne = "label" & CStr(I)
> myForm.ligne.Caption = rst.cur!maValeur
> rst.cur.MoveNext
> Loop
>
> Mais ça ne fonctionne pas.
>
> Comment pourrais-je faire ?
>
> Merci par avance
>
>








Avatar
jerome
Merci.

Effectivement avec les groupes de contrôle ça fonctionne.

Merci encore
.
"Clive Lumb" wrote in message
news:
jerome wrote:
> Bonjour,
>
> J'ai un problème de syntaxte VB que j'arrive pas à régler.
>
> J'ai 3 labels dans un formulaire
> label1, label2, label3
>
> Je récupère des champs dans une base de données et je voudrais que ces
> labels prennent la valeur de ces champs
>
> J'essaie, rst étant un curseur
>
> I=0
> Do While rst.cur.EOF = False
> I = I+1
> ligne = "label" & CStr(I)
> myForm.ligne.Caption = rst.cur!maValeur
> rst.cur.MoveNext
> Loop
>
> Mais ça ne fonctionne pas.
>
> Comment pourrais-je faire ?
>
> Merci par avance

Solution la plus simple
Créer un groupe de contrôles "MonLabel"
Ensuite on accède au texte de chaque membre par MonLabel(I).Caption

(Pour créer le groupe de façon simple, créer un label puis copier/coller


et
repondre "Oui" quand VB vous demande si vous voulez créer un groupe.


Repeter
à souhait)

Clive




Avatar
Patrice Henrio
Bonjour

Il me semble que ce qui est écrit ci-après

Dim i As Integer
For i = 1 to 3
If = 1 Then Label1.Caption = i
If = 2 Then Label2.Caption = i
If = 3 Then Label3.Caption = i
Next i




serait plus simple ainsi

Label1.Caption = 1
Label2.Caption =2
Label3.Caption =3




"LE TROLL" <le a écrit dans le message de news:

Non, si tu as 3 label différents, il faut les appeler par leur nom
(label1, 2, 3), soit:

Dim i As Integer
For i = 1 to 3
If = 1 Then Label1.Caption = i
If = 2 Then Label2.Caption = i
If = 3 Then Label3.Caption = i
Next i

Par contre, comme a dit "Clive", si tu veux indicer un Label
labelX(i)
Il faut préalablement déclarer 3 label du même nom qui vont être indicés,
tu fais ainsi:
- Tu colles sur la form un label1
- A la souris sur ce label1 tu fais <copier>
- Toujours à la souris, à un autre endroit de la form tu fais <coller> +
<oui>
- Tu recommences une seconde fois le coller (il n'y aura pas la question)
nb: en cliquant sur l'objet, dans sa propriété Index tu pourras voir son
numéro d'ailleurs...
- Et seulement ensuite tu pourras utiliser ton label comme tu l'as
indiqué, soit:

Dim i as integer
For i = 1 to 3
Label(i).Caption = i
Next i

Si tu n'y arrives pas, dis, je te fais le code et je te l'envoie par
fichier...

--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"jerome" a écrit dans le message de news:

Désolé mais je ne comprends toujours pas.

Disons plus simplement que je souhaiterais faire
Dim I as integer
I=0
Do While I<=3
I = I + 1
label(I).Caption = I
Loop

donc à l'arrivée
label1.Caption = 1
label2.Caption = 2
label3.Caption = 3



"LE TROLL" <le wrote in message
news:
Re-bonjour,
En regardant de plus rès:
C'est quoi:

myForm.ligne.
myForm ???
ligne.caption ???

Et aussi ça:
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur

ligne reçoit dans une boucle "Do" label... Puis reçoit "rst..."
Ligne contient la dernière affectation (rst), faut:
ligne >>> ligne=ligne & ...

Et enfin, "ligne", ça perd sa valeur à chaque passage, et a priori cette
valeur n'est pas récupérée avant ???
dim x(y)
Do...
...
x(y) = ligne ' pour conserver sa valeur...
loop


--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"jerome" a écrit dans le message de news:
%
> Bonjour,
>
> J'ai un problème de syntaxte VB que j'arrive pas à régler.
>
> J'ai 3 labels dans un formulaire
> label1, label2, label3
>
> Je récupère des champs dans une base de données et je voudrais que ces
> labels prennent la valeur de ces champs
>
> J'essaie, rst étant un curseur
>
> I=0
> Do While rst.cur.EOF = False
> I = I+1
> ligne = "label" & CStr(I)
> myForm.ligne.Caption = rst.cur!maValeur
> rst.cur.MoveNext
> Loop
>
> Mais ça ne fonctionne pas.
>
> Comment pourrais-je faire ?
>
> Merci par avance
>
>












Avatar
LE TROLL
Affirmatif, mais c'était pour lui montrer en boucle...

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"Patrice Henrio" a écrit dans le message de
news: O$
Bonjour

Il me semble que ce qui est écrit ci-après

Dim i As Integer
For i = 1 to 3
If = 1 Then Label1.Caption = i
If = 2 Then Label2.Caption = i
If = 3 Then Label3.Caption = i
Next i




serait plus simple ainsi

Label1.Caption = 1
Label2.Caption =2
Label3.Caption =3




"LE TROLL" <le a écrit dans le message de news:

Non, si tu as 3 label différents, il faut les appeler par leur nom
(label1, 2, 3), soit:

Dim i As Integer
For i = 1 to 3
If = 1 Then Label1.Caption = i
If = 2 Then Label2.Caption = i
If = 3 Then Label3.Caption = i
Next i

Par contre, comme a dit "Clive", si tu veux indicer un Label
labelX(i)
Il faut préalablement déclarer 3 label du même nom qui vont être indicés,
tu fais ainsi:
- Tu colles sur la form un label1
- A la souris sur ce label1 tu fais <copier>
- Toujours à la souris, à un autre endroit de la form tu fais <coller> +
<oui>
- Tu recommences une seconde fois le coller (il n'y aura pas la question)
nb: en cliquant sur l'objet, dans sa propriété Index tu pourras voir son
numéro d'ailleurs...
- Et seulement ensuite tu pourras utiliser ton label comme tu l'as
indiqué, soit:

Dim i as integer
For i = 1 to 3
Label(i).Caption = i
Next i

Si tu n'y arrives pas, dis, je te fais le code et je te l'envoie par
fichier...

--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"jerome" a écrit dans le message de news:

Désolé mais je ne comprends toujours pas.

Disons plus simplement que je souhaiterais faire
Dim I as integer
I=0
Do While I<=3
I = I + 1
label(I).Caption = I
Loop

donc à l'arrivée
label1.Caption = 1
label2.Caption = 2
label3.Caption = 3



"LE TROLL" <le wrote in message
news:
Re-bonjour,
En regardant de plus rès:
C'est quoi:

myForm.ligne.
myForm ???
ligne.caption ???

Et aussi ça:
ligne = "label" & CStr(I)
myForm.ligne.Caption = rst.cur!maValeur

ligne reçoit dans une boucle "Do" label... Puis reçoit "rst..."
Ligne contient la dernière affectation (rst), faut:
ligne >>>> ligne=ligne & ...

Et enfin, "ligne", ça perd sa valeur à chaque passage, et a priori
cette
valeur n'est pas récupérée avant ???
dim x(y)
Do...
...
x(y) = ligne ' pour conserver sa valeur...
loop


--
Site éditeur MES ROMANS édités
http://www.manuscritdepot.com/a.joseph-attila-pusztay.1.htm
Site de MES LOGICIELS
http://irolog.free.fr
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
--------------------------------------------------------------------------


----------
"jerome" a écrit dans le message de news:
%
> Bonjour,
>
> J'ai un problème de syntaxte VB que j'arrive pas à régler.
>
> J'ai 3 labels dans un formulaire
> label1, label2, label3
>
> Je récupère des champs dans une base de données et je voudrais que
> ces
> labels prennent la valeur de ces champs
>
> J'essaie, rst étant un curseur
>
> I=0
> Do While rst.cur.EOF = False
> I = I+1
> ligne = "label" & CStr(I)
> myForm.ligne.Caption = rst.cur!maValeur
> rst.cur.MoveNext
> Loop
>
> Mais ça ne fonctionne pas.
>
> Comment pourrais-je faire ?
>
> Merci par avance
>
>
















1 2 3