Home » » L’accès aux Bases données via la technologie ADO

L’accès aux Bases données via la technologie ADO


Atelier VB sur l’accès aux Bases données via la technologie ADO (ActiveX Data Object) et intégration des requêtes SQL

Outils de travail : Microsoft Access et Visual Basic6.0

Objectifs :

De créer une base données Access ;
L’interroger les données de la base à partir des interfaces VB ;
D’insérer et de mettre à jour les données de la base ;
Intégration des requêtes SQL ;
D’utiliser les contrôles VB d’accès aux données d’une Base Access2000 : ADCDC,
DATACombo et ListView.
De créer une connexion dynamique VB – Access.

Travail à faire :

Partie I :

Créer une table client (code, nom, adresse) sous une base de données Access. Puis lancer Visual Basic et réaliser l’interface suivante :

Les différentes étapes de connexion des interfaces VB avec une base de données Access par l’intermédiaire des requêtes SQL.

Etape N°1 :
Ouvrir un fichier Visual Basic comme application « Projet de données », pour avoir les différents contrôles d’accès aux données Access.

Etape N°2 :
Créer un module VB contenant la déclaration des variables globales et les procéduresglobales dans une section globale.

Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
_________________________________________________________________________________
Sub connbd()
Dim chaine As String
chaine = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & App.Path & “\client.mdb;Persist Security Info=False"
conn.Open chaine
If conn.State = 1 Then MsgBox "c'est, ok connexion reussi!"
End Sub
_________________________________________________________________________________
Sub main()
Call connbd ‘ l’appel de la procédure connb
FrmMAJclient.Show ‘afficher la feuille FrmMAJClient
End Sub

Remarque :
Pour établir le chemin suivant : chaine = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=D:\Documents and Settings\AMRI\Bureau\test_modul_2IG\client.mdb;Persist
Security Info=False" Procédez comme suit :

Dessinez le contrôle ADODC sur une Form VB, puis vous cliquez bouton droit du
contrôle ADODC-----> propriétés du contrôle ADODC ----> utiliser une chaîne de
connexion ---> créer ---- >puis vous séléctionner Provider=Microsoft.Jet.OLEDB.4.0.

‘ Microsoft.jet.OLEDB.4.0. c’est le moteur de recherche sur la base de données de Microsoft
qui utilise la technologie ADO DC et ADO DB.

Etape N°3 :
Créer des codes sources correspond les opérations de mise à jour de la base de données :

Code du Bouton consulter :

Private Sub Cmdconsulter_Click()
Dim req As String
req = "select * from client"
Set rs = New ADODB.Recordset
rs.Open req, conn, adOpenStatic ‘ cette commande pour exécuter la requête
Call texte ‘appel
End Sub
_________________________________________________________________________________
Code du bouton suivant :

Private Sub CmdSuivant_Click()
On Error Resume Next ‘ si’elle y a une erreur
If Not rs.EOF Then
rs.MoveNext
Call texte
Else
MsgBox "Attention c'est la fin des enregistrements"
End If
End Sub
_________________________________________________________________________________
Code du bouton valider l’ajout :
Private Sub CmdValider_Click()
Dim req As String
Dim a, b, c As String
a = TxtCode.Text
b = TxtNom.Text
c = TxtAdresse.Text
req = "insert into client values('" & a & "','" & b & "','" & c & "')"
conn.Execute (req)
MsgBox "opération d'ajout éffectuée avec succès...!"
TxtCode.Text = ""
TxtNom.Text = ""
TxtAdresse.Text = ""
CmdAjouter.Visible = True
CmdValider.Visible = False
_________________________________________________________________________________
Code du bouton Ajouter :

Private Sub CmdAjouter_Click()
TxtCode.Text = ""
TxtNom.Text = ""
TxtAdresse.Text = ""
MsgBox "Rempli les zones puis pressez le bouton valider pour ajouter"
CmdValider.Visible = True
CmdAjouter.Visible = False
End Sub
_________________________________________________________________________________
Code de la procédure Texte()

Sub texte()
TxtCode.Text = rs.Fields(0)
TxtNom.Text = rs.Fields(1)
TxtAdresse.Text = rs.Fields(2)
End Sub

