Erreur création base Access [Résolu]

Signaler
Messages postés
71
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
27 novembre 2017
-
Messages postés
71
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
27 novembre 2017
-
Bonjour, je suis en train de mettre en place une architecture n-tiers avec visual studio 2012.

J'ai donc un projet IHM, un projet DAL + 2 autres projet

Je voudrais que au premier lancement de mon application une base Access se crée mais j'ai un message d'erreur qui indique "Erreur création base, classe non enregistrée"

IHM
Imports DAL

Public Class Accueil

    'objet Connexion
    Private connect As New Connexion

    Private Sub Accueil_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Try
            If connect.verif_chemin() = False Then
                'MessageBox.Show("azerty")
                connect.Create_base("a", "z")
            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, ".:: ERREUR", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
        
    End Sub
End Class


DAL
' Ajout référence : Microsoft ADO Ext. 2.8 for DDL and Security
Imports ADOX

Public Class Connexion

#Region "Attributs"

    'chemin de la base
    Private chemin As String = My.Application.Info.DirectoryPath & "\DataBase.accdb"
    'connexion à la BD
    Private cnx As OleDb.OleDbConnection = Nothing
    'Attribut chaine de connection (fournisseur d'accès aux données + chemin)
    Private cnxstr As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & chemin & ";"

#End Region

#Region "Fonctions"

    ' test existance base
    Public Function verif_chemin() As Boolean
        Return System.IO.File.Exists(chemin)
    End Function

    'créer base
    Public Sub Create_base(pseudo As String, mdp As String)
        Try
            Dim Cat As New Catalog
            Dim chaine_cnx As String
            chaine_cnx = cnxstr & "User ID=" & pseudo & ";Password=" & mdp & ";"
            Cat.Create(chaine_cnx)
        Catch ex As Exception
            Throw New Exception("Erreur création base" & Environment.NewLine & ex.Message)
        End Try
    End Sub
#End Region

End Class


De plus j'ai déjà réalisé ce genre d'applications avec une visual basic 2010 et je n'avais pas eu de problème particulier.

4 réponses

Messages postés
71
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
27 novembre 2017

En faite ma chaine de connexion n'était pas bonne maintenant sa marche je met l'info pour les futurs chercheurs. J'utilise Visual Studio 2012 & Access 2010.

'Ajout référence COM : Microsoft DAO 3.6 Library 5
Imports ADOX

Public Class Connexion

#Region "Attributs"

    'chemin de la base
    Private chemin As String = My.Application.Info.DirectoryPath & "\DataBase.accdb"
    'connexion à la BD
    Private cnx As OleDb.OleDbConnection = Nothing
    'Attribut chaine de connection (fournisseur d'accès aux données + chemin)
    Private cnxstr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & chemin

#End Region

#Region "Fonctions"
    ' test existance base
    Public Function verif_chemin() As Boolean
        Return System.IO.File.Exists(chemin)
    End Function

    'créer base
    Public Sub Create_base(pseudo As String, mdp As String)
        Try
            Dim cat As New Catalog
            cat.Create(cnxstr)
        Catch ex As Exception
            Throw New Exception("Erreur création base" & Environment.NewLine & ex.Message)
        End Try
    End Sub
#End Region
End Class

Messages postés
14800
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 juin 2021
156
Bonjour,

Essayes de créer une "connexion" pour une base Access, un Cataloque, c'est plus pour SqlServer, non ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
71
Date d'inscription
jeudi 7 juillet 2011
Statut
Membre
Dernière intervention
27 novembre 2017

En faite, j'ai trouvé la solution grâce aux cours de Plasserre :
http://plasserre.developpez.com/cours/vb-net/?page=bases-donnees3#LXVII-G-1

De plus, je met mon code si sa peux aider :
'Ajout référence COM : Microsoft DAO 3.6 Library 5
Imports DAO
Imports DAO.LanguageConstants

Public Class Connexion

#Region "Attributs"

    'chemin de la base
    Private chemin As String = My.Application.Info.DirectoryPath & "\DataBase.accdb"

#End Region

#Region "Fonctions"

    ' test existance base
    Public Function verif_chemin() As Boolean
        Return System.IO.File.Exists(chemin)
    End Function

    'créer base
    Public Sub Create_base(pseudo As String, mdp As String)
        Try
            Dim dbe As New DBEngine

            Dim db As Database
            db = dbe.CreateDatabase(chemin, dbLangGeneral)
        Catch ex As Exception
            Throw New Exception("Erreur création base" & Environment.NewLine & ex.Message)
        End Try
    End Sub
#End Region
End Class


Par contre, je n'ai pas trouvé si je voudrai créer un base protégé par un mot de passe ? si quelqu'un à un exemple ou un lien ? merci
Messages postés
14800
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
19 juin 2021
156
Bonjour,

1 grosse remarque :
Évites DAO, il n'est plus maintenu et ADO est son remplaçant.
Utilises plutôt ADO.NET (déclinaison de ADO pour .NET)

http://www.vbfrance.com/codes/ACCESS-VB-NET_33198.aspx

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site