2009-09-07 11 views
0

J'ai vraiment besoin de conseils rapides ici. J'ai le script VBScript qui envoie un e-mail. Et je veux faire plusieurs contrôles pour voir si un attribut est vrai et si c'est le cas, écrire une ligne supplémentaire dans le courrier.VBScript - Utilisation des instructions IF dans un script de messagerie?

Comment est-ce que je peux faire ceci? Cela fait partie du script:

obMessage.HTMLBody = ""_ 
     & "<MENU>"_ 
     & "<LI type = square>This is a line</i>."_ 

Je veux quelque chose qui ressemble à ceci:

obMessage.HTMLBody = ""_ 
     & "<MENU>"_ 
    If statement1 = true Then 
     & "<LI type = square>This is an additional line</i>."_ 
    end if 

De préférence, certaines déclarations peuvent être faites de sélection? Cela ne me dérange pas vraiment ce que le code ressemble, je veux juste que cela fonctionne le plus tôt possible :)

Répondre

3

Il ressemblera à du code spaghetti, peu importe comment vous le faites. C'est l'une de l'approche la plus directe:

obMessage.HTMLBody = & "<MENU>" 

if statement1 then 
    obMessage.HTMLBody = obMessage.HTMLBody & "<LI type=""square"">This is a line</LI>." 
end if 

if statement2 then 
    obMessage.HTMLBody = obMessage.HTMLBody & "<LI type=""square"">This is another line</LI>." 
end if 

Cependant, je vous suggère de concaténer les lignes à une chaîne temporaire, l'assigner la chaîne résultante à obMessage.HTMLBody, tels que:

Dim Foo 
Foo = "<MENU>" 

if statement1 then 
    Foo = Foo & "<LI type=""square"">This is a line</LI>." 
end if 

. 
. 
. 

obMessage.HTMLBody = Foo 
+1

Ah d'accord. Donc c'est en fait ce que je me demandais. Parce que je ne peux pas faire une instruction IF dans une chaîne, évidemment. Donc je devais le faire dehors. Merci! :) –

0

Quelque chose comme:

obMessage.HTMLBody = "Begin Text" & _ 
IIf(statement1 = true, "<LI type = square>This is an additional line</i>.", "") & _ 
"Further text" 

devrait fonctionner ok.

+0

Cela ne fonctionnera pas car il vous manque l'opérateur de concaténation de chaîne. En outre, VBScript n'a pas la fonction intégrée «IIf». – Helen

+0

Ne savait pas VBScript manquait de support IIF. Merci. – DAC