Vous êtes sur la page 1sur 22

1

Introduction la programmation VB Conseils utiles :


Les qualits d'un programme

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 transfrable sur une machine d'un autre type.

Mthode de programmation Spcification des besoins des futurs utilisateurs. Spcifications fonctionnelles : comment satisfaire aux besoins. Conception gnrale : division du logiciel en programmes. Conception dtaille : algorithme le plus adapt pour chaque programme. Assemblage des diffrents programmes. Codage l'aide du langage le plus adapt. Tests et Validation.

La conception est beaucoup plus importante que le codage qui peut tre sous-trait dans le cas de gros logiciels.

Le langage Visual Basic


Caractristiques du langage VB Programmation vnementielle (sollicitations : souris, clavier, autre vnement)
Rutilisable (modules, classes).

Notion de variable Elles sont ncessaires pour stocker (conserver) une valeur dynamique et rutilisable. Menu Outils - Options - onglet Environnement - choisir : "Requiert la dclaration des variables". On peut aussi crire la directive Option Explicit au dbut de la section des dclarations dun module. Les types de variables On recommande fortement de dclarer les variables utilises dans un programme.

DESS IIDEE

B. BAH

17/03/12

Integer : de -32 768 32 767 Long : de -2 147 483 648 2 147 483 647 Single : dcimaux en simple prcision : 39 chiffres significatifs Double : dcimaux en double prcision : plus de 300 chiffres significatifs ! String : de 0 65 535 octets Variant : de type nombre , texte ou objet selon l'affectation faite. Boolean :de type logique

Syntaxe de dclaration : Dim <NomVariable> As <Type> Pour la lisibilit du code on peut les commenter aprs une apostrophe ( ) Exemples : Dim Taux As Single Taux de la TVA Dim Rponse As String Mot propos par le joueur Pour viter tout problme il est prfrable dinitialiser les variables dclares. Compteur = 0 Taux = 20,6 Le langage Basic utilise 7 types de donnes dont les plus utiliss sont le type String (chane de caractres), le type Integer (entier relatif) et le type Single (dcimal). Porte d'une variable Si une variable est dclare au dbut de la procdure qui la manipule (Dim ou Private) elle nest alors valide que pour cette procdure. L'existence et la valeur de la variable disparaissent avec l'instruction End Sub. Toute rfrence cette variable en dehors de cette procdure provoquera une erreur de compilation.

Si une variable est dclare dans la section des dclarations dun module elle est valide dans toutes les procdures du module.

Une variable peut aussi tre dclare Public ou Global et sera alors valide pour toute lapplication. Exemple : Global MotCommun As String

DESS IIDEE

B. BAH

17/03/12

Les tableaux et les boucles


Structure dun tableau On a souvent besoin de travailler sur un ensemble de donnes. Un exemple : les tempratures moyennes des 12 mois de l'anne. On pourrait dclarer 12 variables identiques : Dim Temp1, Temp2, Temp3, Temp4, , Temp12 as Single On dispose d'une structure de donnes appele Tableau qui permet de conserver dans une seule "entit" plusieurs valeurs de mme type. Le nom du tableau est une variable qu'il est recommand de prfixer par Tab. Le nombre de valeurs de types identiques est dclarer entre parenthses. Exemple de dclaration dun tableau une dimension : Dim TabTemp(12) As Single Numro Tempratur e 1 6 2 5,5 3 7 4 11,5 5 15

L'accs la case numro 3 se fait par TabTemp(3) qui vaut 7.

Exemple de dclaration dun tableau deux dimensions : Dim TabMajMin(1 to 2,65 to 90) As String Numro 1 2 65 A a 66 B b 67 C c 89 Y y 90 Z z

L'accs la case qui contient le petit "c"se grce la syntaxe suivante : TabMajMin(2,67) qui vaut "c".

DESS IIDEE

B. BAH

17/03/12

Boucles en nombre dfini Cette boucle est utilise lorquon connat lavance le nombre de fois quelle sera parcourue. Syntaxe : For Compteur = Dbut To Fin [Step Incrment] Instructions [ ... Exit For] [Instructions] Next [Compteur] Le test est effectu au dbut de la boucle. La variable numrique Compteur est incrmente chaque fin de boucle du nombre indiqu par lincrment. Si lincrment nest pas spcifi il est fix 1. Si la valeur de Fin est infrieure la valeur de Dbut lincrment est ngatif. La valeur de Compteur peut tre utilise (par exemple pour numroter le passage dans la boucle) mais ne doit pas tre modifie dans le corps de la boucle.

