VB.NET

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

  1. 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
  2. Projet VB.NET :
    Créez un projet VB.NET dans Visual Studio.
  3. 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

  1. 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.
  2. Requête SQL :
    • Modifiez "SELECT * FROM VotreTable" pour interroger les données que vous souhaitez afficher.
  3. Lecture des données :
    • La méthode ExecuteReader permet de lire les données ligne par ligne dans la table.

É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

  1. 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.
  2. 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;
  3. Erreurs courantes :
    • Si vous obtenez une erreur Provider not registered, installez le runtime Microsoft Access Database Engine.

É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 :

  1. Lire des données depuis une base Access.
  2. Ajouter, mettre à jour et supprimer des enregistrements.
  3. Utiliser des paramètres pour sécuriser les requêtes.

Autres articles

Guide : Déclaration d’un objet en VB.NET...
VB.NET (Visual Basic .NET) est un langage orienté objet qui...
Read more
Guide : Afficher une miniature d’un fichier...
En VB.NET, il n’existe pas de méthode native pour afficher...
Read more
Fermer un Formulaire et Ouvrir un Autre...
Dans une application Windows Forms en VB.NET, il est courant...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *