Vous êtes sur la page 1sur 13

Connexion VB.

Net et Access
Isaac Wayisovia Mbumba, Mbumba Isaac

To cite this version:


Isaac Wayisovia Mbumba, Mbumba Isaac. Connexion VB. Net et Access. Licence. Congo-Kinshasa.
2022. �hal-03888571�

HAL Id: hal-03888571


https://hal.science/hal-03888571
Submitted on 7 Dec 2022

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est


archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non,
lished or not. The documents may come from émanant des établissements d’enseignement et de
teaching and research institutions in France or recherche français ou étrangers, des laboratoires
abroad, or from public or private research centers. publics ou privés.
Il est difficile de trouver une erreur
dans son code quand on la cherche,
c’est encore bien plus dur quand on
est convaincu que son code est bon

EBAUCHE
PROGRAMMATION
VB.NET ET
MICROSOFT
ACCESS
Destinée aux Etudiants L1
(LMD) Math- Info, Unikis.

Isaac MBUMBA, W.
Ass. Unikis, Math-Info.
VISUAL BASIC.NET ET BASE DE DONNEES
ACCES

Cette petite esquisse qui est à votre disposition chers étudiants, n’est qu’un début d’un long
périple que vous êtes convié à parcourir pour la réussite de votre formation. Loin d’affirmer
ici avoir abordé la totalité de la chose, sachez que la programmation est trop vaste,
comparable à un océan dont chacun est appelé en s’accaparer un verre d’eau, via cet exemple
nous cherchons juste à vous initier aux bases, vous pousser à comprendre comment s’écrivent
les codes dans en VB.Net en communication avec SGBD Access, nous ne voudrions pas que
vous puissiez faire comme la plupart, ses derniers bloquent le code au lieu de voir de près ce
que fait le code et chercher à implémenter dans sa propre logique.

Nous pensons bien qu’après sa mise en pratique, l’étudiant volera au moins de ses propres
ailes, nous allons plus nous marteler coté code, quant au graphique, vos préoccupations
seront les bienvenues

Problème : l’Unikis voudrait mettre en place un logiciel, qui permettra d’enregistrer ses
étudiants, un étudiant est identifié par son Matricule, Nom, Sa date de Naissance, son Lieu de
Naissance, et son sexe. Le logiciel devra permettre de Modifier les informations, supprimer,
rechercher, imprimer la liste des Etudiants (Trop simple).

Pour besoin fonctionnel et ergonomique, n’importe qui ne devrait avoir accès au logiciel, nous
devrions aussi intégrer l’authentication, l’utilisateur saisira son nom et son mot de passe.

Résolution

Partant du problème nous n’avons que deux tables (compte et étudiant, chacune ayant ses
propriétés déjà signalées), nous n’allons pas faire trop d’analyse sur le système d’information
car nous pensons que l’étudiant a déjà les prérequis en Méthode d’analyse ou conception
(UML OU MERISE, etc.)

Nous allons directement dans Access pour créations de nos tables, Access vient dans le paquet
Microsoft Office, il suffit que celui-ci soit installé pour que vous ayez Access dans votre
ordinateur. (Pour notre cas, nous utilisons Microsoft Office 2016)

p. 1
Pour ouvrir Access, rendez-vous dans Menu démarrer (Windows 10…), Tapez Access, valider
votre choix

Cliquez sur Base


de données vide
enfin de créer
sa propre base.

Nommez votre
base de
données, la
nôtre s’appelle
« Compte »

Access s’ouvre,
allez dans
menu créer-
création d’une
table, nommez
la table et
commencez à
renseigner sur les champs et leurs types (les types et nombre de champs doivent correspondre
avec ceux qui seront à saisir dans VB.net)

p. 2
Après avoir fini avec la création de sa base des données (Etudiant) en Accès, ladite base de
données contient deux tables (compte et étudiant), nous pouvons nous permettre d’aller
maintenant vers notre environnement de développement (Visual Studio) et utiliser VB.net

Visual studio est une suite de logiciels de développement pour Windows et Mac Os, conçue
par Microsoft, sa dernière version en date de cette rédaction s’appelle Visual Studio 2022, une
panoplie de langages en son sein, C++, C Sharp, Visual Basic.NET, J…

Pour notre cas, nous allons programmer en Visual Basic.NET (2012), tout en maintenant notre
logique, partant du fait que la Base de données est déjà créée ; et sachant que nous avons
déjà Visual Studio installé dans notre ordinateur, nous allons lancer Visual Studio, Pour ce,
allez dans Menu démarrer, tapez Visual Studio, au démarrage, choisissez votre langage de
programmation.