Exemple : For i = 1 To 50 TabInitial(i) = 0 Initialisation de chaque case 0 Next i - Remplissage d'un tableau Pour remplir un tableau on le balaye avec une boucle For To Next (car le nombre de cases est connu l'avance). Exemple 1 : Dim TabTemp(12) As Single Dim Compteur As Integer For Compteur = 1 To 12 TabTemp(Compteur)=InputBox("Temprature N " & Compteur) Next Compteur

DESS IIDEE

B. BAH

17/03/12

Exemple 2 : Dim TabTirageLoto(6) As Integer Dim Compteur As Integer For Compteur = 1 To 6 TabTirageLoto (Compteur)=Rnd * 48 + 1 Next Compteur

Les boucles :

Si le programme doit excuter un bloc d'instructions en nombre prdfini on utilise la boucle For To Next. Exemple : For i = 1 To 49 TabLoto(i) = i chaque case contient son numro Next i Si le nombre de passages dans la boucle est inconnu au dpart, mais dpend d'une condition dont la ralisation est imprvisible cette structure n'est pas adapte. Exemple 1 : Demander le mot de passe tant que la rponse n'est pas le bon mot de passe. Demander le mot de passe jusqu' ce que la rponse soit le bon mot de passe. Exemple 2 : Demander la saisie d'une note tant que la rponse n'est pas un nombre entre 0 et 20. Demander la saisie d'une note jusqu' ce que la rponse soit un nombre entre 0 et 20. Boucle tant que Syntaxe premire version : Do While Condition Instructions [... Exit Do] [Instructions] Loop

DESS IIDEE

B. BAH

17/03/12

La condition est ici teste au dbut c'est dire lentre de la boucle. Avec While (tant que) la boucle est rpte tant que la condition est vraie. Si la condition nest pas vraie au dpart les instructions de la boucle ne sont pas excutes. Exemple : Do While MotPropos <> MotDePasse MotPropos = InputBox("Donnez votre mot de passe") Loop Cela prsuppose MotPropos initialis par une valeur autre que MotDePasse (par exemple la valeur par dfaut "").

Syntaxe deuxime version : Do Instructions [... Exit Do] [Instructions] Loop While Condition La condition est alors teste la fin de la boucle. Avec While (tant que) la boucle est rpte tant que la condition est vraie. Les instructions de la boucle sont donc excutes au moins une fois. Exemple : Do MotPropos = InputBox("Donnez votre mot de passe") Loop While MotPropos <> MotDePasse Cet exemple ne prsuppose aucune initialisation de MotPropos.

DESS IIDEE

B. BAH

17/03/12

Les boucles Tant que , jusqu Syntaxe premire version : Do while Condition Instructions [... Exit Do] [Instructions] Loop La condition est ici teste au dbut c'est dire lentre de la boucle. Avec while (tant que) la boucle est rpte tant que la condition nest pas vrifie. Si la condition est vraie ds le dpart les instructions de la boucle ne sont pas excutes. Exemple : Do while MotPropos <> MotDePasse MotPropos = InputBox("Donnez votre mot de passe") Loop Cela prsuppose MotPropos initialis par une valeur autre que MotDePasse (par exemple la valeur par dfaut : "").

Syntaxe deuxime version : Do Instructions [... Exit Do] [Instructions] Loop Until Condition La condition est alors teste la fin de la boucle. Les instructions de la boucle sont donc excutes au moins une fois.

DESS IIDEE

B. BAH

17/03/12

