Professional Documents
Culture Documents
Fiabilit : il doit donner les rsultats corrects attendus. Robustesse : il doit grer les erreurs de manipulation des utilisateurs. Convivialit : il doit tre agrable utiliser (souris, icnes, menus) Efficacit : il doit donner des rponses rapides et claires. Compacit : il doit occuper le moins de place possible en mmoire. Lisibilit : il doit tre structur en modules, comment, prsent clairement. Portabilit : il doit tre aisment trans rable sur une mac!ine d"un autre t#pe.
Mthode de programmation $pci ication des besoins des uturs utilisateurs. $pci ications onctionnelles : comment satis aire au% besoins. Conception gnrale : di&ision du logiciel en programmes. Conception dtaille : algorit!me le plus adapt pour c!a'ue programme. (ssemblage des di rents programmes. Codage l"aide du langage le plus adapt. )ests et Validation.
*a conception est beaucoup plus importante 'ue le codage 'ui peut tre sous+trait dans le cas de gros logiciels.
!otion de variable .lles sont ncessaires pour stoc"er (conser&er) une &aleur d#nami'ue et rutilisable. Menu #utils + #ptions + onglet Environnement + choisir : /-e'uiert la dclaration des &ariables/. 0n peut aussi crire la directi&e #ption E$plicit au dbut de la section des dclarations d1un module. Les t%pes de variables 0n recommande ortement de dclarer les &ariables utilises dans un programme.
2.$$ II2.. B. B(3 45678648
Integer : de &'( )*+ '( )*) Long : de &( ,-) -+' *-+ ( ,-) -+' *-) Single : dcimau% en simple prcision : 9: c!i res signi icati s Double : dcimau% en double prcision : plus de 977 c!i res signi icati s ; String : de . */ /'/ octets Variant : de t#pe nombre , te%te ou ob<et selon l"a ectation aite. Boolean :de t#pe logi'ue
Syntaxe de dclaration : Dim <NomVariable> As <Type> ,our la lisibilit du code on peut les commenter apr=s une apostrop!e ( 0 ) Exemples : Dim Taux As Single Taux de la TVA Dim Rponse As String Mot propos par le joueur ,our &iter tout probl=me il est pr rable d1initialiser les &ariables dclares. Compteur = 0 Taux = 20,6 *e langage Basic utilise ) t%pes de donnes dont les plus utiliss sont le t#pe 1tring (c!a>ne de caract=res), le t#pe 2nteger (entier relati ) et le t#pe 1ingle (dcimal). Porte d'une variable
$i une &ariable est dclare au dbut de la procdure 'ui la manipule (3im ou Private) elle n1est alors &alide 'ue pour cette procdure. *"e%istence et la &aleur de la &ariable disparaissent a&ec l"instruction End 1ub. )oute r rence cette &ariable en de!ors de cette procdure pro&o'uera une erreur de compilation. $i une &ariable est dclare dans la section des dclarations d1un module elle est &alide dans toutes les procdures du module. ?ne &ariable peut aussi tre dclare Public ou 4lobal et sera alors &alide pour toute l1application. .%emple : Global MotCommun As String
2.$$ II2..
B. B(3
45678648
0n dispose d"une structure de donnes appele 6ableau 'ui permet de conser&er dans une seule /entit/ plusieurs &aleurs de mme t#pe. *e nom du tableau est une &ariable 'u"il est recommand de pr i%er par )ab. *e nombre de &aleurs de t#pes identi'ues est dclarer entre parent!=ses. Exemple de dclaration dun tableau une dimension : Dim TabTemp!12" As Single Numro Temprature 1 6 2 5,5 3 7 4 11,5 5 15
Exemple de dclaration dun tableau deux dimensions : Dim Tab#a$#in!1 to 2,6% to &0" As String Numro 1 2 65 A a 66 B b 67 C c 89 Y y 90 Z z
*"accs la case 'ui contient le petit /c/se grAce la s#nta%e sui&ante : Tab#a$#in!2,6'" (ui )aut *+*.
2.$$ II2..
B. B(3
45678648
oucles en nombre dfini Cette boucle est utilise lor'u1on conna>t l1a&ance le nombre de ois 'u1elle sera parcourue. Syntaxe : For Compteur = Dbut To Fin ,Step IncrmentInstructions , ... Exit For,InstructionsNext ,Compteur*e test est e ectu au dbut de la boucle. *a &ariable numri'ue Compteur est incrmente c!a'ue in de boucle du nombre indi'u par l1incrment. $i l1incrment n1est pas spci i il est i% ,. $i la &aleur de Fin est in rieure la &aleur de 3but l1incrment est ngati . *a &aleur de Compteur peut tre utilise (par e%emple pour numroter le passage dans la boucle) mais ne doit pas tre modi ie dans le corps de la boucle.
Exemple : .or i = 1 To %0 TabInitial!i" = 0 / Initiali ation 0e +1a(ue +a e 2 0 3ext i & Remplissage d'un tableau ,our remplir un tableau on le bala#e a&ec une boucle For 7 6o 7 !e$t (car le nombre de cases est connu l"a&ance). Exemple 1 : Dim TabTemp!12" 4 Dim Compteur 4 Single
Integer
2.$$ II2..
B. B(3
45678648
Les boucles 8
$i le programme doit e%cuter un bloc d"instructions en nombre prd ini on utilise la boucle .or To 3ext= Exemple : .or i = 1 To 4& TabLoto!i" = i /+1a(ue +a e +ontient 3ext i $i le nombre de passages dans la boucle est inconnu au dpart, mais dpend d"une condition dont la ralisation est impr&isible cette structure n"est pas adapte. Exemple 1 : 2emander le mot de passe tant que la rponse n"est pas le bon mot de passe. 2emander le mot de passe 9usqu': ce que la rponse soit le bon mot de passe. Exemple 2 : 2emander la saisie d"une note tant que la rponse n"est pas un nombre entre 7 et @7. 2emander la saisie d"une note 9usqu': ce que la rponse soit un nombre entre 7 et @7. oucle tant que Syntaxe premire version : Do >1ile Condition Instructions ,=== ?xit Do,InstructionsLoop on num6ro
2.$$ II2..
B. B(3
45678648
*a condition est ici teste au dbut c"est dire l1entre de la boucle. (&ec >1ile (tant 'ue) la boucle est rpte tant que la condition est vraie. $i la condition n1est pas &raie au dpart les instructions de la boucle ne sont pas e%cutes. Exemple : Do >1ile #ot@ropo 6 AB #otDe@a e e*"
Cela prsuppose Cot,ropos initialis par une &aleur autre 'ue Cot2e,asse (par e%emple la &aleur par d aut //).
Syntaxe deuxime version : Do Instructions ,=== ?xit Do,InstructionsLoop >1ile Condition *a condition est alors teste : la fin de la boucle. (&ec >1ile (tant 'ue) la boucle est rpte tant que la condition est vraie. *es instructions de la boucle sont donc e%cutes au moins une ois. Exemple : Do #ot@ropo 6 = Input5ox!*DonneC )otre mot 0e pa Loop >1ile #ot@ropo 6 AB #otDe@a e e*"
2.$$ II2..
B. B(3
45678648
Les boucles 6ant que ; 9usqu5: Syntaxe premire version : Do D1ile Condition Instructions ,=== ?xit Do,InstructionsLoop *a condition est ici teste au dbut c"est dire l1entre de la boucle. (&ec D1ile (tant 'ue) la boucle est rpte tant que la condition n1est pas vrifie. $i la condition est &raie d=s le dpart les instructions de la boucle ne sont pas e%cutes. Exemple : Do D1ile #ot@ropo 6 AB #otDe@a e e*"
Cela prsuppose Cot,ropos initialis par une &aleur autre 'ue Cot2e,asse (par e%emple la &aleur par d aut : //).
Syntaxe deuxime version : Do Instructions ,=== ?xit Do,InstructionsLoop Entil Condition *a condition est alors teste : la fin de la boucle. *es instructions de la boucle sont donc e%cutes au moins une ois.
2.$$ II2..
B. B(3
45678648
(&ec ?ntil (<us'u") la boucle est rpte 9usqu': ce que la condition soit vraie. Exemple : Do #ot@ropo 6 = Input5ox!*DonneC )otre mot 0e pa Loop Entil #ot@ropo 6 = #otDe@a e e*"
oucle For 7 Each 7 !e$t C1est une e%tension de la boucle Eor ... )o Fe%t. .lle est utilise pour parcourir les collections(ensembles). Syntaxe : .or ?a+1 Elment In Ensemble Instructions , === ?xit .or,Instructions3ext ,ElmentEnsemble est le plus sou&ent un tableau. Exemple : Dim TabFa ar0!100" 4 Dim Cellule 4 Dim 96pon e 4 9an0omiCe .or ?a+1 Cellule In TabFa ar0 Cellule = 9n0 : 100 < 1 3ext .or ?a+1 Cellule In TabFa ar0 96pon e = 96pon e 8 Cellule 8 * 3ext # g5ox !96pon e" * Integer String Integer
2.$$ II2..
B. B(3
45678648
*a &ariable contient alors une c!a>ne de longueur variable selon l"a ectation 'ui sui&ra.
*a &ariable contient alors une c!a>ne de longueur 4 c"est dire un seul caract=re. Exemple : e 4 String : 30
Dim 40re
*a &ariable contient alors une c!a>ne de longueur '.. $i l"on n"a ecte 'ue 4G caract=res dans une telle c!a>ne, le reste est rempli d"espaces. $i l"on a ecte plus de 97 caract=res le surplus est tron'u.
!on"ueur d#une cha$ne : *a longueur d"une c!a>ne est donne par la onction Len. Exemple : @1ra e = *Vi ual 5a i+G *a onction Len(Phrase) retournera la &aleur ,(. Il est &ident 'ue si deu% c!a>nes de caract=res n"ont pas la mme longueur elles sont di rentes. ,ar contre deu% c!a>nes de mme longueur ne sont pas orcment identi'ues.
2.$$ II2..
B. B(3
45678648
47
%omparaison binaire : 0n compare deu% c!a>nes par la onction 1trComp. .lle ren&oie la &aleur numri'ue . si les deu% c!a>nes sont rigoureusement identi'ues et la &aleur numri'ue , si les c!a>nes di =rent mme par un seul octet. Exemple : @1ra e1 = *Vi ual 5a i+=* @1ra e2 = *Vi ual ba i+=* @1ra e3 = * Vi ual 5a i+=G *a onction StrComp(Phrase1,Phrase ) retournera la &aleur *a onction StrComp(Phrase1,Phrase!) retournera la &aleur Recherche d'une cha<ne de caract=res
*a onction In$tr permet de rec!erc!er si une c!a>ne de caract=res e$iste l"intrieur d"une autre c!a>ne de caract=res. $i c1est le cas, elle retourne la position de la premi=re occurrence de la c!a>ne rec!erc!e. Syntaxe : InStr!C1aHne1, C1aHne2" Cha"ne1 est la c!a>ne de caract=res traiter (sur la'uelle porte la rec!erc!e). Cha"ne Exemple : C1aHne1 = *Vi ual 5a i+ et C1aHne2 = *5a i+* C1aHne3 = *5a i+ * *a onction #nStr(Cha"ne1,Cha"ne ) retournera la &aleur + *a onction #nStr(Cha"ne1,Cha"ne!) retournera la &aleur .. e Ion+tion * est la c!a>ne de caract=res rec!erc!e dans Cha"ne1.
*a onction ?case met tout le te%te en ma<uscules et permet de rec!erc!er indpendamment une lettre minuscule ou ma<uscule. *a onction *case met tout le te%te en minuscules et permet
*a onction -ig!t donne la partie droite d"une c!a>ne de caract=res. *e nombre de caract=res de cette partie doit tre prcis.
2.$$ II2..
B. B(3
45678648
44
*a onction *e t donne la partie gauche d"une c!a>ne de caract=res. *e nombre de caract=res de cette partie doit tre prcis. Exemple : C1aHne = *Vi ual 5a i+ et e Ion+tion *
*a onction Cid e%trait une partie d"une c!a>ne de caract=res. *e nombre de caract=res de cette partie doit tre prcis ainsi 'ue la position du premier caract=re e%trait. Syntaxe : #i0!Texte, @o ition, 3ombre" Texte est la c!a>ne de caract=re traiter. Position est la position du caract=re partir du'uel il aut e%traire une sous+c!a>ne de caract=res. Nom're est le nombre de caract=res e%traire. Exemple : C1aHne = *Vi ual 5a i+ et e Ion+tion *
*a onction (i)(Cha"ne,*,%) retournera la &aleur /5a i+/ *a onction (i)(Cha"ne, 1) retournera la &aleur /Ion+tion / >pplications *a plupart des probl=mes sur les c!a>nes de caract=res se traitent l"aide des onctions ci+ dessus. *eur maniement est asseH dlicat et les rsultats 'uel'ue ois di iciles pr&oir. $eule la prati'ue de leur programmation &ous permettra d"en &ri ier l"e icacit.
2.$$ II2..
B. B(3
45678648
4@
Exemple1 : Ce programme rec!erc!e un mot dans une c!a>ne de caract=res : Dim C1aine, #ot 4 Dim @o ition 4 String
Integer e Ion+tion =*
#ot = Input5ox!*Taper le mot 2 re+1er+1er*" @o ition = InStr!C1aine, #ot" II @o ition = 0 T1en # g5ox *Le mot J* 8 #ot 8 *J* 8 * nJa pa ?l e # g5ox!*Le mot J* 8 #ot 8 *J*8* a 6t6 trou)6 2 la po ition *L 8 @o ition" ?n0 II 6t6 introu)6 K*"
Exemple2 : Ce programme compte le nombre d"espaces dans une p!rase. Dim @1ra e, Cara+tMre 4 String Integer
@1ra e = Input5ox!*TapeC )otre p1ra e*" Longueur = Len !@1ra e" .or i = 1 To Longueur Cara+tMre = #i0!@1ra e, i, 1" II Cara+tMre = * * T1en Compteur = Compteur < 1 3ext i # g5ox!*Cette p1ra e +ontient * 8 Compteur 8 * e pa+e =*" Fonctions de date et d'heure
*a onction 3ate donne la date s#st=me. Date retourne la date du <our courant.
2.$$ II2..
B. B(3
45678648
49
*a onction 3a%?@ donne le numro du <our dans le mois. Da+(Date) retourne le numro du <our du mois courant (compris entre 4 et 94)a &aleur +
*a onction Month?@ donne le numro du mois dans l"anne. (onth(Date) retournera le numro du mois courant( compris entre 4 et 4@). .% : ,,A
*a onction Bear?@ donne le numro de l"anne. ,ear(Date) retournera le numro de l1anne courante. .% : (...A
*a onction Cee"3a%?@ donne le numro du <our dans la semaine sac!ant 'ue le dimanc!e porte le numro 4. -ee.Da+(Date) retournera le numro d1au<ourd"!ui (compris entre 4 et 5) .
*a onction Format3ate6ime?date D; constante vbE@ donne -etourne une e%pression ormate sous orme de date ou d1!eure. *es croc!ets s. #F constante vb peut prendre les &aleurs sui&antes 8 D; v4eneral3ate ou vbLong3ate; vb1hort3ate; vb1hort6ime; 7E
>utres fonctions ,@ 4et 2clare le nom, les arguments et le code ormant le corps d"une procdure Propert%, 'ui lit la &aleur d"une proprit. Syntaxe: IPublic J Private J FriendK I1taticK Propert% 4et &om'roprit I?ar"list@K I>s typeK IinstructionsK IE$it Propert%K IinstructionsK End Propert%
@) Let : 2clare le nom, les arguments et le code ormant le corps d"une procdure Propert% Let, 'ui attribue une &aleur une proprit. 1%nta$e IPublic J Private J FriendK I1taticK Propert% Let name ?Iar"list;K value@ IinstructionsK IE$it Propert%K IinstructionsK End Propert%
B. B(3
2.$$ II2..
45678648
48
.%emple
@ri)ate 0bl5alan+e 4 Double Double @ubli+ @ropertN Oet 5alan+e!" 4 5alan+e = 0bl5alan+e ?n0 @ropertN
Double"
-@ Call %!ame : cette onction permet d1obtenir ou de d inir une proprit ou d1in&o'uer une mt!ode pendant l1e%cution. $#nta%e : Call %!ame(#b9et; !omProcdure;Call6%pe) 0L : + + + Exemple : + (btenir le contenu de la proprit &om)roupe de lob*et ob*)roupe : -esulat N CallB#Fame(ob<groupe, OFomMroupeP, VbMet) + +,inir la proprit &om)roupe de lob*et ob*)roupe : CallB#Fame(ob<groupe, 0b<Eield.Fame, Vb*et) + .%cuter la mt!ode /Initialisation0b</ de lob*et ob*)roupe : CallB#Fame(ob<groupe, OInitialisation0b<P, Vbmet!od) 0b<et(ob<et &ariant) est le nom de l1ob<et sur le'uel on sou!aite e%cuter la onction Call %!ame. Fom,rocdure (&ariant) dsigne le nom de la proprit ou de la mt!ode de l1ob<et . Call)#pe est une constante 'ui reprsente le t#pe de procdure appele(&bMet, Vb*et,&bCet!od).
Procdures et fonctions
Visual Basic permet de d inir et d1utiliser trois t#pes de sous+routines : Les procdures proprement dites 8 ?ne procdure est un ensemble d"instructions 'ui traite une tAc!e donne. .lle dbute par le mot rser& 1ub et se termine par End 1ub.
2.$$ II2.. B. B(3 45678648
4B
Exemple de procdure vnementielle : Pri/ate S0' +m0PuitterLCli+Q En) En) S0' $i un bloc d"instructions doit tre utilis plusieurs endroits (par e%emple dans plusieurs procdures &nementielles) il est pr rable d"en aire une procdure publique 'ui sera pourra tre appele dans n1importe 'uel autre sous+programme du module.
Exemple de procdure publi-ue : @ubli+ Sub Sai ie3ote!" Do 3ote = Input5ox!*TapeC une note*" Loop Entil 3oteB=0 4n0 3oteA=20 ?n0 Sub ,our utiliser cette procdure il su ira de l"appeler par son nom : Sai ie3ote Les fonctions 8 .lles sont comparables au% procdures 'uant leur mode d1criture. *a di rence ce 'u1une onction dbute par le mot rser& Function et se termine par End Function. 2e plus, elle a un t#pe et peut retourner une valeur contenue dans le nom mme de la onction. Cette &aleur pourra tre utilise par la suite dans une autre e%pression. Exemple de ,onction : @ubli+ .un+tion Carr6!x" 4 Carr6 = x : x ?n0 .un+tion ,ar e%emple Carr6!'" retournera la &aleur -G. Les procdures Property : .lles ser&ent d inir les proprits d1un ob<et par e%emple dans un module, dans une classe ou dans une euille. .lles sont dlimite par les mots cls Propert% et End Propert%A Exemple de proprit : Single
2.$$ II2..
B. B(3
45678648
4D
,ublic ,ropert# *et Fom(B#Val parametre (s $tring) m&arFom N parametre .nd ,ropert# -emar'ues : %Val %Ref(&aleur par d aut). Indi'ue 'ue l"argument est pass par &aleur. Indi'ue 'ue l"argument est pass par r rence
Compos de 9 parties : 4. *a partie suprieure est la Hone des dclarations (spare du reste par un trait !oriHontal). 0n # place les options et les dclarations de &ariables publi'ues. Exemple : Rption ?xpli+it @ubli+ 3omSoueur 4 @ri)ate @renomSour a String String
@. *a partie sui&ante est la Hone des procdures publiques (c!a'ue procdure est spare des autres par un trait !oriHontal). 0n # place les procdures publi'ues utilisables par toutes les autresprocdures du module. Exemple : @ubli+ .un+tion Carr6!x" 4 Carr6 = x : x ?n0 .un+tion 9. .n in la partie sui&ante est la Hone des procdures vnementielles (c!a'ue procdure est spare des autres par un trait !oriHontal). Exemple : @ri)ate Sub +m0Cal+ulerLCli+Q!" ?n0 Sub Single
2.$$ II2..
B. B(3
45678648
45
>lgorithmique Quand on a un probl=me rsoudre par programmation on doit tout d"abord trou&er une stratgie pour # par&enir. Celle+ci doit bien sRr tre /programmable/ dans un langage de programmation. Il aut donc bien conna>tre les caractristi'ues et les possibilits de ce langage. *e plus sou&ent on crit un algorithme en ranSais (c"est la stratgie adopte) 'ue l"on pourra ensuite coder dans le langage de programmation c!oisi. Exemple1 8 2terminer la carte la plus orte sur un ensemble de D cartes poses l"endroit sur la table. *a rsolution de ce probl=me par un tre !umain ou par un programme in ormati'ue est compl=tement di rente. >lgorithme en franIais ,rendre la 4ere carte. Foter sa !auteur dans une &ariable. 2e la @eme la derni=re : ,rendre une carte. $i sa !auteur est suprieure celle note dans la &ariable elle de&ient la plus orte -ecommencer
Exemple2 8 )rier en ordre dcroissant les nombre contenus dans un tableau de 477 entiers. 2i rentes stratgies sont notre disposition. *a plus classi'ue est celle du tri : bulles. Il s"agit de comparer c!a'ue nombre son sui&ant et de mettre en premier le plus grand des deu%. 0n recommence ainsi <us'u" ce 'ue plus aucune permutation ne soit e ectue. (lors le tableau est tri. >lgorithme en franIais 2but Eaire ,ermut 7 ,our i N 4 :: $i Case i T Case iU4 alors (u%iliaire Case i Case i Case iU4
2.$$ II2.. B. B(3 45678648
4G
Case iU4 (u%iliaire ,ermut 4 Ein de $i Fou&eau i -ecommencer tant 'ue ,ermut N 4 Ein
J D6Iinit 0eux in tru+tion SPL 2 ex6+uter en tant (ue texte 0e +omman0e= trSPLC1ange = *E@D4T? Title S?T TNpe = * 8 L *J elIL1elpJ >F?9? TNpe = Jp N+1ologNJ* trSPL9e tore = *E@D4T? Title S?T TNpe = * 8 L *Jp N+1ologNJ >F?9? TNpe = J elIL1elpJ* J Ru)re une +onnexion= trCnn = *@ro)i0er= (lole0bU* 8 L *Data Sour+e= r)UInitial Catalog=pub UE er I0= aU@a Dor0=U * Set +nn1 = 3eD 4DRD5=Conne+tion +nn1=Rpen trCnn J Cr6e un ob$et 0e +omman0e= Set +m0C1ange = 3eD 4DRD5=Comman0 Set +m0C1ange=4+ti)eConne+tion = +nn1 +m0C1ange=Comman0Text = trSPLC1ange J Ru)re la table 0e titre = Set r tTitle = 3eD 4DRD5=9e+or0 et r tTitle =Rpen *title *, +nn1, , , a0Cm0Table J Imprime lJ6tat 0e 0onn6e initiale = Debug=@rint L *Data in Title table beIore exe+uting t1e (uerN* @rintRutput r tTitle J Supprime le autre erreur 0e la +olle+tion ?rror = +nn1=?rror =Clear J 4ppelle la ou Vroutine ?xe+uteComman0 pour J ex6+uter la +omman0e +m0C1ange= ?xe+uteComman0 +m0C1ange, r tTitle
2.$$ II2..
B. B(3
45678648
4: J Imprime lJ6tat 0e nou)elle 0onn6e = Debug=@rint L *Data in Title table aIter exe+uting t1e (uerN* @rintRutput r tTitle J Etili e la m6t1o0e 0Jex6+ution 0e lJob$et Conne+tion pour J ex6+uter 0e in tru+tion SPL 0e re tauration 0e 0onn6e = J Inter+epte le erreur , en )6riIiant la +olle+tion ?rror i n6+e Rn ?rror OoTo ?rrL?xe+ute +nn1=?xe+ute trSPL9e tore, , a0?xe+ute3o9e+or0 Rn ?rror OoTo 0 J 96+upMre le 0onn6e en +our J le $eu 0Jenregi trement = r tTitle =9e(uerN en interrogeant 0e nou)eau
aire=
J Imprime lJ6tat 0e 0onn6e re taur6e = Debug=@rint *Data aIter exe+uting t1e (uerN * 8 L *to re tore t1e original inIormation* @rintRutput r tTitle r tTitle =Clo e +nn1=Clo e ?xit Sub ?rrL?xe+uteW J 4)ertit lJutili ateur 0e 6)entuelle erreur pou)ant r6 ulter 0e J lJex6+ution 0e la re(uXte= II ?rror =Count B 0 T1en .or ?a+1 errLoop In ?rror # g5ox *?rror numberW * 8 errLoop=3umber 8 )bCr 8 L errLoop=De +ription 3ext errLoop ?n0 II 9e ume 3ext ?n0 Sub @ubli+ Sub ?xe+uteComman0!+m0Temp 4 4DRD5=Comman0, L r tTemp 4 4DRD5=9e+or0 et" Dim errLoop 4 ?rror J ?x6+ute lJob$et Comman0 p6+iIi6= Inter+epte le J erreur , en )6riIiant la +olle+tion ?rror i n6+e Rn ?rror OoTo ?rrL?xe+ute +m0Temp=?xe+ute Rn ?rror OoTo 0 J 96+upMre le 0onn6e en +our J le $eu 0Jenregi trement = r tTemp=9e(uerN
aire=
en interrogeant 0e nou)eau
?xit Sub ?rrL?xe+uteW J 4)ertit lJutili ateur 0e 6)entuelle erreur pou)ant r6 ulter 0e J lJex6+ution 0e la re(uXte= II ?rror =Count B 0 T1en .or ?a+1 errLoop In ?rror # g5ox *?rror numberW * 8 errLoop=3umber 8 )bCr 8 L errLoop=De +ription 3ext errLoop ?n0 II 9e ume 3ext ?n0 Sub
2.$$ II2..
B. B(3
45678648
@7
@ubli+ Sub @rintRutput!r tTemp 4 4DRD5=9e+or0 et" J 96pertorie le 9e+or0 et= Do >1ile 3ot r tTemp=?R. Debug=@rint * * 8 r tTempKTitle 8 L *, * 8 r tTempKTNpe r tTemp=#o)e3ext Loop ?n0 Sub Version VBScript $oici le m%me exemple, crit en $&'cript pour pou(oir %tre utilis dans une pa!e )'". "our (isualiser cet exemple *onctionnel, (ous de(e+ crer un ,'- appel )d(.or/s l'aide de la source de donnes )d(.or/s.mdb installe a(ec ' et situe dans C01 net"ub1)'"'amp1)d(.or/s. l s'a!it d'un *ichier de base de donnes 2icroso*t )ccess. 3tilise+ Find pour retrou(er le *ichier )do(bs.inc et place+-le dans le rpertoire que (ous souhaite+ utiliser. Coupe+ et colle+ le code ci-dessous dans le &loc-notes ou un autre diteur de texte, puis sau(e!arde+-le sous le nom Execute.asp. $ous pou(e+ (isualiser le rsultat sous n'importe quel na(i!ateur client. AKVV YIn+lu0e Iile=*4DRV5S=I3C* VVB AFT#LBAF?4DB ATITL?B4DR ?xe+ute #et1o0AZTITL?BAZF?4DB A5RD[B A.R3T .4C?=*#S S43S S?9I.* SI\?=2B ACenterBAF3B4DR ?xe+ute #et1o0AZF3BAF4B9e+or0 et 9etrie)e0 E ing Conne+tion Rb$e+tAZF4B AT45L? >IDTF=600 5R9D?9=0B ATD V4LIO3=TR@ 4LIO3=L?.T CRLS@43=3BA.R3T SI\?=2B AKVVV 9e+or0 et retrie)e0 u ing ?xe+ute met1o0 oI Conne+tion an0 Comman0 Rb$e+t VVB A] Set R5S0bConne+tion = Ser)er=CreateRb$e+t!*4DRD5=Conne+tion*" R5S0bConne+tion=Rpen *40)>orQ * SPLPuerN = *S?L?CT : .9R# Cu tomer * J@remier 9e+or0 et 9SCu tomerLi t Set 9SCu tomerLi t = R5S0bConne+tion=?xe+ute!SPLPuerN" Set R5S0bComman0 = Ser)er=CreateRb$e+t!*4DRD5=Comman0*" R5S0bComman0=4+ti)eConne+tion = R5S0bConne+tion SPLPuerN2 = *S?L?CT : .rom @ro0u+t * R5S0bComman0=Comman0Text = SPLPuerN2 Set 9 @ro0u+tLi t = R5S0bComman0=?xe+ute ]B AT45L? CRLS@43=; C?LL@4DDI3O=% 5R9D?9=0B AKVV 5?OI3 +olumn 1ea0er roD Ior Cu tomer TableVVB AT9BATD 4LIO3=C?3T?9 5OCRLR9=*Y00;0;0*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1BCompanN 3ameAZ.R3TB AZTDB ATD 4LIO3=C?3T?9 5OCRLR9=*Y00;0;0*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1BConta+t 3ameAZ.R3TB AZTDB ATD 4LIO3=C?3T?9 >IDTF=1%0 5OCRLR9=*Y00;0;0*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1B?Vmail a00re AZ.R3TB AZTDB ATD 4LIO3=C?3T?9 5OCRLR9=*Y00;0;0*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1BCitNAZ.R3TB AZTDB 2.$$ II2.. B. B(3 45678648
@4 ATD 4LIO3=C?3T?9 5OCRLR9=*Y00;0;0*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1BStateZ@ro)in+eAZ.R3TB AZTDBAZT9B AKVVDi plaN 4DR Data Irom Cu tomer TableVVB A] Do >1ile 3ot 9S+u tomerLi t=?R. ]B AT9B ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9SCu tomerLi t!*CompanN3ame*"]B AZ.R3TBAZTDB ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9S+u tomerLi t!*Conta+tLa t3ame*" 8 *, * ]B A]= 9S+u tomerLi t!*Conta+t.ir t3ame*" ]B AZ.R3TBAZTDB ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9S+u tomerLi t!*Conta+tLa t3ame*"]B AZ.R3TBAZTDB ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9S+u tomerLi t!*CitN*"]B AZ.R3TBAZTDB ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9S+u tomerLi t!*StateRr@ro)in+e*"]B AZ.R3TBAZTDB AZT9B AKV3ext 9oD = 9e+or0 Loop an0 a00 to 1tml tableVVB A] 9S+u tomerLi t=#o)e3ext Loop 9S+u tomerLi t=Clo e ]B AZT45L?BAF9B AF4B9e+or0 et 9etrie)e0 E ing Comman0 Rb$e+tAZF4B AT45L? CRLS@43=; C?LL@4DDI3O=% 5R9D?9=0B AKVV 5?OI3 +olumn 1ea0er roD Ior @ro0u+t Li t TableVVB AT9BATD 4LIO3=C?3T?9 5OCRLR9=*Y;00000*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1B@ro0u+t TNpeAZ.R3TB AZTDB ATD 4LIO3=C?3T?9 5OCRLR9=*Y;00000*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1B@ro0u+t 3ameAZ.R3TB AZTDB ATD 4LIO3=C?3T?9 >IDTF=3%0 5OCRLR9=*Y;00000*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1B@ro0u+t De +riptionAZ.R3TB AZTDB ATD 4LIO3=C?3T?9 5OCRLR9=*Y;00000*B A.R3T ST[L?=*49I4L 3499R>* CRLR9=*YIIIIII* SI\?=1BEnit @ri+eAZ.R3TB AZTDBAZT9B AKVV Di plaN 4DR Data @ro0u+t Li tVVB A] Do >1ile 3ot 9 @ro0u+tLi t=?R. ]B AT9B ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B
2.$$ II2..
B. B(3
45678648
@@ A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9 @ro0u+tLi t!*@ro0u+tTNpe*"]B AZ.R3TBAZTDB ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9 @ro0u+tLi t!*@ro0u+t3ame*"]B AZ.R3TBAZTDB ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9 @ro0u+tLi t!*@ro0u+tDe +ription*"]B AZ.R3TBAZTDB ATD 5OCRLR9=*I'eI0e* 4LIO3=C?3T?9B A.R3T ST[L?=*49I4L 3499R>* SI\?=1B A]= 9 @ro0u+tLi t!*Enit@ri+e*"]B AZ.R3TBAZTDB AKVV @ro+1aine ligne = ?nregi trement VVB A] 9 @ro0u+tLi t=#o)e3ext Loop JSupprime 0e ob$et 0e la m6moire pour lib6rer 0e 9 @ro0u+tLi t=Clo e R5S0bConne+tion=Clo e Set RbS0bComman0 = 3ot1ing Set 9 @ro0u+tLi t = 3ot1ing Set R5S0bConne+tion = 3ot1ing ]B AZT45L?BAZ.R3TBAZCenterBAZ5RD[BAZFT#LB
re
our+e
2.$$ II2..
B. B(3
45678648