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 09/03/2007, 11h15   #1
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
Par défaut Ma requête me renvoi type mismatch

Bonjour,

Voila deux jour que j'essai d'afficher le résultat d'une requete dans une pop up en vain voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if request.querystring("ph")="voir" then%>
<td class="MenuEntete"><%=visuactivite%></td>
</tr>
<tr>
<td style="Font-size:9px; color:#333333; height:20px; text-align:right;border-bottom:dashed 1px #FF6600">&nbsp;&nbsp;&nbsp;&nbsp;<%=date%></td>
</tr>
<%
query="SELECT * FROM APPLOC_ActiviteREF"
query=query&" WHERE nom='"&visuactivite&"'"
response.Write(query& "<br>")
		rs.open query,conn_stat
			if not rs.eof then
			ChampActivite=rs.getrows
%>
		<table>
		<tr>
		<td><%=ChampActivite%></td>
		</tr>
		</table>
<%	
			end if
		rs.close
end if
Ma pop up s'ouvre bien et mon response.write m'affiche bien la requete cependant je me retrouve avec une erreur de type Mismatch que je n'arrive pas à résoudre merci de m'aider.
Eric
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 11h40   #2
Membre actif
 
Avatar de padodanle51
 
Homme Yohann
Développeur informatique
Inscription : janvier 2006
Messages : 389
Détails du profil
Informations personnelles :
Nom : Homme Yohann
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Santé

Informations forums :
Inscription : janvier 2006
Messages : 389
Points : 196
Points : 196
tu as regardé dans la FAQ ASP?
padodanle51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 11h45   #3
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
Oui, j'ai essayé de m'inspirer de diverses recherches google faq et forum mais je ne trouve rien de bien concret j'ai modifier mon codes de diverses façons, en rajoutant un tableau ou bien en changeant les variables, rien n'y fait. J'ai remarqué en revanche que lorsque remplace
Code :
<td><%=ChampActivite%></td>
par
j'obtiens la première le champ de la première colonne mais les autres ne sont pas affichés.
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 11h48   #4
Membre actif
 
Avatar de padodanle51
 
Homme Yohann
Développeur informatique
Inscription : janvier 2006
Messages : 389
Détails du profil
Informations personnelles :
Nom : Homme Yohann
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Santé

Informations forums :
Inscription : janvier 2006
Messages : 389
Points : 196
Points : 196
c'est normal tu pas en parametre 0 c'est donc normal que ça t'affiche la première ligne de ton tableau
Essaye avec une boucle....
padodanle51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 11h50   #5
Membre habitué
 
Avatar de sab_etudianteBTS
 
Inscription : juin 2006
Messages : 211
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 211
Points : 134
Points : 134
Salut,
A ta place, j'essaierais de faire une boucle pour afficher le resultat de ton recordset :
Code :
1
2
3
4
5
6
 
While Not Rs.eof 
   response.write(Rs("champ1") & " " Rs("champ2"))
   ...
   Rs.movenext
wend
Voila j'espére que ca t'aidera!
sab_etudianteBTS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 11h51   #6
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
J'ai déjà essayé mais ce n'est pas concluant j'ai toujours ce même tupe d'erreur. En revanche je viens de réessayer avec avec le rs(0) ça ne passe plus .
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 11h53   #7
Membre habitué
 
Avatar de sab_etudianteBTS
 
Inscription : juin 2006
Messages : 211
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 211
Points : 134
Points : 134
Indique nous sur quelle ligne ca bloque et essaye de nous mettre un bout de ton code...
sab_etudianteBTS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 11h58   #8
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
En passant par cette méthode j'obtiens bien l'enregistrement de la colonne mais j'aimerai savoir si il n'existe pas un moyen de ne pas passer par des
rs(0) rs(1) rs(2) ....
car la table en question peut être modifier par l'utilisateur et dans ce cas si il rajoute une colone il (lui ou un autre utilisateur) ne verra pas l'enregistrement qu'il aura rentré, il faudra donc changer systematiquement mon code.
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 12h00   #9
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
Voila le code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
query="SELECT * FROM APPLOC_ActiviteREF"
query=query&" WHERE nom='"&visuactivite&"'"
response.Write(query& "<br>")
		rs.open query,conn_stat
		While Not Rs.eof 
%>
		<table>
		<tr>
		<td><%=rs(0)%></td>
		</tr>
		</table>
<%	
		Rs.movenext
                         wend
		rs.close
 
end if
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 12h09   #10
Membre habitué
 
Avatar de sab_etudianteBTS
 
Inscription : juin 2006
Messages : 211
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 211
Points : 134
Points : 134
Je ne vois pas ou est le problème...
Si tu ne veux pas mettre Rs(0) tu n'a qu'à mettre Rs("nomDeTonChamp") à la place...

Par contre une petite chose : Dans ta boucle tu refait a chaque fois un nouveau tableau, c'est volontaire? Parce que sinon tu devrais l'ouvrir et le fermer en dehors de la boucle. Ainsi tu ajoute a chaque fois une nouvelle ligne...
sab_etudianteBTS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 12h28   #11
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
Ce que je veux par précedemment c'est que ma table pourra avoir des colonnes ajoutés par les utilisateur donc à chaque fois que ce sera fait il faudra que je rajoute un rs(quelquechose) pour que cette nouvelle colonne apparaisse dans mon affichage.
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 13h09   #12
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,

