Erreur "variable non définie" lorsque l'appel d'une fonction
J'ai créé un classique de la page asp avec une fonction comme suit:
<%@ Language=VBScript %>
<% Option Explicit %>
<%
<!--#INCLUDE file='ADOVBS.inc'-->
Response.Buffer = True
%>
<%
Function Lettergrade(lg)
Dim lgs
if lg>50 then
set lgs="P"
else
set lgs="F"
end if
set Lettergrade= lgs
End Function
%>
<%
set strlettergrade=Lettergade(strgrade)
... other code goes here
%>
Je vais essayer d'appeler la fonction dans une expression, mais quand il me donne l'erreur suivante:
Erreur d'exécution Microsoft VBScript '800a01f4'
Variable n'est pas définie: 'Lettergade'
Quelqu'un a une idée?
Vous devez vous connecter pour publier un commentaire.
Essayer de se débarrasser de la
Set
à l'intérieur de l'appel de fonction et seulement affecterLettergrade = lgs
.Variable is undefined: 'Lettergade'
Fonction s'appelle
Lettergrade
pasLettergade
- peut-être juste une faute de frappe questionEssayez de changer:
strlettergrade=Lettergade(strgrade)
à
strlettergrade=Lettergrade(strgrade)
Il y a plusieurs problèmes avec ce script, dont certains sont déjà souligné par Chris et Ryan.
Vous avez seulement besoin
Set
lorsque vous affecter un objet à une variable. Les chaînes ne sont pas des objets en VBScript. Se débarrasser de tous lesSet
's dans votre script.L'évidence de la faute de frappe que Chris mentionné. Changement
Lettergade
àLettergrade
.Vous ne semblez pas déclarer la
strlettergrade
oustrGrade
variable. AvecOption Explicit
activée (ce qui est une bonne pratique), il est obligatoire de déclarer tous variables. UtilisationDim
pour cela (comme celle à l'intérieur de votre fonction).Vous semblez utiliser une chaîne de caractères comme paramètre pour votre
Lettergrade
fonction. Depuis le nom de la variable eststrgrade
. Au sein de la fonction vous êtes en comparant avec uninteger
. Cette pourrait causer des problèmes. Convertir votre chaîne à un nombre entier d'abord à l'aide de lacInt
fonction.Comprend le besoin d'aller à l'extérieur de la
<% %>
balises. Déplacer<!--#INCLUDE file='ADOVBS.inc'-->
à la ligne en dessousOption Explicit
De suivre ces étapes, ou de copier coller le script de @Cape Cod de Jute. Après cela, votre script doit fonctionner comme prévu ;). Sauf pour le point 4, vous avez encore besoin de corriger cela.
Que vous avez mal orthographié Lettergrade lors de l'appel de la fonction. La Variable n'est pas définie: 'Lettergade " Aussi je prendrais SLaks des conseils. Ensemble ne doit pas être utilisé sur les cordes.