Avec Until (jusqu') la boucle est rpte jusqu' ce que la condition soit vraie. Exemple : Do MotPropos = InputBox("Donnez votre mot de passe") Loop Until MotPropos = MotDePasse Cet exemple ne prsuppose aucune initialisation de MotPropos.

Boucle For Each Next Cest une extension de la boucle For ... To Next. Elle est utilise pour parcourir les collections(ensembles). Syntaxe : For Each Elment In Ensemble Instructions [ ... Exit For] [Instructions] Next [Elment] Ensemble est le plus souvent un tableau. Exemple : Dim TabHasard(100) As Integer Dim Cellule As Integer Dim Rponse As String Randomize For Each Cellule In TabHasard Cellule = Rnd * 100 + 1 Next For Each Cellule In TabHasard Rponse = Rponse & Cellule & " Next MsgBox (Rponse) "

DESS IIDEE

B. BAH

17/03/12

Traitement des chanes de caractres


Ncessit de ces traitements Les donnes manipules par un programme sont essentiellement de type numrique ou chane de caractres. Si les types numriques sont trs utiliss par les programmes scientifiques, le type chane est incontournable pour des tudiants en Lettres et Sciences Humaines. Une variable chane de caractres se dclare de type String. Exemple 1 : Dim MotPropos As String La variable contient alors une chane de longueur variable selon l'affectation qui suivra.

Exemple 2 : Dim Lettre As String * 1 La variable contient alors une chane de longueur 1 c'est dire un seul caractre. Exemple 3 : Dim Adresse As String * 30 La variable contient alors une chane de longueur 30. Si l'on n'affecte que 18 caractres dans une telle chane, le reste est rempli d'espaces. Si l'on affecte plus de 30 caractres le surplus est tronqu.

Comparaison des chanes de caractres

Longueur d'une chane : La longueur d'une chane est donne par la fonction Len. Exemple : Phrase = "Visual Basic La fonction Len(Phrase) retournera la valeur 12. Il est vident que si deux chanes de caractres n'ont pas la mme longueur elles sont diffrentes. Par contre deux chanes de mme longueur ne sont pas forcment identiques.

DESS IIDEE

B. BAH

17/03/12

10

Comparaison binaire : On compare deux chanes par la fonction StrComp. Elle renvoie la valeur numrique 0 si les deux chanes sont rigoureusement identiques et la valeur numrique 1 si les chanes diffrent mme par un seul octet. Exemple : Phrase1 = "Visual Basic." Phrase2 = "Visual basic." Phrase3 = " Visual Basic. La fonction StrComp(Phrase1,Phrase2) retournera la valeur La fonction StrComp(Phrase1,Phrase3) retournera la valeur Recherche d'une chane de caractres

La fonction InStr permet de rechercher si une chane de caractres existe l'intrieur d'une autre chane de caractres. Si cest le cas, elle retourne la position de la premire occurrence de la chane recherche.

Syntaxe : InStr(Chane1, Chane2) Chane1 est la chane de caractres traiter (sur laquelle porte la recherche). Chane2 est la chane de caractres recherche dans Chane1. Exemple : Chane1 = "Visual Basic et ses fonctions" Chane2 = "Basic" Chane3 = "Basics" La fonction InStr(Chane1,Chane2) retournera la valeur 8 La fonction InStr(Chane1,Chane3) retournera la valeur 0.

La fonction Ucase met tout le texte en majuscules et permet de rechercher indpendamment une lettre minuscule ou majuscule. La fonction Lcase met tout le texte en minuscules et permet

Extraction d'une chane de caractres

La fonction Right donne la partie droite d'une chane de caractres. Le nombre de caractres de cette partie doit tre prcis.

DESS IIDEE

B. BAH

17/03/12

11

Exemple : Chane = "Visual Basic et ses fonctions" La fonction Right(Chane,5) retournera la valeur "tions"

La fonction Left donne la partie gauche d'une chane de caractres. Le nombre de caractres de cette partie doit tre prcis.

Exemple : Chane = "Visual Basic et ses fonctions" La fonction Left(Chane,5) retournera la valeur "Visua"

La fonction Mid extrait une partie d'une chane de caractres.

Le nombre de caractres de cette partie doit tre prcis ainsi que la position du premier caractre extrait. Syntaxe : Mid(Texte, Position, Nombre) Texte est la chane de caractre traiter. Position est la position du caractre partir duquel il faut extraire une sous-chane de caractres. Nombre est le nombre de caractres extraire. Exemple : Chane = "Visual Basic et ses fonctions" La fonction Mid(Chane,8,5) retournera la valeur "Basic" La fonction Mid(Chane,21) retournera la valeur "fonctions" Applications La plupart des problmes sur les chanes de caractres se traitent l'aide des fonctions cidessus. Leur maniement est assez dlicat et les rsultats quelquefois difficiles prvoir. Seule la pratique de leur programmation vous permettra d'en vrifier l'efficacit.

DESS IIDEE

B. BAH

17/03/12

12

Exemple1 : Ce programme recherche un mot dans une chane de caractres : Dim Chaine, Mot As String Dim Position As Integer Chaine = "Visual Basic et ses fonctions." Mot = InputBox("Taper le mot rechercher") Position = InStr(Chaine, Mot) If Position = 0 Then MsgBox "Le mot '" & Mot & "'" & " n'a pas t introuv !") Else MsgBox("Le mot '" & Mot & "'"&" a t trouv la position "_ & Position) End If

