Problème Création Base de donnée

Résolu
XERT Messages postés 3 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 24 octobre 2008 - 24 oct. 2008 à 11:11
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009 - 24 oct. 2008 à 15:43
Bonjour tout le monde, je suis un novice en VB mais j'ai besoin de faire appel à DAO pour créer une base de donnée et l'éditer.

Voici mon Code :

Imports dao
Imports dao.LanguageConstants

Public Class Form2

    Private Sub create_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles create.Click

        Dim DBFilename As String = "C:\base trading bar\test.mdb"
        Dim db As DAO.Database
        Dim wrk As DAO.Workspace

        wrk = DBEngine.Workspaces(0)

        db = wrk.CreateDatabase(DBFilename, dbLangGeneral)
        db.Execute("CREATE TABLE " & nom_boisson1.Text & " ( Id_commande INTERGER NOT NULL PRIMARY KEY);")
        db.Execute("INSERT INTO " & nom_boisson1.Text & " ( Id_Commande ) values ('1');")
        db.Close()
        db = Nothing
        wrk = Nothing

    End Sub
End Class

J'ai ajouter la réference DAO 3.6 mais malgrès cela j'ai une erreur à la ligne "wrk = DBEngine.Workspaces(0)" il ne passe pas dans le compilateur. VB me marque "Une référence à un membre non partagé requiert une référence d'objet."

Pouvez-vous m'aider s'il-vous-plaît ?

PS : Pour ce qui se pose des questions, ca fait 3 jours que je fais des recherces et à chaqe fois que je trouve une solution, je tombe soit sur ce type d'erreur, soit sur une erreur lors de la création de la base.

5 réponses

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
24 oct. 2008 à 14:57
Bonjour,

J'ai une question. Pourquoi tu utilise du DAO? pourquoi ne pas utiliser de l'ADO???
En DAO j'ai trouvé ceci :
Sub CreateDatabaseX()

   Dim wrkDefault As Workspace
   Dim dbsNew As DATABASE
   Dim prpLoop As Property

   ' Obtient l'objet Workspace par défaut.
   Set wrkDefault =  DBEngine.Workspaces(0)

   ' Vérifie qu'aucun fichier ne porte le nom de la 
   ' nouvelle 
   ' base de données.
   If Dir("NewDB.mdb") <> "" Then Kill "NewDB.mdb"

   ' Crée une nouvelle base de données cryptée avec 
   ' l'ordre de classement précisé.
   Set dbsNew = wrkDefault.CreateDatabase("NewDB.mdb", _
      dbLangGeneral, dbEncrypt)

   With dbsNew
      Debug.Print "Propriétés de " &amp; .Name
      ' Énumère la collection Properties du nouvel 
      ' objet Database.
      For Each prpLoop In .Properties
         If prpLoop <> "" Then Debug.Print "  " &amp; _
            prpLoop.Name &amp; " = " &amp; prpLoop
      Next prpLoop
   End With

   dbsNew.Close

End Sub


Et sur Workspaces j'ai trouvé ceci :
Cet exemple utilise la méthode CreateWorkspace pour créer un [mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VSa\1036\dao351.chm::/dadefn03_6izp.htm espace de travail ODBCDirect]. Il dresse ensuite la liste des propriétés de ce type d'espaces de travail.

Sub CreateWorkspaceX()

   Dim wrkODBC As Workspace
   Dim wrkLoop As Workspace
   Dim prpLoop As Property

   ' Crée un espace de travail ODBCDirect. Tant 
   ' qu'un 
   ' espace de travail Microsoft Jet n'est pas 
   ' créé, le moteur de base de données Microsoft Jet 
   ' n'est pas chargé en mémoire.
   Set wrkODBC  = CreateWorkspace("ODBCWorkspace", "admin", _
      "", dbUseODBC)
   Workspaces.Append wrkODBC

   ' Énumère les éléments de la collection Workspaces.
   Debug.Print "Objets Workspace " &amp; _
      " dans la collection Workspaces:"
   For Each wrkLoop In Workspaces
      Debug.Print "  " &amp; wrkLoop.Name
   Next wrkLoop

   With wrkODBC
      ' Énumère les éléments de la collection 
      ' Properties de l'espace de travail 
      ' ODBCDirect.
      Debug.Print "Propriétés de" &amp; .Name
      On Error Resume Next
      For Each prpLoop In .Properties
         Debug.Print "  " &amp; prpLoop.Name &amp; " = " &amp; prpLoop
      Next prpLoop
      On Error GoTo 0
   End With

   wrkODBC.Close
End Sub


Bon courage

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
3
XERT Messages postés 3 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 24 octobre 2008
24 oct. 2008 à 15:04
Bonjour,

Merci pour ton conseil, j'ai déjà trouver la solution en ADO.

Maintenant je me heurte à un autre problème du à Visual Basic 2005

Sur mon projet principal il me met pour ABODB.connection "connection" est ambigüe dans l'espace de nom ADOBD et ca pour tout les propriété de ABOBD alors que sur un autre projet ça passe tout seul.

Des idées?

Merci d'avance.
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
24 oct. 2008 à 15:20
Re:

Tu travailles sur vb6 ou sur 2005? Je comprends plus la...
pour ta question le mot clé n'est pas mal orthographié??? il me semble (pas certaine) que c'est connexion

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
XERT Messages postés 3 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 24 octobre 2008
24 oct. 2008 à 15:39
Re,

Je suis en VB6, je viens d'enlever la réference adodb et maintenant il me le prend donc tout va bien pour l'instant.

Merci de m'avoir répondu.

A plus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
24 oct. 2008 à 15:43
De rien... n'oubli pas de valider la ou les réponses qui t'ont aidées...

S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
Rejoignez-nous