problème de boucle en Visual Basic

problème de boucle en Visual Basic - VB/VBA/VBS - Programmation

Marsh Posté le 30-03-2006 à 00:03:51    

bonjour,
je travail avec vb6 et crystal report 8.5 et dans mon code VB cette boucle ne marche pas:
 

Code :
  1. Sub police()
  2. ''''''''''''''''' Les polices ''''''''''''''''''''''''
  3. Dim chxname As String
  4. Dim chxbold, chxitalic, chxbarre, chxsouligne As Boolean
  5. Dim chxsize As Integer
  6. Dim Z As Integer
  7. Dim chxcolor As Double
  8. Open App.Path & "\police.mod" For Input As #1
  9.   Input #1, chxname, chxbold, chxitalic, chxsize, chxbarre, chxsouligne, chxcolor
  10. Close #1
  11. For Z = 247 To 361
  12.      NoFiel = CStr(Z)
  13.      LeControle = "T" + NoFiel
  14.      Report.LeControle.Font.Name = chxname
  15. Report.LeControle.Font.Bold = chxbold
  16. Report.LeControle.Font.Italic = chxitalic
  17. Report.LeControle.Font.Size = chxsize
  18. Report.LeControle.Font.Strikethrough = chxbarre
  19. Report.LeControle.Font.Underline = chxsouligne
  20. Next
  21. End Sub


 
Je voudrai faire en sorte que tous les champs de textes ayant pour nom "T247 -> T361" dans la crystal report aient la même police. C'est pour éviter d'ecrire plein de fois la même chose que j'ai voulu faire cette boucle...
Savez-vous ce qui ne va pas dans mon code?
merci pour votre aide.

Reply

Marsh Posté le 30-03-2006 à 00:03:51   

Reply

Marsh Posté le 30-03-2006 à 17:43:49    

Pourrais-tu être plus précis quand tu dis que cette boucle ne marche pas ? On te renvoie une erreur ? Elle s'opère, mais ne fait pas ce que tu veux ? etc.
 
Sinon, juste pour information (peut-être y a-t-il un rapport) : Lorsque tu déclares tes variables sur une seule ligne, elles doivent toutes avoir leur type en face d'elles.
 
C'est-à-dire que dans cette déclaration :

Dim chxbold, chxitalic, chxbarre, chxsouligne As Boolean


seule chxsouligne est de type Boolean. Les autres sont de type Variant.

Reply

Marsh Posté le 31-03-2006 à 10:51:09    

Clairement ça ne peut pas marcher
Dans la phrase

Report.LeControle.Font.Name = chxname

l'interpréteur VB cherche un objet LeControle dans Report, et pas un objet dont le nom serait le contenu de la variable LeControle.
 
Je ne sais pas si ton objet Report a une collection du genre .Controls, mais il faudrait trouver une syntaxe Crystal comme l'exemple suivant

Report.Controls(LeControle).Font.Name = chxname

Je précise que je n'ai aucune idée si mon exemple fonctionne; cela dépend complètement de l'objet Report que je ne connais pas.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed