none
probleme de remplissage de ma base access RRS feed

  • Question

  • Bonjour,
    je suis entrain de développer une application avec visual Studio 2010 en utilisant la langage VB.net
    mon problème est  en remplissant ma base access que j'ai créer avec vb2010 un message d'erreur  vient d'apparaitre

    voici mon code de remplissage :

      Public Sub remplissage()
            Dim dtt As DataTable = New DataTable("Societé")
            Dim dtr As DataRow
            Dim cnx As OleDbConnection
            Dim cmd As OleDbCommand
            Dim dta As OleDbDataAdapter
            Dim dts As New DataSet
            Dim sql As String
            Dim cnxstr As String
            Dim cmdb As OleDbCommandBuilder
            Dim bs As New BindingSource
            cnxstr = "provider = microsoft.jet.oledb.4.0 ; data source = " & Application.StartupPath & "\" & Ajouter_Societé.txtRS.Text & "\" & Ajouter_Societé.txtRS.Text & "_" & Ajouter_Societé.txtExercice.Text & ".mdb" & ";" & "Persist Security Info=False"
            cnx = New OleDbConnection
            cnx.ConnectionString = cnxstr
            cnx.Open()
            sql = "SELECT * FROM Societé"
            cmd = New OleDbCommand(sql)
            dta = New OleDbDataAdapter(cmd)
            cmd.Connection() = cnx
            dts.Clear()
            cmdb = New OleDbCommandBuilder(dta)
            dta.Fill(dts, "Societé")
            dtt = dts.Tables("Societé")
            dtr = dts.Tables("Societé").NewRow
            With dtr
                .Item("Code") = Ajouter_Societé.txtCode.Text
                .Item("RaisonSociale") = Ajouter_Societé.txtRS.Text
                .Item("Adresse") = Ajouter_Societé.txtAdr.Text
                .Item("Ville") = Ajouter_Societé.TxtVille.Text
                .Item("Tel") = Ajouter_Societé.txtTel.Text
                .Item("Fax") = Ajouter_Societé.txtFax.Text
                .Item("Resp") = Ajouter_Societé.txtResp.Text
                .Item("RC") = Ajouter_Societé.txtRC.Text
                .Item("TVA") = Ajouter_Societé.txtTVA.Text
                .Item("SS") = Ajouter_Societé.txtSS.Text
                .Item("CNSS") = Ajouter_Societé.txtCNSS.Text
                .Item("NBPay/An") = Ajouter_Societé.TxtPayAn.Text
                .Item("DroitCongé/mois") = Ajouter_Societé.txtCongé.Text
                .Item("NBJoursTravail/mois") = Ajouter_Societé.txtJtrv.Text
                .Item("ConjéOuvrableO / N") = Ajouter_Societé.txtConjéouvr.Text
                .Item("Arrondi") = Ajouter_Societé.txtArrondi.Text
                .Item("Exercice") = Ajouter_Societé.txtExercice.Text
                .Item("CalculImpot") = Ajouter_Societé.TxtCalculImp.Text
                .Item("AccidentTravail") = Ajouter_Societé.txtAccTrv.Text
                .Item("N°Cavis") = Ajouter_Societé.txtNCavis.Text
                .Item("N°CNRPS") = Ajouter_Societé.txtCNRPS.Text
            End With
            dts.Tables("Societé").Rows.Add(dtr)
            cmdb = New OleDbCommandBuilder(dta)
    
            dta.Update(dts, "Societé")
    
            dts.Clear()
            dta.Fill(dts, "Societé")
            dtt = dts.Tables("Societé")
            dtt.Rows.Add(dtr)
            dtr = dtt.NewRow()
        End Sub

    ainsi le code dont j'ai utiliser pour la création de la base

     Public Sub inserer_base()
            Dim tbName As String = "Societé"
    
            Dim ADOXcatalog As New ADOX.Catalog
            Dim ADOXtable As New ADOX.Table
            Dim con As ADODB.Connection = Nothing
            ADOXcatalog = New ADOX.Catalog
            If Ajouter_Societé.txtRS.Text = "" Or Ajouter_Societé.txtExercice.Text = "" Then
                MsgBox(" Le nom de la societé contient au moins un caractère", MsgBoxStyle.Exclamation, "Raison Sociale")
                MsgBox("La saisie de l'exercice est obligatoire", MsgBoxStyle.Exclamation, "Exercice")
                Exit Sub
    
            ElseIf System.IO.Directory.Exists(Application.StartupPath & "\" & Ajouter_Societé.txtRS.Text) Then
                MsgBox(" Cette Societé existe dejà", ) 'startPosition = FormStartPosition.CenterScreen
                Exit Sub
            Else
                My.Computer.FileSystem.CreateDirectory(Application.StartupPath & "\" & Ajouter_Societé.txtRS.Text)
                ADOXcatalog.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Application.StartupPath & "\" & Ajouter_Societé.txtRS.Text & "\" & Ajouter_Societé.txtRS.Text & "_" & Ajouter_Societé.txtExercice.Text & ".mdb" & ";")
                  End If
            ADOXtable = New ADOX.Table
            ADOXtable.Name = tbName
            ADOXtable.Columns.Append("Id", ADODB.DataTypeEnum.adInteger)
            ADOXtable.Columns.Append("Code", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("RaisonSociale", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("Adresse", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("Ville", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("Tel", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("Fax", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("Resp", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("RC", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("TVA", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("SS", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("CNSS", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("NBPay/An", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("DroitCongé/mois", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("NBJoursTravail/mois", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("ConjéOuvrableO / N", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("Arrondi", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("Exercice", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("CalculImpot", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("AccidentTravail", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("N°Cavis", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXtable.Columns.Append("N°CNRPS", ADODB.DataTypeEnum.adVarWChar, 40)
            ADOXcatalog.Tables.Append(ADOXtable)
            ADOXtable = Nothing
            ADOXcatalog = Nothing
            con = Nothing


    et à ce qui suite c l’étonnant erreur qui me casse les pieds



    • Modifié bolbolhari mardi 10 septembre 2013 16:25 modif
    mardi 10 septembre 2013 16:22

Réponses

  • Bonjour,

    Je me demande si ce n'est pas les colonnes qui contiennent un "/" qui pose problème...

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse bolbolhari jeudi 12 septembre 2013 10:52
    mardi 10 septembre 2013 23:54
    Modérateur

Toutes les réponses

  • Bonjour,

    Je me demande si ce n'est pas les colonnes qui contiennent un "/" qui pose problème...

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse bolbolhari jeudi 12 septembre 2013 10:52
    mardi 10 septembre 2013 23:54
    Modérateur
  • Bonjour,

    Les détails ne vous donnent-il pas plus d'informations ?

    mercredi 11 septembre 2013 06:18
  • Bonjour

    Comme  Gilles TOURREAU a déjà dit, le plus probable le problème c'est avec les noms des colonnes. Utilisez une manière : [Nom colonne] pour vous assurer que le problème n’est pas ici. 

    De l’autre cote c’est mieux d’éviter les caractères spéciaux dans les noms (voir DroitCongé/mois, N°Cavis). Vous avez le champ description ou vous pouvez ajouter plusieurs détails. Comme ça vous évitez des erreurs et simplifiez les requetés SQL.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    mercredi 11 septembre 2013 07:10