Donnez un nom significatif au projet, la localisation du projet est par défaut dans Mes
documents, Visual Studio 2012 (Pour ce cas) – Project.

Rappel, nous avions deux tables dans Access (Compte, Etudiant) raison pour laquelle nous
allons d’abord commencer par la création deux formulaires correspondants à nos tables

p. 3
1. Formulaire Compte

Consignes : Avant d’accéder au programme il est impérieux que l’utilisateur renseigne sur ses
identifiants (Nom et Mot de passe), s’il fournit les identifiants différents à ceux qui y sont
préalablement, qu’il n’ait pas accès au logiciel,

Voici le formulaire et tous les objets qui vont avec

Le premier formulaire au lancement du logiciel,


l’utilisateur insère son nom et Mot de passe,
appui sur le bouton connect, et une suite de
traitement et vérification commence, dans les
lignes qui suivent nous présentons le code lié à
bouton à l’événement clic bouton Connect

CODE LIE A LA FENETRE AUTHENTIFICATION

Nota bene : les écrits colorés en vert sont des commentaires, nous les avons insérés pour une
meilleure compréhension du code, ça n’a aucun effet sur l’exécution du logiciel.

'Importation des classes lié à la connexion OleDb, Base des données


Imports System.Data.OleDb
Imports System.Data
Public Class Authentification
' Déclarons notre variable de connexion à la base de données
Dim inscript As New OleDbConnection
'Objet dataset pour la structure de la base des données
Dim jeued As New DataSet
'DataAdapter pour recevoir les données de la Base de données et les mettre dans le
Dataset
Dim adapis As OleDbDataAdapter
Dim max, x As Integer
'Lorsqu'on charge le formulaire
Private Sub Authentification_Load(sender As Object, e As EventArgs) Handles
MyBase.Load
' Notre variable de connection qui prend le chemin où se trouve notre base des
données access
'Juste lors du chargment du formulaire Authentification
inscript.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; data source="
& Application.StartupPath & "\Isaac.accdb"
'On ouvre la connexion
inscript.Open()
'On rempli notre Jeu des données
adapis = New OleDbDataAdapter("select*from Compte", inscript)
adapis.Fill(jeued, "Compte")

p. 4
'cette variable nous servira à compter les enregistrements
x = 0
max = jeued.Tables("Compte").Rows.Count
'Affecterdonnees()
' on ferme la connexion
inscript.Close()

End Sub

'Lorsqu'on click sur le boutton enregistrer


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'On declare la variable de reception des données
Dim cmd As New OleDbCommand
inscript.Open()
'Après ouverture de la connexion, la requête selectionne les données pour
vérifier
cmd.CommandText = "Select * FROM Compte Where Nom='" & TextBox1.Text & "' AND
MotPass= '" & TextBox2.Text & "' "
cmd.Connection = inscript
'On declare la variable de lecture des données
Dim lectrech As OleDbDataReader = cmd.ExecuteReader
'Si les identifiants sont trouvés
If lectrech.Read = True Then
MsgBox("Identifiants correct")
TextBox1.Clear()
TextBox2.Clear()
Me.Hide()
Form1.Show()
ElseIf TextBox1.Text = "" Then
MsgBox("Veuillez signaler le nom de l'utilisateur")
ElseIf TextBox2.Text = "" Then
MsgBox("Veuillez inserer le mot de passe")
Else
'Si on ne retrouve pas les identifiants
MsgBox("vous n'êtes pas enregistré dans notre base de données")
TextBox1.Clear()
TextBox2.Clear()
TextBox1.Focus()
End If
inscript.Close()

End Sub

S’il insère les identifiants enregistrés dans la table de la base des données, il passe au
deuxième formulaire permettant d’enregistrer l’Etudiant

p. 5
Nous avons essayé de mixer nos
outils pour n’est pas resté dans le
statuquo, vous comprendrez que
nous avons l’outil textbox, date and
time, combobox… et les boutons
nous permettant d’ordonner
certaines tâches, juste en voyant,
nous pouvons enregistrer, lire
l’enregistrement suivant,
précédent, supprimer un
enregistrement, modifier,
rechercher un Etudiant, voir la liste

VOICI LE CODE DU FORMULAIRE AVEC EXPLICATION EN LIGNE VERTE

'Espace de nom des variables globales à déclarer avant d'utiliser une base des données
OLDB
Imports System.Data.OleDb
Imports System.Data

Public Class Form1


