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 12/10/2006, 10h23   #1
Membre du Club
 
Étudiant
Inscription : août 2006
Messages : 132
Détails du profil
Informations personnelles :
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 132
Points : 58
Points : 58
Par défaut [ASP-MSSQL]Afficher zéro si champ null

Salut,

je débute en ASP donc ma question peut vous paraitre banale. Le contexte est le suivant, j'utilise une base de données SQL Server 2000 qui stocke plusieurs informations que j'affiche grâce à des pages ASP.
Dans une de ces pages je dois afficher - € si le champ est à null sinon afficher la valeur du champ avec la fonction FormatNumber() qui me permet d'afficher les valeurs float avec 2 chiffres aprés la virgule. Or j'ai un souci dans mon code, l'erreur est :

Code :
1
2
Erreur d'exécution Microsoft VBScript error '800a000d' 
Type incompatible: 'FormatNumber'
Voici mon bout de 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
24
25
26
27
28
29
30
31
32
33
<!-- #include file="_connexion.asp"-->
 
' Requête sur la table TBResultat
SQL2="SELECT SUM(MontantCATTC) AS MeilleurCA, SUM(NbOperation) AS NbVente, SUM(NbVenteArticle) AS NbArticle" _ 
& " FROM TBResultatJour WHERE MONTH(DateDebut) = MONTH(getDate())-1"
 
'Ouverture de l'objet Recordset
Set RS2 = server.createobject("ADODB.Recordset")
RS2.Open SQL2,Conn , 3, 3
 
while not RS2.eof %>
<center><b>Résultats du mois dernier : </b></center><br>
   <center><TABLE border="1"> 
  <TR>  
    <TD> Chiffre d'Affaire </td>
    <TD> Nombre de Vente </td>
    <TD> Nombre d'Articles </td>  
  </tr> 
  <TR>  
    <%if RS2("MeilleurCA")=null then
    return%> <TD>- € </td>
    <%else%>
	<TD><%=FormatNumber(RS2("MeilleurCA"),2)%> € </td>
	<%end if%>
    <TD> <%=RS2("NbVente")%> </td>
    <TD> <%=RS2("NbArticle")%> </td>
  </tr> 
</table></center><br>
   <%RS2.MOVENEXT ' fiche suivante
wend
 
'Fermeture de l'objet Recordset
RS2.Close
Merci d'avance
guigui11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 10h43   #2
Membre éprouvé
 
Inscription : septembre 2004
Messages : 368
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 368
Points : 402
Points : 402
Salut,

le message parait clair, tu tentes de formater une variable qui n'est pas un nombre
Gwenn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 10h47   #3
Membre du Club
 
Étudiant
Inscription : août 2006
Messages : 132
Détails du profil
Informations personnelles :
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 132
Points : 58
Points : 58
Mais si, ma variable est un float, le problème c'est que si il n'y a rien dans le champ alors la fonction FormatNumber() plante car effectivement null n'est pas un nombre. C'est pour cela que je voudrais utiliser FormatNumber() que si il y a une valeur dans mon champ.
guigui11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 10h52   #4
Membre éprouvé
 
Inscription : septembre 2004
Messages : 368
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 368
Points : 402
Points : 402
Ha tu veux dire que c'est on If qui ne fonctionne pas ?

tentes avec ca :

Code :
if len(RS2("MeilleurCA")) = 0 or IsNull(RS2("MeilleurCA")) then
Et puis c'est pour quoi faire le return ?

je ne vois pas de "End if" dans ton code
Gwenn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 11h02   #5
Membre du Club
 
Étudiant
Inscription : août 2006
Messages : 132
Détails du profil
Informations personnelles :
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2006
Messages : 132
Points : 58
Points : 58
Un grand merci

c'est bon ça roule, sisi il y a bien un end if, mais c'est vrai que mon indentation n'est pas terrible. Le return c'est une erreur

Merci encore
guigui11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 12h40   #6
Membre confirmé
 
Inscription : juin 2005
Messages : 412
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 412
Points : 261
Points : 261
Envoyer un message via MSN à mael94420
salut,
je sais que ton probleme est resolu mais je peut te proposé une autre solution
Ce que tu cherche a faire peut se faire du coté SQL malheureusement, je ne connais pas la syntaxe pour SQL server. mais dans ta requete tu peut faire quelque chose du style:
si ma valeur = NULL alors j'affiche "-"

voila c'etait juste une suggestion qui demande des recherches sur google

Bonne continuation
mael94420 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 06h21.


 
 
 
 
Partenaires

Hébergement Web