Exemple2 : Ce programme compte le nombre d'espaces dans une phrase. Dim Phrase, Caractre As String Dim Compteur, Longueur, i As Integer Phrase = InputBox("Tapez votre phrase") Longueur = Len (Phrase) For i = 1 To Longueur Caractre = Mid(Phrase, i, 1) If Caractre = " " Then Compteur = Compteur + 1 Next i MsgBox("Cette phrase contient " & Compteur & " espaces.") Fonctions de date et d'heure

La fonction Date donne la date systme.

Date retourne la date du jour courant.

La fonction Time donne l'heure systme.

DESS IIDEE

B. BAH

17/03/12

13

Time retourne lheure courante.

La fonction Day() donne le numro du jour dans le mois.

Day(Date) retourne le numro du jour du mois courant (compris entre 1 et 31)a valeur 8

La fonction Month() donne le numro du mois dans l'anne.

Month(Date) retournera le numro du mois courant( compris entre 1 et 12). Ex : 11.

La fonction Year() donne le numro de l'anne.

Year(Date) retournera le numro de lanne courante. Ex : 2000.

La fonction WeekDay() donne le numro du jour dans la semaine sachant que le dimanche porte le numro 1.

WeekDay(Date) retournera le numro daujourd'hui (compris entre 1 et 7) .

La fonction FormatDateTime(date [, constante vb]) donne Retourne une expression formate sous forme de date ou dheure. Les crochets s.

O constante vb peut prendre les valeurs suivantes : [, vGeneralDate ou vbLongDate, vbShortDate, vbShortTime, ]

Autres fonctions 1) Get Dclare le nom, les arguments et le code formant le corps d'une procdure Property, qui lit la valeur d'une proprit. Syntaxe: [Public | Private | Friend] [Static] Property Get NomProprit [(arglist)] [As type] [instructions] [Exit Property] [instructions] End Property

2) Let : Dclare le nom, les arguments et le code formant le corps d'une procdure Property Let, qui attribue une valeur une proprit. Syntaxe [Public | Private | Friend] [Static] Property Let name ([arglist,] value) [instructions] [Exit Property] [instructions] End Property

DESS IIDEE

B. BAH

17/03/12

14

Exemple
Private dblBalance As Double Public Property Get Balance() As Double Balance = dblBalance End Property Property Let Balance(dblNewBalance As Double) dblBalance = dblNewBalance End Property

4) CallByName : cette fonction permet dobtenir ou de dfinir une proprit ou dinvoquer une mthode pendant lexcution. Syntaxe : CallByName(Objet, NomProcdure,CallType) O : Exemple : Obtenir le contenu de la proprit NomGroupe de lobjet objGroupe : Resulat = CallByName(objgroupe, NomGroupe, VbGet) Dfinir la proprit NomGroupe de lobjet objGroupe : CallByName(objgroupe, ObjField.Name, VbLet) Excuter la mthode "InitialisationObj" de lobjet objGroupe : CallByName(objgroupe, InitialisationObj, Vbmethod) Objet(objet variant) est le nom de lobjet sur lequel on souhaite excuter la fonction CallByName. NomProcdure (variant) dsigne le nom de la proprit ou de la mthode de lobjet . CallType est une constante qui reprsente le type de procdure appele(vbGet, VbLet,vbMethod).

Procdures et fonctions
Visual Basic permet de dfinir et dutiliser trois types de sous-routines : Les procdures proprement dites : Une procdure est un ensemble d'instructions qui traite une tche donne. Elle dbute par le mot rserv Sub et se termine par End Sub.
DESS IIDEE B. BAH 17/03/12