'DECLARATION DES ATTRIBUTS
'Variable permettant de me connecter à ma base des données
Dim inscript As New OleDbConnection
'Objet dataset pour la structure de la base des données
Dim jeued As New DataSet
'DataAdapter pour recevoir les données de la Base de données et les mettre dans le
Dataset
Dim adapis As OleDbDataAdapter
Dim max, x As Integer
'CHARGEMENT DE LA FENETE
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
inscript.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; data source="
& Application.StartupPath & "\Isaac.accdb"
inscript.Open()
adapis = New OleDbDataAdapter("select*from Isra", inscript)
adapis.Fill(jeued, "Isra")
x = 0
max = jeued.Tables("Isra").Rows.Count
'Affecterdonnees()
inscript.Close()
End Sub
'LORSQU'ON CLIQUE AU BOUTON ENREGISTRER
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'ENREGISTREMENT DES DONNEES DANS LA TABLE ETUDIANT
' Je declare la variable OledbCommand pour recevoir les données dans la base
des données et mettre dans DataSet
Dim enregistrer As New OleDbCommand
'J'ouvre la connexion à la base des données
inscript.Open()

p. 6
'Je déclare la requête qui est en SQL permettant d'insérer les données dans Ma
table, à Noter que le champ en vb doivent correspondre avec ceux se trouvant dans
access
enregistrer.CommandText = "insert into Isra values ('" & TextBox1.Text & "',
'" & TextBox2.Text & "', '" & DateTimePicker1.Value.Date & "', '" & TextBox3.Text &
"', '" & ComboBox1.Text & "')"
enregistrer.Connection = inscript
enregistrer.CommandType = CommandType.Text
MsgBox("Vous êtes enregistés avec succès")
enregistrer.ExecuteNonQuery()
'Pour tout initialiser
inscript.Close()
Button2_Click(sender, e)

End Sub
'LORSQU'ON CLIQUE AU BOUTON NOUVEAU
'Pour Initialiser tous mes champs sur le formulaire
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
ComboBox1.Text = ""
DateTimePicker1.Text = ""
TextBox1.Focus()
End Sub

'PROCEDURE AFFECTATION DES DONNEES VENANT DE NOTRE BASE DE DONNEES DANS NOS CHAMPS
Private Sub Affecterdonnees()

TextBox1.Text = jeued.Tables("Isra").Rows(x).Item(0)
TextBox2.Text = jeued.Tables("Isra").Rows(x).Item(1)
DateTimePicker1.Text = jeued.Tables("Isra").Rows(x).Item(2)
TextBox3.Text = jeued.Tables("Isra").Rows(x).Item(3)
ComboBox1.Text = jeued.Tables("Isra").Rows(x).Item(4)

End Sub
'LORSQU'ON CLIC AU BOUTTON SUIVANT
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If x < max - 1 Then
x = x + 1
Affecterdonnees()
Else
Button3.Enabled = False

End If
End Sub
'LORSQU'ON CLIC AU BOUTTON PRECEDENT
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If x > 0 Then
x = x - 1
Affecterdonnees()
Else
Button4.Enabled = False
End If
End Sub
'LORSQU'ON CLIC AU BOUTTON SUPPRIMER
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim cmd As New OleDbCommand
inscript.Open()
'La requête de suppression des données partant d'un critère Where
cmd.CommandText = "DELETE * FROM Isra Where Matricule='" & TextBox1.Text & "'"

p. 7
Dim reponse As MsgBoxResult = MsgBox("Etes vous sûr de vouloir supprimer cet
enregistrement?", MsgBoxStyle.YesNo, "Suppression Citation")
If reponse = MsgBoxResult.Yes Then
cmd.Connection = inscript
cmd.CommandType = CommandType.Text
cmd.ExecuteNonQuery()
Button2_Click(sender, e)
End If
End Sub
'LORSQU'ON CLIC AU BOUTTON MODIFIER
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
Dim cmd As New OleDbCommand
inscript.Open()
'La requête de mise à jour des données
cmd.CommandText = "UPDATE Isra SET Nom='" & TextBox2.Text & "', DateNaiss='" &
DateTimePicker1.Value.Date & "', LieuNaiss= '" & TextBox3.Text & "', Sexe= '" &
ComboBox1.Text & "' Where Matricule= '" & TextBox1.Text & "'"
cmd.Connection = inscript
Dim reponse As MsgBoxResult = MsgBox("Etes vous sûr de vouloir supprimer cet
enregistrement?", MsgBoxStyle.YesNo, "Suppression Citation")
If reponse = MsgBoxResult.Yes Then
cmd.Connection = inscript
cmd.CommandType = CommandType.Text
cmd.ExecuteNonQuery()
Button2_Click(sender, e)
End If

End Sub
'LORSQU'ON CLIC AU BOUTTON RECHERCHE
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
Dim elt As String
elt = InputBox("saisissez votre numero d'enregistrement")
Dim recherche As New OleDbCommand
inscript.Open()
'La requête de selection des données partant d'un critère Where
recherche.CommandText = "select * from Isra where Matricule ='" & elt & "'"
recherche.Connection = inscript
Dim lectrech As OleDbDataReader = recherche.ExecuteReader
If lectrech.Read = True Then
TextBox1.Text = lectrech.Item(0)
TextBox2.Text = lectrech.Item(1)
DateTimePicker1.Text = lectrech.Item(2)
TextBox3.Text = lectrech.Item(3)
ComboBox1.Text = lectrech.Item(4)
Else
MsgBox("vous n'êtes pas enregistré dans notre base de données")

End If
inscript.Close()
End Sub
'LORSQU'ON CLIC AU BOUTTON VOIR POUR PARCOURRIR LE RAPPORT DES ETUDIANTS
ENREGISTRES
Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
Me.Hide()
Form2.Show()
End Sub

p. 8
Jusque là on peut se dire avoir finis avec nos deux tables, comptes et enregistrement, mais en
information un logiciel doit respecter ses critères (entrée, traitement, sortie), nous avons tenu
compte que de deux, quant à la sortie, nous faisons recourt au DataGridview (un autre outil
VB.net)

Nous créons un nouveau formulaire et on insère l’outil DataGridview (Après quelques


procédures dont nous ne saurons élucider ici, cela pourra faire l’objet d’un autre tuto)

On y accède après un click sur le bouton voir du formulaire Etudiant

Voici le formulaire
ayant DataGridView
régénérant les
données se trouvant
dans notre base des
données, table
Etudiant, nous
voyons tous nos
étudiant enregistrés

Un problème se pose, tout bon logiciel devrait produire un Etat de sortie (Rapport à imprimer
via une imprimante), Une notion importance intervient de même, le Crystal Report (VS)
partant des connaissances en notre possession seul Visual Studio 2008 en avait déjà lors de
son installation, on ne l’installait plus comme partie tierce, contrairement avec la version
2012, il est recommandé de télécharger cet outil enfin de l’utiliser
(http://www.sap.com/cmp/td/sap-Crystal-report-visual-studio) après son téléchargement,
vous passez à son installation, ce n’est qu’après qu’il pourra figurer parmi les outils Visual
Basic.Net, on l’utilise comme n’importe quel outil

Pour son utilisation, nous pensons vous faire plus comprendre lors des explications à
l’auditoire (on vous épargne des plusieurs détails qui paraitront superflus jusqu’ ici)

p. 9
CODE DE DATAGRIDVIEW

Imports System.Data.OleDb
Imports System.Data

Public Class Form2


'DECLARATION DES ATTRIBUTS
'Variable permettant de me connecter à ma base des données
Dim inscript As New OleDbConnection
'Objet dataset pour la structure de la base des données
Dim jeued As New DataSet
'DataAdapter pour recevoir les données de la Base de données et les mettre dans le
Dataset
Dim adapis As OleDbDataAdapter
Dim max, x As Integer
'CHARGEMENT DE LA FENETE

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load


'TODO: This line of code loads data into the 'IsaacDataSet.Isra' table. You
can move, or remove it, as needed.
Me.IsraTableAdapter.Fill(Me.IsaacDataSet.Isra)
inscript.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; data source="
& Application.StartupPath & "\Isaac.accdb"
inscript.Open()
adapis = New OleDbDataAdapter("select*from Isra", inscript)
adapis.Fill(jeued, "Isra")
x = 0
max = jeued.Tables("Isra").Rows.Count
'Affecterdonnees()
inscript.Close()
'Affectation des données dans notre DataGridView se trouvant au formulaire
DataGridView1.DataSource = jeued.Tables("Isra")

End Sub

Private Sub DataGridView1_CellContentClick(sender As Object, e As


DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

End Sub

Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles


Button2.Click
' Me.Hide()
Rapport_Etudiant.Show()
End Sub
End Class

p. 10
Lorsqu’on clic sur Rapport, voici ce que nous avons comme résultat

Ci-dessous le rapport qu’on peut imprimer, reprenant nos étudiants enregistrés

Nous sommes arrivés à la fin de notre étude qui avait pour but principal, initier l’étudiant aux
bases de la programmation VB.net ayant pour SGBD (Système de Gestion de Base de données)
Access, nous pensons avoir fait l’essentiel et former le socle pour vous étudiants, à vous la
suite.

Meilleure compréhension

p. 11

Vous aimerez peut-être aussi