teamtiti
Messages postés61Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention28 mai 2008
-
9 mars 2008 à 17:44
teamtiti
Messages postés61Date d'inscriptionjeudi 19 juillet 2007StatutMembreDernière intervention28 mai 2008
-
9 mars 2008 à 18:56
Bonjours a tous voila j'ai un probléme qui doit etre simple pour vous mais moi je cale quand j'execute mon code il me mes ca :
Erreur de syntaxe (opérateur absent) dans l'expression 'Table_Nuances.nuance ='"Table_Nuances.ID='58XF8R' AND Table_Nuances.Pas_de_descente=''.
et voila mon code:
'Pour supprimer la nuance sélectionné
'Tout d'abord on teste pour voir si une nuance est séléctionné
'(code un peu bourin je l'admets ^^)
If ListBox1.SelectedIndex = -1
ThenMsgBox(
"Veuillez choisir une nuance !")
'et donc on quitte la fonction
Exit
Sub
Else
'On demande à l'utilisateur s'il veut vraiment la supprimer définitivementSup_nuance.ShowDialog()
'si "oui" alors..
If Sup_nuance.DialogResult = System.Windows.Forms.DialogResult.OK
Then
'on crée un connexion, la commande avec le code sql
Dim MyConnexion
As OleDbConnection =
New OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Application.StartupPath &
"\Compte_rendu_de_production_ESRR.mdb")
Dim Mycommand1 As OleDbCommand MyConnexion.CreateCommand()Mycommand1.CommandText
"DELETE Table_Nuances.ID, Table_Nuances.nuance, Table_Nuances.Pas_de_descente FROM Table_Nuances WHERE Table_Nuances.nuance ='""Table_Nuances.ID='" & ListBox1.SelectedItem &
"' AND Table_Nuances.Pas_de_descente='"
'puis le dataAdapter et enfin on éxecute la requête
Dim MyDataAdapter
As
New OleDbDataAdapter(Mycommand1)MyConnexion.Open()
MyDataAdapter.UpdateCommand = Mycommand1
MyDataAdapter.UpdateCommand.ExecuteNonQuery()
MyConnexion.Close()
'il faut maintenant enlever des listes les éléments supprimés car ce n'est pas automatique
Dim temp_index
As Int16
'on crée une variable temporaire qui vaut la position de la ligne séléctionnéetemp_index = ListBox1.SelectedIndex
MsgBox(
"Nuance " & ListBox1.SelectedItem &
" supprimé")
'et on supprime la ligne temp_indexListBox1.Items.RemoveAt(temp_index)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 9 mars 2008 à 17:53
Regarde bien ta clause Where comment elle est foutue. Il y a comme un léger malaise non?
"DELETE ... WHERE Table_Nuances.nuance '"" Table_Nuances.ID'" & ListBox1.SelectedItem & "' AND Table_Nuances.Pas_de_descente= ' "
Il ya comme un déséquilibre entre les ' et les ".
Pour rappel en VB, deux " succesifs dans une chaine à pour effet de mettre le caractère " dans la chaine . Ca ne ferme pas puis réouvre la chaine.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 9 mars 2008 à 18:26
Si tu supprime quoi ????
Ta clause Where est invalide et totalement incohérente, et ce n'est pas juste un problème de "
Si tu met un point d'arret sur l'instruction juste après et que tu regrade ce qu'il y a réellement dans ta chaine, tu verra bien qu'il y a un problème ou plus exectement plussieurs.
Tout d'abord, si on fait l'impasse sur le problème des ' et des ", tu met Table_Nuances.nuance = '""Table_Nuances.ID='" & ListBox1.SelectedItem &
"'
C'est à dire si je traduit si un champ est égal à un champ est égal à une valeur , ça peut pas marcher
Ensuite tu met Table_Nuances.Pas_de_descente ='
Toujours en traduisant, si un champ est égal à ?????????, ben on sait pas puisque la requette n'est pas terminée.