Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/08/2006, 15h21   #1
Membre actif
 
Inscription : juin 2006
Messages : 431
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 431
Points : 162
Points : 162
Par défaut problème sur un tableau dynamique

salut,
j'utilise un tableau défini comme suit;
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
x = 0
suival = ""
dim type_client()
do while not rst.eof
	suival2 = rst("SocRel")
	if suival <> suival2 then
		if suival <> "" then
			type_client(x - 1,1) = count
		end if
		count = 0
		redim type_client(x,0)
		type_client(x,0) = suival2
		x = x + 1
	end if
	rst.movenext
loop
Mon objectif est d'associer un résultat de requète à un type de client.Mon souci intervient sur la ligne "type_client(x - 1,1) = count". J'obtiens une erreur: 'Indice en dehors de la plage: '[number: 1]' . Pourtant en vérifiant mes valeurs, count est bien un nombre, et x vaut 1 à ce moment la (donc 0 ici).
Est-ce une erreur dans la définition de mon tableau, ou autre chose?
boss_gama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 15h54   #2
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
salut,

tu dois déclarer les tailles de ton tableau au début soit :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
[LEFT]x = 0
suival = ""
dim type_client()
redim type_client(1,1)
do while not rst.eof
	suival2 = rst("SocRel")
	if suival <> suival2 then
		if suival <> "" then
			type_client(x - 1,1) = count
		end if
		count = 0
		redim type_client(x,0)
		type_client(x,0) = suival2
		x = x + 1
	end if
	rst.movenext
loop[/LEFT]
__________________
La guerre 14-18 avait fait un civil de tué pour dix militaires. 39-45 : un civil pour un militaire. Engagez-vous! Pour la prochaine, seuls les militaires seront survivants.
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 15h56   #3
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
c'est encore moi!!!!

tu dois aussi faire ca si tu veux conserver tes valeurs :

Code :
1
2
3
 
redim preserve type_client(x,0)
et tu dévrais donner au moins une colonne a ton tableau :

Code :
1
2
3
 
redim preserve type_client(x,1)
__________________
La guerre 14-18 avait fait un civil de tué pour dix militaires. 39-45 : un civil pour un militaire. Engagez-vous! Pour la prochaine, seuls les militaires seront survivants.
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 16h03   #4
Membre chevronné
 
Inscription : janvier 2004
Messages : 633
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 633
Points : 651
Points : 651
Salut,
Je ne comprends pas pourquoi ton erreur vient de cette ligne
Code :
type_client(x - 1,1) = count
alors que la condition :
ne sera jamais vérifiée car tu initialises bien
mais par la suite la valeur de la variable ne change pas!
__________________
+ + http://www.developpez.net/forums/tem...ini_search.gif
= ...enfin le plus souvent
Pymm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 16h15   #5
Membre actif
 
Inscription : juin 2006
Messages : 431
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 431
Points : 162
Points : 162
j'ai rajouté
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
x = 0
suival = ""
dim type_client()
redim type_client(x,1)
do while not rst.eof
	suival2 = rst("SocRel")
	if suival <> suival2 then
		if suival <> "" then
			type_client(x - 1,1) = count
		end if
		count = 0
		redim preserve type_client(x,1)
		type_client(x,0) = suival2
		x = x + 1
	end if
	rst.movenext
loop[/LEFT]
mais j'ai toujours un problème d'indice hors plage sur la ligne "redim preserve type_client(x,1)"
edit:
Pymm, je n'ai pas mis tout mon code, mais suival est bien modifié ensuite et <> de "", donc le cas est bien traité
boss_gama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 16h39   #6
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
je crois que ca doit etre :

Code :
1
2
3
 
 
redim preserve type_client(x,2)
en fait, le truc c'est que quand tu déclares, tu donnes le nombre de lignes et de colonnes, mais ATTENTION car le 0 compte pour 1 ligne ou 1 colonne!!
Je sais pas si tu m'as compris mais bon...
__________________
La guerre 14-18 avait fait un civil de tué pour dix militaires. 39-45 : un civil pour un militaire. Engagez-vous! Pour la prochaine, seuls les militaires seront survivants.
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 16h46   #7
Membre actif
 
Inscription : juin 2006
Messages : 431
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 431
Points : 162
Points : 162
je crois que ce que tu me dis c'est que l'indicage d'un tableau de 10 élements va de 0 à 9. Mais cela ne marche pas mieux avec un 2
boss_gama est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 16h51   #8
Membre habitué
 
Inscription : juillet 2006
Messages : 93
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : juillet 2006
Messages : 93
Points : 107
Points : 107
alors c'était l'inverse :

redim preserve type_client(x + 1,2)
__________________
La guerre 14-18 avait fait un civil de tué pour dix militaires. 39-45 : un civil pour un militaire. Engagez-vous! Pour la prochaine, seuls les militaires seront survivants.
Ntilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 16h51   #9
Membre chevronné
 
Inscription : janvier 2004
Messages : 633
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 633
Points : 651
Points : 651
Je utilise peu les tableaux mais il me semble me souvenir que ne fonctionne que sur la dernière valeur càd :
tab(x,y) tu ne peux faire qu'un redim tab(x,z) et non redim tab(z,y)
__________________
+ + http://www.developpez.net/forums/tem...ini_search.gif
= ...enfin le plus souvent
Pymm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2006, 17h27   #10
Membre actif
 
Inscription : juin 2006
Messages : 431
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 431
Points : 162
Points : 162
C'est bien ca Pymm. J'ai inversé et maintenant ca marche. Je trouve ca stupide mais bon....
Tant que ca marche
Merci à tous les deux pour votre aide
boss_gama est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h54.


 
 
 
 
Partenaires

Hébergement Web