Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUM VB FAQs VB TUTORIELS VB OUTILS VB SOURCES VB LIVRES VB

Exemple d'architecture à 3 couches en Visual Basic

Le 17 mars 2003

Par Romain Puyfoulhoux

Sommaire

1. Exemple d'application classique
2. Rôle de chacune des couches
3. Avantages de cette architecture
4. Exemple d'architecture à 3 couches
   4.1 Couche données
   4.2 Couche métier
   4.3 Couche présentation


1. Exemple d'application classique

Prenons en exemple une application très simple de gestion de comptes bancaires. Les données sont stockées dans une base composée de ces 3 tables :


Table tPersonne :Titulaires des comptes
Table tCompte :Les comptes bancaires
Table tOperation :Operations sur les comptes

Pour voir la structure des tables en détail, Cliquez ici.

Dans la feuille ci-contre, l'utilisateur demande l'affichage des comptes d'un client en entrant l'identifiant du client, puis en cliquant sur le bouton "Afficher".

Voici une façon simple de gérer l'affichage des comptes dans la datagrid, sur l'évènement Click() du bouton :

Private Sub btnSearch_Click()

Dim cnn As ADODB.Connection, rst As ADODB.Recordset, sql As String

If IsNumeric(Text1.Text) Then

    sql = "SELECT tCompte.Co_Numero, tCompte.Co_DateCreation, tCompte.Co_Solde FROM tCompte" & _
          " WHERE Co_IdProp=" & Text1.Text

    Set rst = New ADODB.Recordset
    Set cnn = New ADODB.Connection

    cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db.mdb" & _
             ";Persist Security Info=False"
    rst.CursorLocation = adUseClient
    rst.Open sql, cnn, adOpenForwardOnly, adLockReadOnly
    Set rst.ActiveConnection = Nothing
    Set DataGrid1.DataSource = rst
    cnn.Close
Else
    MsgBox "L'identifiant d'un client est un numérique.", vbCritical, "Erreur de saisie"
End If

End Sub

Si le contenu du champ texte est numérique, une connexion est créée, les comptes sont récupérés dans un recordset qui devient la source de la datagrid.

L'affichage des comptes d'une personne peut être scindé en 3 parties distinctes :

  • L'interface utilisateur
  • La logique de l'application : vérification de l'identifiant saisi et lecture du compte dans la base
  • Connexion à la base de données et ouverture d'un recordset

Le code source ci-dessus contient donc ces trois parties, alors qu'elles devraient être clairement distinctes. Cela permettrait de réutiliser le code qui crée une connexion à la base de données, et celui qui retrouve les comptes bancaires d'une personne. De façon générale, il vaut mieux programmer une application en séparant ces 3 fonctions : présentation, logique de l'application, et stockage des données.


[ Suivant ]

Ce document issu de http://www.developpez.com est soumis à la licence GNU FDL traduite en français ici.
Permission vous est donnée de distribuer, modifier des copies de cette page tant que cette note apparaît clairement.
Responsables bénévoles de la rubrique Visual Basic : Thierry Adriaenssens et Philippe Baquer - Contacter par EMail :
Vos questions techniques : forum d'entraide Visual Basic - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.