Afficher une base ACCESS en ASP.

Méthode complète et détaillée.

Soit une BDD créer sous ACCESS que l'on appelera "DVD" contenant n lignes et 4 colonnes définies par : "Titre", "Acteur", "Date" et un "Id" comme clé primaire. Il s'agit d'effectuer des requêtes sur cette base de données et d'afficher les résultats dans une page web au format ASP à laquelle on adjoint une feuille de style css pour l'habillage.

copy BDD


Avant d'utiliser les objets ADO pour accéder à la BDD, il faut la charger dans la mémoire de la ADODB Library. Pour charger les objets ADO il faut declarer les noms de variables avec l'attribut " Dim ". Ensuite utiliser l'attribut "Set" et la fonction "Server.CreateObject" pour créer les objets et établir une connexion.

<%

Dim objConnection

set objConnection = Server.CreateObject("ADODB.Connection")

%>


Déclarer l'objet "Recordset" qui contiendra les enregistrements issus de la BDD :

<%

Dim objRecordset

Set objRecordset = Server.CreateObject("ADODB.Recordset")

%>


Déclarer le type de la BDD, sa localisation sur le serveur, puis reste a ouvrir la connexion avec la BDD :

<%

Dim DSNStatement

DSNStatement = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="

DSNStatement = DSNStatement & Server.MapPath("/database/DVD.mdb")

objConnection.Open DSNStatement

%>

Attention : il faut en général renseigner le chemin compet : exple "http://hebergeur.com/monnom/database/DVD.mdb" donnera : MapPath("/monnom/database/DVD.mdb")


Il faut écrire un requete pour aller intérroger la BDD en déclarant la variable qui va contenir la requete : "strSQL", dans cet exemple on veut lire tous les champs (id,Titre,Acteur,Date) de toutes les occurences ( n lignes ) de la table "DVD" rangés d'apres la clé Primaire (Id) :

<%

Dim strSQL

strSQL = strSQL & "SELECT * FROM DVD order by ID"

%>


Ensuite il faut lancer la requete "strSQL" sur l'objet de connexion "objconnection" et recuperer le résultat dans l'objet d'enregistrement: "RecordSet"

<%

objRecordset.Open strSQL, objConnection, adOpenKeyset

objRecordset.AbsolutePage = CLng(Session("CurrentPage"))

%>


Nombre d'enregistrement à récuperer, peux être utile pour un affichage a l'écran :

<%

Dim Nb

nb = objRecordset.recordcount

%>


Pour récupérer les champs de la premiere ligne lue et les stocker dans des variables :

<%

Dim Titre

Dim Acteur

Dim Date

Titre =objRecordset("Titre")

Acteur =objRecordset("Acteur)

Date=objRecordset("Date")

Id =objRecordset("Id")

%>

"Acteur" contiendra donc la zone "CLINT EASTWOOD","Titre" la zone "Pendez les haut et court", "Date" la zone "1963" et "ID" contiendra le numero "9".

Ensuite il faut aller lire l'enregistrement suivant contenu dans le "RecordSet" :

<%

objRecordset.MoveNext

%>

... et l'afficher comme précedemment.


Ne pas oublier d'arreter la lecture quand il ne reste plus d'enregistrement a lire :

<%

If objRecordset.EOF then...%>

...(stop lecture)...

%>


Puis refermer les objets :

<%

objRecordset.Close

objConnection.Close

Set objRecordset = Nothing

Set objConnection = Nothing

%>


Principe d'une boucle de lecture des enregistrements de la table, lecture de 5 occurences :

<%

For i = 1 To 5

%>

   ...(code html pour afficher les résultat:

<%

   objRecordset.MoveNext

   If objRecordset.EOF then

      exit for

   End if

Next

%>


Affichage des résultats dans les balises html :

<html>

<table>
<tr>
           <th><%=objRecordset("Titre")%></th>
           <th><%=objRecordset("Acteur")%></th>
           <th><%=objRecordset("Date")%></th>
</tr>
</table>

</html>


Pour finir on applique une alternance des lignes paires et impaires qui peut être utile pour appliquer une classe de style alternée par ligne:

<%if int(i/2) = i/2 then %>

.... (affichage CSS lignes paires)...

<%else%>

.... (affichage CSS lignes impaires)...

<%end if%>


..ce qui peut donner :

 

Selection des Titres
Titre du film Acteur / Héros Date
nombre d'enregistrement : 5
Et pour quelques dollars de plus Clint EASTWOOD 1962
Bruce tout puissant Jim Carrey 1995
Le tout du monde en 80 jours Jackie CHAN 1962
Ce que veulent les femmes Mel GIBSON 1962
Van Helsing HUGH JACKMAN 1962

Haut de page

Exemple pratique : vidéothèque.

NB : s'assurer que le site puisse héberger les bases ACCESS ( assez rare ) et le langage ASP ( plutôt rare )!!!