[VBA] utiliser une variable dont le nom est dans une variable

utiliser une variable dont le nom est dans une variable [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 07-12-2005 à 16:17:21    

Je vais essayé d'exposer clairement mon probléme.
 
j'ai une varaible que nous appeleront toto de type string
la valeur de cette variable est le nom d une autre variable et je veux acceder a cette autre variable.
 
prenons un exemple :
 

Code :
  1. function test(parametre)
  2. dim toto as string
  3. if parametre = 1 then toto = "test1" else toto = "test2"
  4. ?????? = 1


a la place de mes ? je voudrais arriver a mettre quelque chose pour que cela soit test1 quand parametre est a 1 et test2 quand parametre = 2
 
en PHP j'aurais écrit (si mes souvenir sont bon) $$toto = 1
 
comment je fait en VBA pour access 2000 ? [:sisicaivrai]

Reply

Marsh Posté le 07-12-2005 à 16:17:21   

Reply

Marsh Posté le 07-12-2005 à 16:22:07    

Salut belgarion,
 
Je ne connais pas les macros sous access mais je pense que le système des variables doit fonctioner pareil.
 
Je pense à un truc du type :
toto= "test" & parametre
 
regarde si ça arrive à le reconnaitre... Tout dépend de l'utilisation de toto ensuite :)
 
bon courage

Reply

Marsh Posté le 07-12-2005 à 17:42:59    

le but du jeux c'est que dans test1 ou test2 on puisse mettre ce que l on veux (1 dans mon exemple)
 
ca serait plus un

Code :
  1. "test" & parametre = 1


qu'il me faudrait mais je doute mechament que ca marche
 
mais la j ai pris test1 et test2 c'est pour l exemple ca sera des string completement different et pas un test avec un numero

Reply

Marsh Posté le 07-12-2005 à 19:00:42    

Décidement j'ai pas compris...
 
ton exemple ne me parles pas en l'état.
Explique moi :)
1- parametre est-il numérique ou pas? Combien de valeur sont possible ?
2- toto vient de parametre : a priori du texte special genre ça pourait être "isabelle" ou "victor"
ensuite tu veux pouvoir avoir des valeurs en fonction de toto&parametre
du type victor1=123, isabelle2="plouf"... ?
C'est ça ? ou je suis à côté de la plaque ?


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
Reply

Marsh Posté le 08-12-2005 à 12:21:52    

on va faire simple je vais copier mon code qui fait ce que je veux

Code :
  1. Public Pays As String
  2. Public representant As String
  3. Function GenereRequete(typeChamp As String, valeurChamp As String) As String
  4. ' On met à jour les variables globals
  5. If typeChamp = "pays" Then Pays = valeurChamp
  6. If typeChamp = "representant" Then representant = valeurChamp
  7. End Function


 
voila cette fonction fait ce que je veux
mais pour l instant j ai 2 typechamp et je vais en avoir plus que ca
et je ne veux pas retoucher a ma fonction a chaque fois que j en ajoute un
sans parler que niveau perferormance ce que je cherche a faire et beaucoup plus performant normalement
 
je sais on peux mettre un case mais ca ne change pas le probleme

Message cité 1 fois
Message édité par belgarion le 08-12-2005 à 12:22:19
Reply

Marsh Posté le 08-12-2005 à 14:00:35    

Ok je vois ce que tu veux faire, malheureusement je n'ai aucune idée de comment faire; avec le problème définicomme ça quelqu'un d'autre pourra peut-être t'aider.
 
Bon courage

Reply

Marsh Posté le 13-12-2005 à 14:33:57    

belgarion a écrit :

on va faire simple je vais copier mon code qui fait ce que je veux

Code :
  1. Public Pays As String
  2. Public representant As String
  3. Function GenereRequete(typeChamp As String, valeurChamp As String) As String
  4. ' On met à jour les variables globals
  5. If typeChamp = "pays" Then Pays = valeurChamp
  6. If typeChamp = "representant" Then representant = valeurChamp
  7. End Function


 
voila cette fonction fait ce que je veux
mais pour l instant j ai 2 typechamp et je vais en avoir plus que ca
et je ne veux pas retoucher a ma fonction a chaque fois que j en ajoute un
sans parler que niveau perferormance ce que je cherche a faire et beaucoup plus performant normalement
 
je sais on peux mettre un case mais ca ne change pas le probleme


 
 
 
Bonjour,
 
Je ne sais pas trop comment tu comptes utiliser tes variables ensuite, mais j'essairai de rester générique avec 2 variables quelques soit ton nombre de champs
 
Avoir une variable "typeChamp" et une "valeurChamp" que t'utilises toujours en couple après.
 
La variable valeurChamp n'allant jamais sans typeChamp.
Dans ton exemple j'ai l'impresssion que tu souhaites te "débarasser" de la variable typeChamp, pour n'avoir ensuite qu'une variable...
 
Voila mon avis, je ne sais pas si je suis clair...
bon courage


Message édité par dlaumor le 13-12-2005 à 14:34:39
Reply

Marsh Posté le 13-12-2005 à 15:03:14    

ce que je voulais arriver a faire c'était condensé mon code source et rendre l execution de mon programe plus rapide
 
mais bon vu la complexité a mettre en oeuvre en VBA (quand je vois la simplicité à faire en php je me dit vive microsoft) j'ai abandonné l'idée

Reply

Sujets relatifs:

Leave a Replay

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