Insérer un enregistrement dans une table access/erreur INSERT INTO

Résolu
Largo357 Messages postés 9 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 29 juillet 2008 - 11 juil. 2008 à 17:19
3dworkerz Messages postés 2 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 27 décembre 2008 - 27 déc. 2008 à 16:00
A voir également:

7 réponses

cs_soukaina19 Messages postés 29 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 23 avril 2010
15 juil. 2008 à 23:52
slt ,
j'ai déja eu le méme probléme 
je l'ai regler . le probléme ce trouve dans la base de donnée tu doit verifier les noms des champ dans la base de donnée . moi j'ai trouver qu'un nom de champ été un mot clé pour access et quand je lui a changer tout a marché bien .verifi ca d'abord .
si nom voila le code ke j'utilise :

Tryligne = dset.Etudiants.NewRow
ligne("CNE") Me.adtxtcne.Textligne("CIN")
Me.adtxtcin.Textligne("Filiere") Me.adcombofil.Textligne("NumInsc")
Me.adtxtnuminsc.Textligne("Nom") Me.adtxtnompre.Textligne("DateNaiss")
Me.txtDateNaiss.Textligne("LieuNaiss") Me.adtxtlieu.Textligne("Nation")
Me.adtxtnati.Textligne("ProfPere") Me.adtxtprof.Textligne("Province")
Me.adtxtprov.Textligne("Adresse") Me.adrtxtadre.Textligne("SitFamiliale")

Me.adcombosit.Text

If
Me.adradiof.Checked
Thenligne("Sexe") = "F"

Elseligne("Sexe") = "M"

EndIfligne("Tel") Me.adtxttel.Textligne("TypeBac")
Me.adcombotypebac.Textligne("MentionBac") Me.adcombomention.Textligne("AcademieBac")
Me.adcomboaccdemie.Textligne("AnneeBac") Me.adtxtanne.Textligne("LyceeBac")
Me.adtxtlyce.Textligne("VilleBac") Me.adtxtville.Textligne("DateInscription")
Me.txtDateInsc.Textligne("Promotion") Me.adtxtpromo.Text()ligne("AnneeUniver")

Me.adtxtanneuniver.Textdset.Etudiants.AddEtudiantsRow(ligne)

'Pour modifier les valeurs changées dans le DataAdapterocommbuilder =

New OleDbCommandBuilder(daet)

'Mise à jourdaet.Update(dset.Etudiants.GetChanges)

dset.AcceptChanges()

MsgBox("Inscription effectuée!", MsgBoxStyle.Information)

Catch ex As Exception

MsgBox(ex.Message)

End Try
3
Largo357 Messages postés 9 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 29 juillet 2008 1
12 juil. 2008 à 14:17
Tout d'abord, merci pour ta réponse !
Je pense avoir les droits pour écrire dedans... je ne sais pas comment j'aurai pu désactiver ce droit d'ailleurs !
Voilà le texte exact de l'erreur, qui apparaît lors du débogage:

"L'exception OleDbException n'a pas été gérée:
Erreur de syntaxe dans l'instruction INSERT INTO"

Elle apparaît au niveau de       "dta.update(dts, "table")"

Je suis vraiment désespéré, please help !
Si vous avez une autre façon d'insérer des enregistrements dans une table access, je suis aussi preneur , cela me permetterait de contourner ce problème.

Merci encore,
Simon
1
Largo357 Messages postés 9 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 29 juillet 2008 1
11 juil. 2008 à 17:22
Bonjour !

Je code sur visual express 2008 depuis peu, et je suis en train de
m'arracher les cheveux car je n'arrive pas à trouver un code qui marche
pour insérer un enregistrement dans une table access. Pour la lecture, il
n'y a aucun problème, par contre, pour l'insertion, on m'affiche "Erreur de
syntaxe dans l'instruction INSERT INTO" au niveau de l'update du dataAdapter.

Voici mon code :

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports Microsoft.VisualBasic


 


Public Class Form1


    'Variables pour la connection et les requetes
    Dim Conn, sql As String
    'objet connection
    Dim Cnx As OleDbConnection
    'objet commande
    Dim cmd As OleDbCommand
    'objet dataadpter
    Dim dta As OleDbDataAdapter
    'contiendra la table
    Dim dts As New DataSet
    'contiendra la table
    Dim dtt As DataTable
    'position dans les enregistrement
    Dim rownum As Integer
    'Pour la saisie
    Dim dtr As DataRow
    'commande builder
    Dim cmdb As OleDbCommandBuilder




    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       
        Conn "provider microsoft.jet.oledb.4.0 ; data source = " & "C:\Documents and Settings\rob\Mes documents\chose\Stage\Stage\bdd\bdd\basedd.mdb;"
        'creation de l'objet connection
        Cnx = New OleDbConnection
        'connexion
        Cnx.ConnectionString = Conn
        Cnx.Open()
        'requete
        sql = "select table.* from [table]"
        cmd = New OleDbCommand(sql)
        dta = New OleDbDataAdapter(cmd)
        cmd.Connection() = Cnx


        'chargement de la base & etablissement des listes
        dta.Fill(dts, "table")
        dtt = dts.Tables("table")



'Jusqu'ici pas de problème. Je visualise les données de ma
'table dans un datagridview, et tout marche nickel




        'Creation de la nouvelle ligne dans le dtr
        dtr = dts.Tables("table").NewRow
        dtr("nom") = "truc"
        dtr("prénom") = "chose"
        dtr("remarque") = "machin"


        'Ajout dans le dataset
        dts.Tables("table").Rows.Add(dtr)


        'création et exécution du commandbuilder
        'pour mettre à jour le DataAdapter
        cmdb = New OleDbCommandBuilder(dta)


        'mise à jour des données du DataAdapter
        'à partir du commandbuilder
      dta.Update(dts, "table")
'c'est ici que l'erreur de syntaxe dans l'instruction INSERT INTO apparaît


        'on vide le dataset pour le recréer avec
        'les nouvelles données
        dts.Clear()
        dta.Fill(dts, "table")
        dtt = dts.Tables("table")


    End Sub


End Class

Voilà, j'ai beau chercher des explications sur le site, ceux qui ont codé de façon semblalble
à la mienne ne rencontrent pas de problème. Que dois-je faire à votre avis? (surtout que
je n'ai aucun "insert into" !!!!!)

Merci beacoup pour vos réponses,
Cordialement
Simon
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 juil. 2008 à 18:23
Salut
Erreur dans l'instruction "Insert Into" ?
Quel est le texte exact de cette erreur ?
Ce texte est-il en anglais, ce qui expliquerait que tu puisses rencontrer ce terme ?
Regarde du côté des droits d'accès à ta DB : As-tu le droit d'écrire dedans ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

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

Posez votre question
Largo357 Messages postés 9 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 29 juillet 2008 1
20 juil. 2008 à 22:26
Merci beaucoup !
J'aurais pu chercher encore longtemps sans ton aide !

A charge de revanche,
Largo
0
tarekmrini Messages postés 2 Date d'inscription dimanche 6 août 2006 Statut Membre Dernière intervention 25 août 2008
25 août 2008 à 13:32
Salam c'est tarek

merci les amis j'ai bon chercher le code pour se connecter a une base de donnee acces mais sans
resultat
mais grace a dieu et a vous j'ai ruéssi a finir le programme je vous remercie infinement
0
3dworkerz Messages postés 2 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 27 décembre 2008
27 déc. 2008 à 16:00
Merci (ça m'apprendra a travailler avec Access) !!!
0
Rejoignez-nous