IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Ajouter un enregistrement dans une base Access


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Ajouter un enregistrement dans une base Access
    Bonjour,

    Je suis entrain de programmer un petit programme qui nécessite une liaison
    avec une base de donnée Access. Pour cela j'utilise un DataSet qui fonctionne
    très bien mais lorsque je souhaite Ajouter une nouvelle ligne à la base j’obtiens une exception :
    Erreur de Syntaxe dans l'instruction INSERT INTO.
    Voici la partie du code qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Imports System
    Imports System.Data
    Imports System.Data.OleDb
    Imports Microsoft.VisualBasic
     
    'Déclaration DATASET
        Private ObjetConnection As OleDbConnection
        Private ObjetCommand As OleDbCommand
        Private ObjetDataAdapter As OleDbDataAdapter
        Private ObjetDataSet As New DataSet()
        Private strSql As String
        Private ObjetDataTable As DataTable
        Private ObjetDataRow As DataRow
        Private RowNumber As Integer
        Private strConn As String
        Private ObjetCommandBuilder As OleDbCommandBuilder
     
    'Ouverture DATASET
                strConn = "Provider=Microsoft.Ace.OLEDB.12.0;Data source=Muselets_VB.accdb"
                strSql = "SELECT * FROM Tbl_Donnees"
                ObjetConnection = New OleDbConnection(strConn)
                ObjetConnection.ConnectionString = strConn
                ObjetConnection.Open()
                ObjetCommand = New OleDbCommand(strSql)
                ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
                ObjetCommand.Connection() = ObjetConnection
                ObjetDataAdapter.Fill(ObjetDataSet, "Tbl_Donnees")
                ObjetDataTable = ObjetDataSet.Tables("Tbl_Donnees")
     
             Try
                'Creer nouvelle ligne
                ObjetDataRow = ObjetDataSet.Tables("Tbl_Donnees").NewRow()
                ObjetDataRow("Nom_Caps") = Me.Nom.Text
                ObjetDataSet.Tables("Tbl_Donnees").Rows.Add(ObjetDataRow)
     
                'Modifier les valeurs changées dans le DataAdapter
                ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
     
                'Mise à jour
                ObjetDataAdapter.Update(ObjetDataSet, "Tbl_Donnees") '// l’exception apparait ici
     
                'On vide le DataSet et on le 'recharge' de nouveau.
                ObjetDataSet.Clear()
                ObjetDataAdapter.Fill(ObjetDataSet, "Tbl_Donnees")
                ObjetDataTable = ObjetDataSet.Tables("Tbl_Donnees")
     
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    Pour résumer je n'arrive pas a crée une nouvelle ligne dans la BDD Access.
    En espérant que cela est suffisant pour pouvoir vous faire une idée précise de mon problème.
    Merci d'avance pour votre précieuse aide.

    Tmonn

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    J'ai l'impression qu'il y a sacrément trop de ligne pour faire une insertion de ligne dans un dataset et un update sur une table access...

    Est-ce que tu as regardé le message contenu dans ton erreur sur l'update (qui contient probablement l'erreur que renvoie Access comme une erreur de cast, un doublon, contrainte d'intégrité).

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai continué quelques recherches pour trouver une solution au problème et j'ai trouvé ça mais je sais pas si cela a un rapport avec mon erreur:
    il peut y avoir génération d'une exception au niveau de la ligne Update si l'Objet Datarow présente un 'défaut', par exemple si un champ de l'ObjetDatarow a une valeur null (il n'a pas été renseigné) alors qu'il sert l'index.
    Pour ce qui est de l’exception, il me met exactement :
    L'exeption OleDbException n'a pas été gérée
    Erreur de Syntaxe dans l'instruction INSERT INTO
    Je vous met La capture d’écran également
    Images attachées Images attachées  

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Regarde le contenu de ObjetDataAdapter.InsertCommand.CommandText pour vérifier que la commande SQL INSERT ne comporte l'éventuel champs autoincrément.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup de votre aide
    Pour ceux que ça intéresse j'ai simplement changer ma commande SQL
    Et depuis ça marche très bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajouter un enregistrement dans une table Access
    Par Thyyb dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/01/2014, 11h01
  2. [Débutant] Message d'erreur lors de l'ajout de données dans une base access
    Par hugnka dans le forum VB.NET
    Réponses: 14
    Dernier message: 01/04/2012, 18h09
  3. Ajouter un enregistrement dans une base de donnée mysql sur click bouton
    Par gueguenk dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/06/2009, 15h44
  4. Réponses: 4
    Dernier message: 10/12/2006, 16h47
  5. [VB.NET] Comment ajouter une table dans une base Access ?
    Par Hakki dans le forum Accès aux données
    Réponses: 1
    Dernier message: 22/09/2006, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo