Guide : Comment ouvrir une base de données Access 2010 avec VB.NET
Ce guide explique étape par étape comment ouvrir une base de données Access 2010 (.accdb) dans VB.NET en utilisant ADO.NET.
Prérequis
- Access Database Engine :
Téléchargez et installez le moteur de base de données Access compatible avec votre version d’Office (32 ou 64 bits).
Lien : Access Database Engine - Projet VB.NET :
Créez un projet VB.NET dans Visual Studio. - Références nécessaires :
Assurez-vous que la référence àSystem.Data.OleDb
est ajoutée à votre projet.
Étape 1 : Connexion à une base Access 2010
Voici un exemple simple pour ouvrir une connexion à une base de données Access.
Exemple de code
Imports System.Data.OleDb
Module Module1
Sub Main()
' Chemin vers le fichier Access (.accdb)
Dim cheminBase As String = "C:\Chemin\Vers\VotreBase.accdb" ' Modifiez avec le chemin de votre fichier
' Chaîne de connexion pour Access 2010 et plus
Dim chaineConnexion As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={cheminBase};Persist Security Info=False;"
' Créer une connexion à la base
Using connexion As New OleDbConnection(chaineConnexion)
Try
' Ouvrir la connexion
connexion.Open()
Console.WriteLine("Connexion réussie à la base de données !")
' Exemple de requête SQL pour lire des données
Dim requete As String = "SELECT * FROM VotreTable" ' Remplacez "VotreTable" par le nom de votre table
' Exécuter la commande
Using commande As New OleDbCommand(requete, connexion)
Using lecteur As OleDbDataReader = commande.ExecuteReader()
While lecteur.Read()
' Lire et afficher les données
Console.WriteLine(lecteur("NomColonne")) ' Remplacez "NomColonne" par le nom d'une colonne
End While
End Using
End Using
Catch ex As Exception
' Gérer les erreurs
Console.WriteLine("Erreur : " & ex.Message)
Finally
' Fermer la connexion
connexion.Close()
Console.WriteLine("Connexion fermée.")
End Try
End Using
' Pause pour voir les résultats
Console.ReadLine()
End Sub
End Module
Étape 2 : Explications
- Chaîne de connexion :
- Le fournisseur utilisé est
Microsoft.ACE.OLEDB.12.0
pour les fichiers Access 2010 et plus. - Remplacez
"C:\Chemin\Vers\VotreBase.accdb"
par le chemin de votre fichier Access.
- Le fournisseur utilisé est
- Requête SQL :
- Modifiez
"SELECT * FROM VotreTable"
pour interroger les données que vous souhaitez afficher.
- Modifiez
- Lecture des données :
- La méthode
ExecuteReader
permet de lire les données ligne par ligne dans la table.
- La méthode
Étape 3 : Ajouter des données dans la base
Vous pouvez insérer des données dans la base Access en utilisant une requête SQL INSERT
.
Exemple de code pour insérer des données
Dim requeteInsertion As String = "INSERT INTO VotreTable (Colonne1, Colonne2) VALUES ('Valeur1', 'Valeur2')"
' Remplacez "VotreTable", "Colonne1", "Colonne2", et les valeurs par vos données
Using commande As New OleDbCommand(requeteInsertion, connexion)
commande.ExecuteNonQuery()
Console.WriteLine("Données insérées avec succès !")
End Using
Étape 4 : Points à vérifier
- Version 32 ou 64 bits :
Assurez-vous que la version de votre projet VB.NET correspond à celle du moteur Access (32 ou 64 bits).
Pour vérifier : Allez dans Propriétés du projet > Compiler > Plateforme cible. - Base protégée par un mot de passe :
Si votre base Access est protégée par un mot de passe, ajoutez cette propriété à la chaîne de connexion :Jet OLEDB:Database Password=VotreMotDePasse;
- Erreurs courantes :
- Si vous obtenez une erreur
Provider not registered
, installez le runtime Microsoft Access Database Engine.
- Si vous obtenez une erreur
Étape 5 : Résultat attendu
Lors de l’exécution :
- Si la connexion est réussie, les données de la table Access s’afficheront dans la console.
- Si vous utilisez la requête d’insertion, les nouvelles données seront ajoutées dans la table.
Exemple Complet
Lire et insérer des données
Voici un exemple combinant lecture et insertion.
Imports System.Data.OleDb
Module Module1
Sub Main()
Dim cheminBase As String = "C:\Chemin\Vers\VotreBase.accdb"
Dim chaineConnexion As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={cheminBase};Persist Security Info=False;"
Using connexion As New OleDbConnection(chaineConnexion)
Try
connexion.Open()
Console.WriteLine("Connexion réussie à la base de données.")
' Lire les données
Dim requeteLecture As String = "SELECT * FROM VotreTable"
Using commandeLecture As New OleDbCommand(requeteLecture, connexion)
Using lecteur As OleDbDataReader = commandeLecture.ExecuteReader()
Console.WriteLine("Données actuelles :")
While lecteur.Read()
Console.WriteLine(lecteur("NomColonne")) ' Remplacez "NomColonne" par votre colonne
End While
End Using
End Using
' Insérer des données
Dim requeteInsertion As String = "INSERT INTO VotreTable (Colonne1, Colonne2) VALUES ('NouvelleValeur1', 'NouvelleValeur2')"
Using commandeInsertion As New OleDbCommand(requeteInsertion, connexion)
commandeInsertion.ExecuteNonQuery()
Console.WriteLine("Nouvelle ligne insérée.")
End Using
Catch ex As Exception
Console.WriteLine("Erreur : " & ex.Message)
Finally
connexion.Close()
Console.WriteLine("Connexion fermée.")
End Try
End Using
Console.ReadLine()
End Sub
End Module
Avec ce guide, vous pouvez ouvrir, lire et manipuler une base de données Access 2010 avec VB.NET.
Voici quelques exemples pratiques pour travailler avec une base de données Access 2010 (.accdb) en VB.NET. Ces exemples couvrent différentes opérations comme l’ouverture, la lecture, l’insertion, la mise à jour et la suppression de données.
Exemple 1 : Ouvrir une base de données Access et lire toutes les lignes d’une table
Code
Imports System.Data.OleDb
Module Module1
Sub Main()
' Chemin vers le fichier Access
Dim cheminBase As String = "C:\Chemin\Vers\VotreBase.accdb"
Dim chaineConnexion As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={cheminBase};Persist Security Info=False;"
Using connexion As New OleDbConnection(chaineConnexion)
Try
connexion.Open()
Console.WriteLine("Connexion réussie.")
' Lire les données de la table "Clients"
Dim requete As String = "SELECT * FROM Clients"
Using commande As New OleDbCommand(requete, connexion)
Using lecteur As OleDbDataReader = commande.ExecuteReader()
While lecteur.Read()
Console.WriteLine($"ID: {lecteur("ID")}, Nom: {lecteur("Nom")}, Prénom: {lecteur("Prénom")}")
End While
End Using
End Using
Catch ex As Exception
Console.WriteLine("Erreur : " & ex.Message)
Finally
connexion.Close()
End Try
End Using
Console.ReadLine()
End Sub
End Module
Exemple 2 : Ajouter une nouvelle ligne dans une table
Code
Imports System.Data.OleDb
Module Module1
Sub Main()
' Chemin vers le fichier Access
Dim cheminBase As String = "C:\Chemin\Vers\VotreBase.accdb"
Dim chaineConnexion As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={cheminBase};Persist Security Info=False;"
Using connexion As New OleDbConnection(chaineConnexion)
Try
connexion.Open()
Console.WriteLine("Connexion réussie.")
' Ajouter une nouvelle ligne dans la table "Clients"
Dim requete As String = "INSERT INTO Clients (Nom, Prénom, Email) VALUES ('Dupont', 'Jean', 'jean.dupont@example.com')"
Using commande As New OleDbCommand(requete, connexion)
Dim lignesAffectees As Integer = commande.ExecuteNonQuery()
Console.WriteLine($"Nombre de lignes insérées : {lignesAffectees}")
End Using
Catch ex As Exception
Console.WriteLine("Erreur : " & ex.Message)
Finally
connexion.Close()
End Try
End Using
Console.ReadLine()
End Sub
End Module
Exemple 3 : Mettre à jour des données dans une table
Code
Imports System.Data.OleDb
Module Module1
Sub Main()
' Chemin vers le fichier Access
Dim cheminBase As String = "C:\Chemin\Vers\VotreBase.accdb"
Dim chaineConnexion As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={cheminBase};Persist Security Info=False;"
Using connexion As New OleDbConnection(chaineConnexion)
Try
connexion.Open()
Console.WriteLine("Connexion réussie.")
' Mettre à jour l'email d'un client spécifique
Dim requete As String = "UPDATE Clients SET Email = 'nouveau.email@example.com' WHERE ID = 1"
Using commande As New OleDbCommand(requete, connexion)
Dim lignesAffectees As Integer = commande.ExecuteNonQuery()
Console.WriteLine($"Nombre de lignes mises à jour : {lignesAffectees}")
End Using
Catch ex As Exception
Console.WriteLine("Erreur : " & ex.Message)
Finally
connexion.Close()
End Try
End Using
Console.ReadLine()
End Sub
End Module
Exemple 4 : Supprimer une ligne dans une table
Code
Imports System.Data.OleDb
Module Module1
Sub Main()
' Chemin vers le fichier Access
Dim cheminBase As String = "C:\Chemin\Vers\VotreBase.accdb"
Dim chaineConnexion As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={cheminBase};Persist Security Info=False;"
Using connexion As New OleDbConnection(chaineConnexion)
Try
connexion.Open()
Console.WriteLine("Connexion réussie.")
' Supprimer un client par ID
Dim requete As String = "DELETE FROM Clients WHERE ID = 2"
Using commande As New OleDbCommand(requete, connexion)
Dim lignesAffectees As Integer = commande.ExecuteNonQuery()
Console.WriteLine($"Nombre de lignes supprimées : {lignesAffectees}")
End Using
Catch ex As Exception
Console.WriteLine("Erreur : " & ex.Message)
Finally
connexion.Close()
End Try
End Using
Console.ReadLine()
End Sub
End Module
Exemple 5 : Utilisation de paramètres pour sécuriser les requêtes
Pourquoi utiliser des paramètres ?
Les paramètres sont essentiels pour éviter les attaques par injection SQL et pour rendre votre code plus dynamique.
Code
Imports System.Data.OleDb
Module Module1
Sub Main()
' Chemin vers le fichier Access
Dim cheminBase As String = "C:\Chemin\Vers\VotreBase.accdb"
Dim chaineConnexion As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={cheminBase};Persist Security Info=False;"
Using connexion As New OleDbConnection(chaineConnexion)
Try
connexion.Open()
Console.WriteLine("Connexion réussie.")
' Ajouter un nouveau client avec des paramètres
Dim requete As String = "INSERT INTO Clients (Nom, Prénom, Email) VALUES (@Nom, @Prenom, @Email)"
Using commande As New OleDbCommand(requete, connexion)
commande.Parameters.AddWithValue("@Nom", "Martin")
commande.Parameters.AddWithValue("@Prenom", "Paul")
commande.Parameters.AddWithValue("@Email", "paul.martin@example.com")
Dim lignesAffectees As Integer = commande.ExecuteNonQuery()
Console.WriteLine($"Nombre de lignes insérées : {lignesAffectees}")
End Using
Catch ex As Exception
Console.WriteLine("Erreur : " & ex.Message)
Finally
connexion.Close()
End Try
End Using
Console.ReadLine()
End Sub
End Module
Exemple 6 : Lire des données avec une recherche dynamique
Code
Imports System.Data.OleDb
Module Module1
Sub Main()
' Chemin vers le fichier Access
Dim cheminBase As String = "C:\Chemin\Vers\VotreBase.accdb"
Dim chaineConnexion As String = $"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={cheminBase};Persist Security Info=False;"
Using connexion As New OleDbConnection(chaineConnexion)
Try
connexion.Open()
Console.WriteLine("Connexion réussie.")
' Rechercher un client par nom
Dim requete As String = "SELECT * FROM Clients WHERE Nom = @Nom"
Using commande As New OleDbCommand(requete, connexion)
commande.Parameters.AddWithValue("@Nom", "Dupont")
Using lecteur As OleDbDataReader = commande.ExecuteReader()
While lecteur.Read()
Console.WriteLine($"ID: {lecteur("ID")}, Nom: {lecteur("Nom")}, Prénom: {lecteur("Prénom")}")
End While
End Using
End Using
Catch ex As Exception
Console.WriteLine("Erreur : " & ex.Message)
Finally
connexion.Close()
End Try
End Using
Console.ReadLine()
End Sub
End Module
Ces exemples montrent comment :
- Lire des données depuis une base Access.
- Ajouter, mettre à jour et supprimer des enregistrements.
- Utiliser des paramètres pour sécuriser les requêtes.