Si tu veux afficher dynamiquement toutes les colonnes de tes enregistrements sans en connaitre le nombre, utilises un truc comme ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
                for i = 0 to m_RS.Fields.count - 1
                    sLine = sLine & m_RS.Fields(i).Name
                next
                if sLine <> "" then
                    sLine = Left(sLine, Len(sLine) - 1)
                end if
                ' Données
                Do Until m_RS.EOF
                    for i = 0 to m_RS.Fields.count - 1
                         sLine = sLine & m_RS.Fields(i).Value
                    next
                    if sLine <> "" then
                         sLine = Left(sLine, Len(sLine) - 1)
                    end if
__________________
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 09/03/2007, 13h19   #13
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
En utilisant ce code il me détecte une erreur :
Microsoft VBScript runtime error '800a01a8'

Object required: ''

/commun/indicateuractivite/voir.asp, line 73

et ce code là est un peu compliqué pour moi merci quand même.
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 13h23   #14
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
PS la ligne 73 c'est ça :

for i = 0 to m_RS.Fields.count - 1
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 13h27   #15
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!


Tu devrais remplacer m_RS par rs puisque c'est sous ce nom que tu a créé ton objet recordset.
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 13h32   #16
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
Non apparament ça ne passe pas le traitement de ma pop up boucle sans fin en revanche faut à un endroit que je fasse un response.write ou quelconque affichage?
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 13h43   #17
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
Citation:
Envoyé par ryan
Yop!


Tu devrais remplacer m_RS par rs puisque c'est sous ce nom que tu a créé ton objet recordset.
Evident ! c'est un copier / coller violent que j'ai fait
__________________
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 09/03/2007, 14h02   #18
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
Je suis vraiment désolé mais ce n'est pas concluant le problème est que je ne comprends pas très bien ce bout de code je n'arrive pas très bien à le reprendre et à le mettre en forme je vais essayer d'une autre façon merci pour l'aide.
arkante1984 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 14h50   #19
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
Re,

L'idée est d'utiliser la propriété count de la collection Fields du recordset.

Quand tu créé un recordset, tu peux connaitre le nombre de champs retournés en utilisant rs.Fields.count.
A partir de là, tu peux faire une boucle sur ce nombre
Code :
1
2
3
 
for i = o to rs.Fields.count - 1
.....
et dans cette boucle, tu peux lire les valeurs des champs
Code :
1
2
3
4
5
 
for i = o to rs.Fields.count - 1
   response.write rs.Fields(i).value
Next
.....
C'est plus clair ?

Sinon, tu dis
__________________
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 09/03/2007, 15h10   #20
Candidat au titre de Membre du Club
 
Inscription : septembre 2006
Messages : 57
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : septembre 2006
Messages : 57
Points : 13
Points : 13
Merci infiniement en effet j'y vois plus clair pour l'utilisation de ce code malheureusement, il doit persister quelque chose qui fait tourner en boucle puisque la page reste en perpetuel chargement mais aucun affiche que j'ai incrémenté avec un <td></td> html. Je reste convaincu malgré tout qu'il doit exister un moyen plus simple car la selection, c'est mon
qui s'en charge au niveau affichage je trouve étrange qu'il ne parvienne pas à me récupérer mes valeurs, pour rappel voici mon code sensiblement modifié
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
if request.querystring("ph")="voir" then%>
<td class="MenuEntete"><%=visuactivite%></td>
</tr>
<tr>
<td style="Font-size:9px; color:#333333; height:20px; text-align:right;border-bottom:dashed 1px #FF6600">&nbsp;&nbsp;&nbsp;&nbsp;<%=date%></td>
</tr>
<%
query="SELECT * FROM APPLOC_ActiviteREF"
query=query&" WHERE nom='"&visuactivite&"'"
response.Write(query& "<br>")
		rs.open query,conn_stat
		While Not Rs.eof 
		for i=0 to Ubound (TabActivite)
			'if not rs.eof then
			'ChampActivite=rs.getrows
%>
		<table>
		<tr>
		<td><%=rs(i)%></td>
		</tr>
		</table>
<%	
			'end if
		Rs.movenext
		next
		wend
		rs.close
 
end if
et l'erreur qui s'y associe :
27

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/commun/indicateuractivite/voir.asp, line 0

dans le cas présent il m'affiche le premier enregistrement de ma table. Le
Code :
response.write(query& "<br>")
est parfait.
Et si je modifie mon code en mettant par exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
...
			'if not rs.eof then
			'ChampActivite=rs.getrows
%>
		<table>
		<tr>
		<td><%=rs(1)%><%=rs(2)%><%=rs(3)%>....</td>
		</tr>
		</table>
<%	
			'end if
		Rs.movenext
...
il m'affiche mes valeurs. Le problème est que c'est du dur.
arkante1984 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 04h45.


 
 
 
 
Partenaires

Hébergement Web