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 :
Me retourne une exception OleDbException : Point-virgule absent à la fin de l'instruction SQL.
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()
Avez-vous une idée ?
Merci par avance pour vos réponses !







Répondre avec citation



Partager