Insérer un enregistrement dans une table access/erreur INSERT INTO [Résolu]

Largo357 9 Messages postés mardi 1 juillet 2008Date d'inscription 29 juillet 2008 Dernière intervention - 11 juil. 2008 à 17:19 - Dernière réponse : 3dworkerz 2 Messages postés mardi 12 septembre 2006Date d'inscription 27 décembre 2008 Dernière intervention
- 27 déc. 2008 à 16:00
Afficher la suite 

Votre réponse

7 réponses

cs_soukaina19 29 Messages postés mardi 25 septembre 2007Date d'inscription 23 avril 2010 Dernière intervention - 15 juil. 2008 à 23:52
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_soukaina19
Largo357 9 Messages postés mardi 1 juillet 2008Date d'inscription 29 juillet 2008 Dernière intervention - 11 juil. 2008 à 17:22
0
Utile
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
Commenter la réponse de Largo357
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 11 juil. 2008 à 18:23
0
Utile
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)
Commenter la réponse de cs_Jack
Largo357 9 Messages postés mardi 1 juillet 2008Date d'inscription 29 juillet 2008 Dernière intervention - 12 juil. 2008 à 14:17
0
Utile
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
Commenter la réponse de Largo357
Largo357 9 Messages postés mardi 1 juillet 2008Date d'inscription 29 juillet 2008 Dernière intervention - 20 juil. 2008 à 22:26
0
Utile
Merci beaucoup !
J'aurais pu chercher encore longtemps sans ton aide !

A charge de revanche,
Largo
Commenter la réponse de Largo357
tarekmrini 2 Messages postés dimanche 6 août 2006Date d'inscription 25 août 2008 Dernière intervention - 25 août 2008 à 13:32
0
Utile
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
Commenter la réponse de tarekmrini
3dworkerz 2 Messages postés mardi 12 septembre 2006Date d'inscription 27 décembre 2008 Dernière intervention - 27 déc. 2008 à 16:00
0
Utile
Merci (ça m'apprendra a travailler avec Access) !!!
Commenter la réponse de 3dworkerz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.