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 06/12/2007, 17h34   #1
Membre du Club
 
Avatar de The Molo
 
Inscription : avril 2007
Messages : 219
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 219
Points : 60
Points : 60
Par défaut Tableau : type incompatible

Bonjour,

Je sui débutant en ASP, donc pour m'habituer, je dévellope toujours en PHP puis je traduis en ASP mais là je coince.

J'ai cette erreur à l'excecution :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Erreur de compilation Microsoft VBScript error '800a0401' 
 
Fin d'instruction attendue 
 
/iisHelp/common/500-100.asp, line 11 
 
Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
Erreur d'exécution Microsoft VBScript error '800a000d' 
 
Type incompatible: 'tab_periode' 
 
/Test/Default.asp, line 38
pour le code suivant (je garnis simplement un tableau) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'Indices
ind = periode_en_cours - 1			'Période précédente
i_tab = 0							'Indice des tableaux où l'on stockera les périodes et années à afficher 
i_periode_annee_precedente = 4 		'Au cas où l'on devrait remonter à l'année précédente
 
while ( ind >< derniere_periode)
	if (ind > 0) then 'Si on ne remonte pas à l'année précédente
		tab_periode(i_tab) = ind
		tab_annee(i_tab) = annee_en_cours
	else 'On remonte à l'année précédente
		tab_periode(i_tab) = i_periode_annee_precedente
		tab_annee(i_tab) = annee_precedent
		i_periode_annee_precedente = i_periode_annee_precedente - 1
	end if
 
i_tab = i_tab + 1
ind = ind - 1
movenext
wend
__________________
The Molo
The Molo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 17h56   #2
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Bonjour

Dans ton message d'erreur, ce qui n'est pas interessant :
Citation:
Erreur de compilation Microsoft VBScript error '800a0401'

Fin d'instruction attendue

/iisHelp/common/500-100.asp, line 11

Dim objASPError, blnErrorWritten, strServername, strServerIP, strRemoteIP Dim strMethod, lngPos, datNow, strQueryString, strURL
--------------------------------------------------------------------------^
Erreur d'exécution Microsoft VBScript error '800a000d'
(c'est un bug de la page d'erreur 500-100)

Ce qui est interessant :
Citation:
Type incompatible: 'tab_periode'

/Test/Default.asp, line 38
tab_periode n'est probablement pas déclarée

PS : la syntaxe >< j'en suis pas sur, en principe, on fait plutot <>
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2007, 20h47   #3
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 851
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 851
Points : 5 967
Points : 5 967
Salut,

Comment déclares-tu ton tableau "tab_periode"?

A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 09h18   #4
Membre du Club
 
Avatar de The Molo
 
Inscription : avril 2007
Messages : 219
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 219
Points : 60
Points : 60
Bonjour,

merci de vos réponses ...

Je déclare mes tableaux comme mes variables :

Code :
Dim tab_periode, tab_annee
Je suppose que c'est ça le problème ...
__________________
The Molo
The Molo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 09h39   #5
Membre du Club
 
Avatar de The Molo
 
Inscription : avril 2007
Messages : 219
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 219
Points : 60
Points : 60
Je viens de comprendre mes erreurs...

Merci de m'avoir éclairé !!!

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
tab_periode = array()
tab_annee = array ()
 
while ( ind >< derniere_periode)
 