Remarques et Explications :

Paramètres et valeurs de retour
Définit ou renvoie une des valeurs CursorTypeEnum suivantes :



Partie II :

Utiliser la base de données « Gestion des clients « composée de la table client (Code, Nom et Adresse), puis réaliser l’interface suivante :


Indications :
Ci-joint quelques codes sources de boutons de commandes pour accéder aux données Access.
Analyser, puis mettre le code source dans la section concernant chaque contrôle VB (Boutons de commande).
*****************************************************************************************
Private Sub CmdAfficherTout_Click()
Dim req As String
req = "select * from client"
Set rs = New ADODB.Recordset
rs.Open req, conn, adOpenStatic
ListView1.ListItems.Clear
While Not rs.EOF
Set mylist = ListView1.ListItems.Add(, , rs.Fields(0))
For i = 1 To 2
mylist.SubItems(i) = rs.Fields(i)
Next i
rs.MoveNext
Wend
End Sub

********************************************************************************************************************
Private Sub CmdEffacer_Click()
ListView1.ListItems.Clear
End Sub

********************************************************************************************************************
Private Sub CmdNombreEnregistrement_Click()
Dim a As Integer
a = ListView1.ListItems.Count
MsgBox "le nombre d'enregistrement est :" & a
End Sub

********************************************************************************************************************
Private Sub CmdQuitter_Click()
Unload Me
End Sub

*******************************************************************************************************************
Private Sub Combo1_Click()
Dim req, X As String
X = Combo1.Text
req = "select * from client where code like '" & X & "'"
Set rs = New ADODB.Recordset
rs.Open req, conn, adOpenStatic
ListView1.ListItems.Clear
While Not rs.EOF
Set mylist = ListView1.ListItems.Add(, , rs.Fields(0))
For i = 1 To 2
mylist.SubItems(i) = rs.Fields(i)
Next i
rs.MoveNext
Wend
End Sub

********************************************************************************************************************
Private Sub Form_Load()
Dim req As String
req = "select * from client"
Set rs = New ADODB.Recordset
rs.Open req, conn, adOpenStatic
While Not rs.EOF
Combo1.AddItem rs.Fields(0)
rs.MoveNext
Wend
End Sub

******************************************************************************************************************
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
c = ListView1.SelectedItem.Text
'Unload Me
Form1.Show
End Sub

******************************** Feuille de mise à jour *******************************************************
Private Sub Form_Load()
Dim req As String
req = "select * from client where code like '" & c & "'"
Set rs = New ADODB.Recordset
rs.Open req, conn, adOpenDynamic
Text1.Text = rs.Fields(0)
Text2.Text = rs.Fields(1)
Text3.Text = rs.Fields(2)
End Sub

*****************************************************************************************
Private Sub CmdMAJ_Click()
Dim req As String
Dim a, b, c, i, j
a = Text1.Text
b = Text2.Text
c = Text3.Text
req = "update client set code='" & a & "', nom='" & b & "', adresse='" & c & "' where code like '"& a & "'"
conn.Execute (req)
MsgBox "Modification effectuée avec succès", 0 + vbInformation, "Update client"
Unload Me
FrmListe.Show
End Sub

*****************************************************************************************
Explications concernant les propriétés du contrôle Liste View
ListItems, propriété (contrôle ListView)

Renvoie une référence à une collection d'objets ListItem dans un contrôle ListView.

Syntaxe

object.ListItems
Add, méthode (collection ListItems)
Ajoute un objet ListItem à une collection ListItems dans un contrôle ListView, et renvoie une référence au nouvel objet créé.

Syntaxe

object.Add(index, key, text, icon, smallIcon)
La syntaxe de la méthode Add comprend les éléments suivants :

SubItems, propriété (contrôle ListView)
Renvoie ou définit un tableau de chaînes (un sous-élément) représentant les données de l'objet
ListItem dans un contrôle ListView.

Syntaxe

object.SubItems(index) [= string]

La syntaxe de la propriété SubItems comprend les éléments suivants :


Fourni par Blogger.
أقسام المدونة :