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

Requêtes et SQL. Discussion :

Insert ou Update


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut Insert ou Update
    Bonjour à tous,

    Je m'adresse à vous après avoir lu la FAQ Access, et d'autres sites en vain.
    J'espère que l'information ne sera pas passée sous mes yeux !!!!

    Je vous expose mon problème :

    J'ai 4 tables, 3 que j'affiche dans des Listbox, et 1 que j'affiche dans un datagridview.
    Lorsque l'utilisateur modifie ou ajoute des données dans le datagridview je souhaite à partir d'une requête mettre à jour ma table...

    Donc selon le cas, faire un INSERT si ajout d'une nouvelle ligne ou un UPDATE.

    Je sais qu'en SQL il existe une fonction qui permet de vérifier s'il n'y a pas de doublon au niveau de la clé primaire : " ON DUPLICATE KEY "

    Cette fonction existe t'elle sous ACCESS ?

    Ci-dessous une partie du code que j'essaie de faire marcher...

    Table : Type_Composant (CP_typeComposant, nom_typeComposant)
    Table : Composant (CP_Composant, CE_typeComposant, nom_Composant, nombre_Composant, datasheet_Composant)

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ObjetConnection.Open()
     
            ObjetCommand = New OleDbCommand
            ObjetCommand.Connection = ObjetConnection
     
            ObjetCommand.CommandType = CommandType.Text
            ObjetCommand.CommandText = " INSERT INTO Composant (CE_typeComposant, nom_Composant, nombre_Composant, datasheet_Composant) " & _
                                      " VALUES (('" & Me.Lstbox_choixTypeComposant.SelectedValue & "'),('" & Me.DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(0).Value & " '), ('" & Me.DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(1).Value & " '), ('" & Me.DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(2).Value & " '))" & _
                                      " ON DUPLICATE KEY UPDATE ((CE_typeComposant = '" & Me.Lstbox_choixTypeComposant.SelectedValue & "'), (nom_Composant = '" & Me.DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(0).Value & " '), (nombre_Composant = '" & Me.DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(1).Value & " '), (datasheet_Composant = '" & Me.DataGridView1.Rows(DataGridView1.CurrentCell.RowIndex).Cells(2).Value & " '));"
     
     
     
            ObjetCommand.ExecuteNonQuery()
            ObjetConnection.Close()
    Me retourne une exception OleDbException : Point-virgule absent à la fin de l'instruction SQL.

    Avez-vous une idée ?

    Merci par avance pour vos réponses !

  2. #2
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 186
    Par défaut
    Le "ON DUPLICATE KEY UPDATE " ne me dit rien.
    2 possiblités :
    - Tester l'existence d'une ligne. Si existence, update, sinon, insert.
    - Update de la ligne. Si pas de ligne mise à jour, insert.

    Perso, j'utilise la 2nde méthode, ça fait moins d'accès.
    [Access] Les bases du débogage => ici

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut
    Salut Kloun, merci pour ta réponse.

    J'ai opté pour une autre solution (facilité sans doute), en fait j'utilise la commande update de mon DataAdapter, qui se charge pour moi de faire le travail...
    Bien sûr cette condition implique, que ma requête servant à l'affichage soit correctement rédigée...
    J'y travaille, c'est encore un peu bancale mais ça avance !

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

Discussions similaires

  1. [Conception] Formulaires identiques pour INSERT et UPDATE
    Par MiJack dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 16/06/2006, 11h34
  2. performance delete/insert vs update
    Par Dionisos dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/08/2005, 18h23
  3. [Debutant] Insert ou update...
    Par kluh dans le forum Oracle
    Réponses: 15
    Dernier message: 13/07/2005, 14h35
  4. événement sur INSERT, DELETE, UPDATE
    Par papouAlain dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/12/2004, 15h40
  5. [Débutant][PS] modifier un insert en update
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/05/2004, 16h33

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