VB et Access - Probléme table (OleDb)

Signaler
Messages postés
2
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
13 mars 2010
-
Messages postés
2
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
13 mars 2010
-
Bonjour, je suis nouveau sur le site et c'est ma .... 20éme recherche ^^
Bon voila, j'ai un problème avec mon code (je vous le met et explique ce qui cloche en dessous ;))


Imports System.Data.OleDb
Imports ADOX

Public Class BDD

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' CREATION de la Base
        Dim i As Integer = 1
        Dim NomBase As String = "Bulletin" ' <=> Tablename
        Dim databasename As String

        If (i > 0) Then
            databasename = InputBox("Quel est le nom de la base ? ( Elle sera enregistrée sous le D:\ )")
            Label2.Text = databasename
            If (databasename <> "") Then

                Dim catX = New ADOX.Catalog
                catX.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:" & databasename & ".mdb")
                MsgBox("La base a bien été crée !")
                catX = Nothing

                ' Creation des Tables
                Dim table1 As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =D:" & databasename & ".mdb")
                ' <=> con

                table1.Open()
                Dim dbSchema As DataTable = table1.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, NomBase, "TABLE"})
                table1.Close()

                If dbSchema.Rows.Count > 0 Then

                Else
                    If dbSchema.Rows.Count > 0 Then
                        ' On fait se que l'on veut
                    Else
                        ' e.g. create a table  
                        Dim cmd As New OleDb.OleDbCommand("CREATE TABLE [" + NomBase + "] ([NOM] TEXT(10), [PRENOM] TEXT(10), [MATIERE] TEXT(10), [MOYENNE] DOUBLE)", table1)
                        table1.Open()
                        cmd.ExecuteNonQuery()
                        MessageBox.Show("Tables bien créées")
                        table1.Close()
                        i = 0
                    End If
                End If
            End If
        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'AJOUTER 
        Dim cn As OleDbConnection
        Dim cmd As OleDbCommand
        Dim dr As OleDbDataReader
        Dim icount As Integer
        Dim nom, prenom As String

        Try
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:" & Label2.Text & ".mdb;")
            cn.Open()
            nom = GestionBul.TextBox1.Text
            prenom = GestionBul.TextBox2.Text
            If (nom <> "NR") Then

                'string stores the command and CInt is used to convert number to string
                cmd = New OleDbCommand("insert into Bulletin : table1 values('" & nom & "','" & prenom & "')", cn)
                MsgBox("Les informations ont été ajoutés", MsgBoxStyle.OkOnly, "Info")
                icount = cmd.ExecuteNonQuery
            End If
            MessageBox.Show(icount)
            cn.Close()
        Catch
        End Try
    End Sub
End Class


Alors voila, la création de la base se passe bien, aucun problème à ce niveau.
Cependant, c'est lors de l'ajout que sa ne marche pas et je ne comprend pas pourquoi car je n'ai pas d'erreurs dans mon code =/
J'ai l'impression que sa n'ouvre même pas la BDD car les tables restent vierges !

Si quelqu'un peu m'aider la dessus, c'est avec plaisir :)

3 réponses

Messages postés
12
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
10 mars 2010

En gros tu veut créer une base de données puis des tables et des colonnes dedans *sa ça marche *

mais ensuite tu veut ajouter des valeurs et la sa ne veut pas ??

tu a vérifié si ta base été construite comme tu le voulais ??
Messages postés
12
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
10 mars 2010

a mon avis, il faut que tu établisse une connexion entre ton projet VB et ta base de données aprés.
c'est pas le tout de la créer il faut ensuite la linker, moi je le fait manuellement aprés en ligne de code je ne saurais pas te dire ....
Messages postés
2
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
13 mars 2010

J'ai une bonne nouvelle, sa marche
le problème venais de la :
 Dim NomBase As String = "Bulletin" '

Je ne sais pas pourquoi, mais je suis obligé de mettre table1 pour que sa marche, même si par la suite j'utilise bien NomBase pour modifier .... C'est louche ^^

Sinon, oui je crée une base de donné, les tables, je peux les modifier, les lister, ajouter et supprimer dedans sans problèmes !
Reste la récupération à faire mais j'ai déjà le projet en tête !

J'ai pas vérifier si il y avait un tuto simple pour créer une base rapidement, s'il n'y a pas je peux en faire une toute bête que les débutants comprendront ;)


Merci d'avoir répondus !