15

Exemple de procdure vnementielle : Private Sub cmdQuitter_Click End End Sub Si un bloc d'instructions doit tre utilis plusieurs endroits (par exemple dans plusieurs procdures vnementielles) il est prfrable d'en faire une procdure publique qui sera pourra tre appele dans nimporte quel autre sous-programme du module.

Exemple de procdure publique : Public Sub SaisieNote() Do Note = InputBox("Tapez une note") Loop Until Note>=0 And Note<=20 End Sub Pour utiliser cette procdure il suffira de l'appeler par son nom : SaisieNote Les fonctions : Elles sont comparables aux procdures quant leur mode dcriture. La diffrence ce quune fonction dbute par le mot rserv Function et se termine par End Function. De plus, elle a un type et peut retourner une valeur contenue dans le nom mme de la fonction. Cette valeur pourra tre utilise par la suite dans une autre expression. Exemple de fonction : Public Function Carr(x) As Single Carr = x * x End Function Par exemple Carr(7) retournera la valeur 49. Les procdures Property : Elles servent dfinir les proprits dun objet par exemple dans un module, dans une classe ou dans une feuille. Elles sont dlimite par les mots cls Property et End Property. Exemple de proprit :

DESS IIDEE

B. BAH

17/03/12

16

Public Property Let Nom(ByVal parametre As String) mvarNom = parametre End Property Remarques : ByVal ByRef(valeur par dfaut). Indique que l'argument est pass par valeur. Indique que l'argument est pass par rfrence

Interface de dveloppement de VISUAL BASIC


L'diteur de code de Visual Basic

Compos de 3 parties :
1.

La partie suprieure est la zone des dclarations (spare du reste par un trait horizontal). On y place les options et les dclarations de variables publiques.

Exemple : Option Explicit Public NomJoueur As String Private PrenomJour as String


2.

La partie suivante est la zone des procdures publiques (chaque procdure est spare des autres par un trait horizontal). On y place les procdures publiques utilisables par toutes les autresprocdures du module.

Exemple : Public Function Carr(x) As Single Carr = x * x End Function


3.

Enfin la partie suivante est la zone des procdures vnementielles (chaque procdure est spare des autres par un trait horizontal).

Exemple : Private Sub cmdCalculer_Click() End Sub

DESS IIDEE

B. BAH

17/03/12

17

Algorithmique Quand on a un problme rsoudre par programmation on doit tout d'abord trouver une stratgie pour y parvenir. Celle-ci doit bien sr tre "programmable" dans un langage de programmation. Il faut donc bien connatre les caractristiques et les possibilits de ce langage. Le plus souvent on crit un algorithme en franais (c'est la stratgie adopte) que l'on pourra ensuite coder dans le langage de programmation choisi. Exemple1 : Dterminer la carte la plus forte sur un ensemble de 6 cartes poses l'endroit sur la table. La rsolution de ce problme par un tre humain ou par un programme informatique est compltement diffrente. Algorithme en franais Prendre la 1ere carte. Noter sa hauteur dans une variable. De la 2eme la dernire : Prendre une carte. Si sa hauteur est suprieure celle note dans la variable elle devient la plus forte Recommencer

Exemple2 : Trier en ordre dcroissant les nombre contenus dans un tableau de 100 entiers. Diffrentes stratgies sont notre disposition. La plus classique est celle du tri bulles. Il s'agit de comparer chaque nombre son suivant et de mettre en premier le plus grand des deux. On recommence ainsi jusqu' ce que plus aucune permutation ne soit effectue. Alors le tableau est tri. Algorithme en franais Dbut Faire Permut 0 Pour i = 1 99 Si Case i < Case i+1 alors Auxiliaire Case i Case i Case i+1
DESS IIDEE B. BAH 17/03/12

18

Case i+1 Auxiliaire Permut 1 Fin de Si Nouveau i Recommencer tant que Permut = 1 Fin

Exemple d'utilisation des mthodes Execute, Requery et Clear


