VB 2005 et creation de base Access
nino2
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour 8-)
voici le code qui pose problème
Donc ça correspond au bouton enregistrer du programme ... il me demande bien quel nom donner à la base, mais il bloque sur la ligne en gras, a savoir "catX.create("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & databasename & ".mdb")" où il me dit (lorsque je mets le nom de la base et que je fais ok) Classe non enregistrée (avec le titre "L'exception COMException n'a pas été gérée").
J'ai bien ajoute la reference MICROSOFT ADO ext 2.8 for dll and security ...et je possede VB 2005 pro sp1 sous windows 7. Pour info, j'ai telecharge la version 2CD de MSDNAA, pas la version DVD, ca viendrait peut etre de la?!
Si vous avez des idées ...
Merci :)
voici le code qui pose problème
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click 'CREATE BASE Dim tableName As String = "Table" ' Il faut ajouter la reference MICROSOFT ADO ext 2.8 for dll and security ' déjà fait ! il faut rajouter si non fait -> project Ad reference dans le MENU Dim databasename As String databasename = InputBox("Nom de cette nouvelle base (elle sera créée à la racine du C:)") Dim catX = New ADOX.Catalog catX.create("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & databasename & ".mdb") MsgBox("Bravo. Cette base a bien été créée !") Me.Text = "dernière base créée : " & databasename catX = Nothing ' Part 2: Creation des Tables en utilisant OLEDB Provider Dim con As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & databasename & ".mdb") con.Open() ' ouverture de la creation des tables 'Get database schema Dim dbSchema As DataTable = con.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, tableName, "TABLE"}) con.Close() ' If the table exists, the count = 1 If dbSchema.Rows.Count > 0 Then ' do whatever you want to do if the table exists Else 'do whatever you want to do if the table does not exist ' e.g. create a table Dim cmd As New OleDb.OleDbCommand("CREATE TABLE [" + tableName + "] ([NOM] TEXT(10), [PRENOM] TEXT(10))", con) con.Open() cmd.ExecuteNonQuery() MessageBox.Show("Tables bien créées") con.Close() End If End Sub
Donc ça correspond au bouton enregistrer du programme ... il me demande bien quel nom donner à la base, mais il bloque sur la ligne en gras, a savoir "catX.create("Provider=Microsoft.Jet.OLEDB.4.0;data source=" & databasename & ".mdb")" où il me dit (lorsque je mets le nom de la base et que je fais ok) Classe non enregistrée (avec le titre "L'exception COMException n'a pas été gérée").
J'ai bien ajoute la reference MICROSOFT ADO ext 2.8 for dll and security ...et je possede VB 2005 pro sp1 sous windows 7. Pour info, j'ai telecharge la version 2CD de MSDNAA, pas la version DVD, ca viendrait peut etre de la?!
Si vous avez des idées ...
Merci :)
A voir également:
- VB 2005 et creation de base Access
- Money 2005 - Télécharger - Comptabilité & Facturation
- Base de registre - Guide
- Creation de compte google - Guide
- Creation de site web - Guide
- Creation compte gmail - Guide
3 réponses
bonjour,
Si on veut absolument créer une BD Access par code, il faut passer par DAO.
Référence: ajouter le composant COM 'Microsoft DAO 3.6 Library 5'
Imports DAO
Imports DAO.LanguageConstants
Dim result As Boolean = False
Dim dbe As New DBEngine
Dim db As Database
Try
db = dbe.CreateDatabase("c:\test.mdb", dbLangGeneral)
If Not (db Is Nothing) Then result = True
Catch ex As Exception : MsgBox(ex.Message)
Finally : If Not (db Is Nothing) Then db.Close()
End Try
Si on veut absolument créer une BD Access par code, il faut passer par DAO.
Référence: ajouter le composant COM 'Microsoft DAO 3.6 Library 5'
Imports DAO
Imports DAO.LanguageConstants
Dim result As Boolean = False
Dim dbe As New DBEngine
Dim db As Database
Try
db = dbe.CreateDatabase("c:\test.mdb", dbLangGeneral)
If Not (db Is Nothing) Then result = True
Catch ex As Exception : MsgBox(ex.Message)
Finally : If Not (db Is Nothing) Then db.Close()
End Try
Salut
merci pour ta réponse
J'ai essayé ton code dans un projet à part, et il me retourne une erreur "La récupération de la fabrique de classe COM pour le composant avec le CLSID {00000100-0000-0010-8000-00AA006D2EA4} a échoué en raison de l'erreur suivante : 80040154." sur la ligne
Merci pour ton aide =)
merci pour ta réponse
J'ai essayé ton code dans un projet à part, et il me retourne une erreur "La récupération de la fabrique de classe COM pour le composant avec le CLSID {00000100-0000-0010-8000-00AA006D2EA4} a échoué en raison de l'erreur suivante : 80040154." sur la ligne
Dim dbe As New DBEngine
Merci pour ton aide =)