Meilleur auteur de réponses
probleme de remplissage de ma base access

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'apparaitrevoici 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
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
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
-
-
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.