L'exemple ci-dessous dcrit la mthode Execute excute partir d'un objet Command et d'un objet Connection. Il utilise galement la mthode Requery pour rcuprer les donnes en cours dans un jeu d'enregistrements, puis la mthode Clear pour supprimer le contenu de la collection Errors. Les procdures ExecuteCommand et PrintOutput sont ncessaires l'excution de cette procdure. Public Sub ExecuteX() Dim Dim Dim Dim Dim Dim Dim strSQLChange As String strSQLRestore As String strCnn As String cnn1 As ADODB.Connection cmdChange As ADODB.Command rstTitles As ADODB.Recordset errLoop As ADODB.Error

' Dfinit deux instructions SQL excuter en tant que texte de commande. strSQLChange = "UPDATE Titles SET Type = " & _ "'self_help' WHERE Type = 'psychology'" strSQLRestore = "UPDATE Titles SET Type = " & _ "'psychology' WHERE Type = 'self_help'" ' Ouvre une connexion. strCnn = "Provider=sqloledb;" & _ "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; " Set cnn1 = New ADODB.Connection cnn1.Open strCnn ' Cre un objet de commande. Set cmdChange = New ADODB.Command Set cmdChange.ActiveConnection = cnn1 cmdChange.CommandText = strSQLChange ' Ouvre la table des titres. Set rstTitles = New ADODB.Recordset rstTitles.Open "titles", cnn1, , , adCmdTable ' Imprime l'tat des donnes initiales. Debug.Print _ "Data in Titles table before executing the query" PrintOutput rstTitles ' Supprime les autres erreurs de la collection Errors. cnn1.Errors.Clear ' Appelle la sous-routine ExecuteCommand pour ' excuter la commande cmdChange. ExecuteCommand cmdChange, rstTitles

DESS IIDEE

B. BAH

17/03/12

19 ' Imprime l'tat des nouvelles donnes. Debug.Print _ "Data in Titles table after executing the query" PrintOutput rstTitles ' Utilise la mthode d'excution de l'objet Connection pour ' excuter des instructions SQL de restauration des donnes. ' Intercepte les erreurs, en vrifiant la collection Errors si ncessaire. On Error GoTo Err_Execute cnn1.Execute strSQLRestore, , adExecuteNoRecords On Error GoTo 0 ' Rcupre les donnes en cours en interrogeant de nouveau ' le jeu d'enregistrements. rstTitles.Requery ' Imprime l'tat des donnes restaures. Debug.Print "Data after executing the query " & _ "to restore the original information" PrintOutput rstTitles rstTitles.Close cnn1.Close Exit Sub Err_Execute: ' Avertit l'utilisateur des ventuelles erreurs pouvant rsulter de ' l'excution de la requte. If Errors.Count > 0 Then For Each errLoop In Errors MsgBox "Error number: " & errLoop.Number & vbCr & _ errLoop.Description Next errLoop End If Resume Next End Sub Public Sub ExecuteCommand(cmdTemp As ADODB.Command, _ rstTemp As ADODB.Recordset) Dim errLoop As Error ' Excute l'objet Command spcifi. Intercepte les ' erreurs, en vrifiant la collection Errors si ncessaire. On Error GoTo Err_Execute cmdTemp.Execute On Error GoTo 0 ' Rcupre les donnes en cours en interrogeant de nouveau ' le jeu d'enregistrements. rstTemp.Requery Exit Sub Err_Execute: ' Avertit l'utilisateur des ventuelles erreurs pouvant rsulter de ' l'excution de la requte. If Errors.Count > 0 Then For Each errLoop In Errors MsgBox "Error number: " & errLoop.Number & vbCr & _ errLoop.Description Next errLoop End If Resume Next End Sub

DESS IIDEE

B. BAH

17/03/12

20