' Chaque fois que l'on redimensionne un tableau (que l'indice change), il faut l'inscrire !
redim tab_periode(i_tab)
redim tab_annee(i_tab)
 
	if (ind > 0) then 'Si on ne remonte pas à l'année précédente
		tab_periode(i_tab) = ind
		tab_annee(i_tab) = annee_en_cours
	else 'On remonte à l'année précédente
		tab_periode(i_tab) = i_periode_annee_precedente
		tab_annee(i_tab) = annee_precedent
		i_periode_annee_precedente = i_periode_annee_precedente - 1
	end if
 
i_tab = i_tab + 1
ind = ind - 1
wend
__________________
The Molo
The Molo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 09h44   #6
Modérateur
 
Avatar de roro06
 
Inscription : avril 2007
Messages : 1 364
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : avril 2007
Messages : 1 364
Points : 1 551
Points : 1 551
Bonjour

Pour déclarer un tableau en vbscript, c'est :

si tu ne connais pas la dimension à l'avance :
...suivi de

Code :
redim [preserve] tab(x)
pour redéclarer une dimension. le mot-clef preserve permet de ne pas écraser les valeurs déjà entrées.

Si tu connais à l'avance la dimension du tableau, c'est plus simple :
Mais tu ne peux pas faire :
Faire, dans ce cas là :
Code :
1
2
3
4
 
x=10
dim tab()
redim preserve tab(x)
[edit] Posté un peu trop tard ... Tant pis [edit]
__________________


" La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
(J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

Chuck Norris comprend JC Van Damme.
roro06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 10h49   #7
Membre du Club
 
Avatar de The Molo
 
Inscription : avril 2007
Messages : 219
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 219
Points : 60
Points : 60
Et bien en fait non, j'ai encore un soucis

Après avoir rempli mes tableaux comme le montre le code précédent, je veux l'afficher... Mais le problème c'est qu'il ne me donne qu'une valeur du tableau.
J'ai testé dans la boucle précédente, le tableau se rempli bien mais une fois que je veux l'afficher, ca ne marche pas...

Je te mets tout le code, ce sera plus clair pour toi.

C'est un traitement qui permet, d'après le mois en cours (ici je le mets à 4 = Avril) de d'enregister dans un tableau puis d'afficher les 4 périodes précédentes.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<%@ Language=VBScript %>
 
<%
Dim mois, annee_en_cours, periode_en_cours, annee_precedent, derniere_periode
Dim ind, i_tab, i_periode_annee_precedente, periode_a_afficher
Dim tab_periode()
Dim tab_annee()
 
mois=4
annee_en_cours=2007
 
'On vérifie à quelle période appartient le mois
if(mois >= 1 AND mois <= 3) then
	periode_en_cours=1
else
	if(mois >= 4 AND mois <= 6) then
		periode_en_cours=2
	else
		if(mois >= 7 AND mois <= 9) then
			periode_en_cours=3
		else
			if(mois >= 10 AND mois <= 12) then
				periode_en_cours=4
			end if
		end if
	end if
end if
 
 
'Calcul
annee_precedent = annee_en_cours - 1
derniere_periode = periode_en_cours - 5 'Toute dernière période à afficher 
 
'Indices
ind = periode_en_cours - 1			'Période précédente
i_tab = 0							'Indice des tableaux où l'on stockera les périodes et années à afficher 
i_periode_annee_precedente = 4 		'Au cas où l'on devrait remonter à l'année précédente
 
 
while ( ind >< derniere_periode)
 
	' Chaque fois que l'on redimensionne un tableau (que l'indice change), il faut l'inscrire !
	redim tab_periode(i_tab)
	redim tab_annee(i_tab)
 
	if (ind > 0) then 'Si on ne remonte pas à l'année précédente
		tab_periode(i_tab) = ind
		tab_annee(i_tab) = annee_en_cours
		'response.write(tab_periode(i_tab) & "/" & tab_annee(i_tab) & "---")
	else 'On remonte à l'année précédente
		tab_periode(i_tab) = i_periode_annee_precedente
		tab_annee(i_tab) = annee_precedent
		i_periode_annee_precedente = i_periode_annee_precedente - 1
		'response.write(tab_periode(i_tab) & "/" & tab_annee(i_tab) & "---")
	end if
 
i_tab = i_tab + 1
ind = ind - 1
wend
 
'Affichage
i_tab = 3
while ( i_tab >< -1 )
	if (tab_periode(i_tab) = 1) then
		periode_a_afficher = "01-03"
	else
		if (tab_periode(i_tab) = 2) then
			periode_a_afficher = "04-06"
		else
			if (tab_periode(i_tab) = 3) then
				periode_a_afficher = "07-09"
			else
				if (tab_periode(i_tab) = 4) then
					periode_a_afficher = "10-12"
				end if
			end if	
		end if	
	end if
 
	response.write(periode_a_afficher & "/" & tab_annee(i_tab) & " --- ")
	i_tab = i_tab -1
wend
%>
__________________
The Molo
The Molo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 11h44   #8
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 810
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 810
Points : 3 011
Points : 3 011
Bonjour,

roro06 t'a expliqué ; pour remplir ton tableau => redim preserve
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2007, 13h57   #9
Membre du Club
 
Avatar de The Molo
 
Inscription : avril 2007
Messages : 219
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2007
Messages : 219
Points : 60
Points : 60
Oui sorry !

Merci !!!
__________________
The Molo
The Molo 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 16h23.


 
 
 
 
Partenaires

Hébergement Web