Public Sub PrintOutput(rstTemp As ADODB.Recordset) ' Rpertorie le Recordset. Do While Not rstTemp.EOF Debug.Print " " & rstTemp!Title & _ ", " & rstTemp!Type rstTemp.MoveNext Loop End Sub Version VBScript Voici le mme exemple, crit en VBScript pour pouvoir tre utilis dans une page ASP. Pour visualiser cet exemple fonctionnel, vous devez crer un DSN appel AdvWorks l'aide de la source de donnes AdvWorks.mdb installe avec IIS et situe dans C:\InetPub\ASPSamp\AdvWorks. Il s'agit d'un fichier de base de donnes Microsoft Access. Utilisez Find pour retrouver le fichier Adovbs.inc et placez-le dans le rpertoire que vous souhaitez utiliser. Coupez et collez le code ci-dessous dans le Bloc-notes ou un autre diteur de texte, puis sauvegardez-le sous le nom Execute.asp. Vous pouvez visualiser le rsultat sous n'importe quel navigateur client. <!-- #Include file="ADOVBS.INC" --> <HTML><HEAD> <TITLE>ADO Execute Method</TITLE></HEAD> <BODY> <FONT FACE="MS SANS SERIF" SIZE=2> <Center><H3>ADO Execute Method</H3><H4>Recordset Retrieved Using Connection Object</H4> <TABLE WIDTH=600 BORDER=0> <TD VALIGN=TOP ALIGN=LEFT COLSPAN=3><FONT SIZE=2> <!--- Recordsets retrieved using Execute method of Connection and Command Objects--> <% Set OBJdbConnection = Server.CreateObject("ADODB.Connection") OBJdbConnection.Open "AdvWorks" SQLQuery = "SELECT * FROM Customers" 'Premier Recordset RSCustomerList Set RSCustomerList = OBJdbConnection.Execute(SQLQuery) Set OBJdbCommand = Server.CreateObject("ADODB.Command") OBJdbCommand.ActiveConnection = OBJdbConnection SQLQuery2 = "SELECT * From Products" OBJdbCommand.CommandText = SQLQuery2 Set RsProductList = OBJdbCommand.Execute %> <TABLE COLSPAN=8 CELLPADDING=5 BORDER=0> <!-- BEGIN column header row for Customer Table--> <TR><TD ALIGN=CENTER BGCOLOR="#008080"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Company Name</FONT> </TD> <TD ALIGN=CENTER BGCOLOR="#008080"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Contact Name</FONT> </TD> <TD ALIGN=CENTER WIDTH=150 BGCOLOR="#008080"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>E-mail address</FONT> </TD> <TD ALIGN=CENTER BGCOLOR="#008080"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>City</FONT> </TD> B. BAH

DESS IIDEE

17/03/12

21 <TD ALIGN=CENTER BGCOLOR="#008080"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>State/Province</FONT> </TD></TR> <!--Display ADO Data from Customer Table--> <% Do While Not RScustomerList.EOF %> <TR> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RSCustomerList("CompanyName")%> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RScustomerList("ContactLastName") & ", " %> <%= RScustomerList("ContactFirstName") %> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RScustomerList("ContactLastName")%> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RScustomerList("City")%> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RScustomerList("StateOrProvince")%> </FONT></TD> </TR> <!-Next Row = Record Loop and add to html table--> <% RScustomerList.MoveNext Loop RScustomerList.Close %> </TABLE><HR> <H4>Recordset Retrieved Using Command Object</H4> <TABLE COLSPAN=8 CELLPADDING=5 BORDER=0> <!-- BEGIN column header row for Product List Table--> <TR><TD ALIGN=CENTER BGCOLOR="#800000"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Product Type</FONT> </TD> <TD ALIGN=CENTER BGCOLOR="#800000"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Product Name</FONT> </TD> <TD ALIGN=CENTER WIDTH=350 BGCOLOR="#800000"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Product Description</FONT> </TD> <TD ALIGN=CENTER BGCOLOR="#800000"> <FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Unit Price</FONT> </TD></TR> <!-- Display ADO Data Product List--> <% Do While Not RsProductList.EOF %> <TR> <TD BGCOLOR="f7efde" ALIGN=CENTER>

DESS IIDEE

B. BAH

17/03/12

22 <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RsProductList("ProductType")%> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RsProductList("ProductName")%> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RsProductList("ProductDescription")%> </FONT></TD> <TD BGCOLOR="f7efde" ALIGN=CENTER> <FONT STYLE="ARIAL NARROW" SIZE=1> <%= RsProductList("UnitPrice")%> </FONT></TD> <!-- Prochaine ligne = Enregistrement --> <% RsProductList.MoveNext Loop 'Supprime des objets de la mmoire pour librer des ressources RsProductList.Close OBJdbConnection.Close Set ObJdbCommand = Nothing Set RsProductList = Nothing Set OBJdbConnection = Nothing %> </TABLE></FONT></Center></BODY></HTML>

DESS IIDEE

B. BAH

17/03/12

Vous aimerez peut-être aussi