Problème avec une requête de suppression

Signaler
Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016
-
Messages postés
5
Date d'inscription
vendredi 1 novembre 2013
Statut
Membre
Dernière intervention
1 novembre 2013
-
Salut à tous, j'ai un gros problème avec une requête de suppression de données dans une base Access que je souhaiterais vous soumettre à tous pour analyse. En effet, je souhaite supprimer tout un lot de données en une seule fois. Voici mon code:
        private void Click_Effacer(object sender, EventArgs e)
{
//Chaine de suppresion
string sSupprimerSQL = "DELETE ALL FROM [Fiche_PP]" + "\n" +
"(WHERE [code_enseignant] = '" + txtCodeEnseignant.Text + "'AND" + "\n" +
"[code_classe] = " + this.txtCodeClasse.Text + "AND" + "\n" +
"[code_annee] = " + this.txtCodeAnneeScolaire.Text + "AND" + "\n" +
"[code_trimestre] = " + this.txtCodeTrimestre.Text + ")";

//Declaration d'une boite de dialogue "YesNo"
//Si l'utilisateur confirme la suppresion on exécute la requette
if (MessageBox.Show("Êtes-vous sûr de vouloir Supprimer" + "\n" +
"ces enregistrements?" + "\n" +
"A T T E N T I O N." + "\n" +
"Cette opération est irréversible...", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
try
{

//Declaration de ma connexion
OleDbDataAdapter Adapt = new OleDbDataAdapter(sSupprimerSQL, strConex);
//Ma commande dans un dataset different de celui d'afficher ..
Adapt.Fill(DtSetDel);
//Mise a jours du Label
iMax--;
i = 1;
Afficher();
Label_Effectif();
//Clear du DtSet pour la prochaine suppresion
DtSetDel.Clear();

Montrer_Text(false);
nbTotalNotes();

this.btnNouveau.Text = "&Nouveau";
this.btnNouveau.BackColor = Color.Navy;
this.btnNouveau.Enabled = true;

this.btnAnnuler.Text = "&Chercher";
this.btnAnnuler.BackColor = Color.Navy;

this.btnModifier.Text = "&Modifier";
this.btnModifier.BackColor = Color.Navy;

this.btnModifier.Enabled = false;
this.btnSupprimer.Enabled = false;
this.btnModifier.Visible = false;
this.btnSupprimer.Visible = false;

this.btnPrecedent.Enabled = true;
this.btnSuivant.Enabled = true;

this.txtCodeEleve.Enabled = true;
this.txtCodeEnseignant.Enabled = true;

// Affiche le premier élève par ordre alphabétique
frmFiche_PP_Trimestrielle_Load(null, null);

}
catch (FileNotFoundException ex)//(Exception ex)
{
//MessageBox.Show("Pas d'Elève sélectionné", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
MessageBox.Show(ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);//MessageBox.Show(ex.Message, "Erreur");
}
}
}


Et j'ai comme réponse le message suivant: "Erreur de syntaxe dans l'instruction DELETE.
Aidez moi. Merci

6 réponses

Messages postés
111
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
10 septembre 2019
3
Essaie avec:
DELETE * from ...........

Bonjour

Enleve le ALL de ta requette SQL

il doit être du genre DELETE FROM TaTable
et je crois tout ira bien
Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016

Merci, je vaiis essayer cela, je te donnerai des nouvelles
Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016

Je viens de rectifier la requête mais j'ai toujours le même problème. Je tenais à préciser que cette requête devrais supprimer pas moins de 55 enregistrements liés par les mêmes conditions de regroupement de cette requête.
Messages postés
111
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
10 septembre 2019
3
salut, est-que ton [Fiche_PP] est une TABLE?
Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016

Oui mon [Fiche_PP] est une table et je souhaite y effacer plusieurs enregistrement remplissant la condition décrite dans la requête. Merci
Messages postés
29268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 août 2020
335
Bonjour.
N'aurais tu pas des soucis d'espace ?
Ajoute des espaces avant tes AND.
Messages postés
44
Date d'inscription
lundi 27 août 2007
Statut
Membre
Dernière intervention
1 novembre 2016

Les espaces n'ont eu aucun effet, et le résultat est toujours le même. Mais sachez que j'essaie de supprimer au moins une cinquantaine d'enregistrement. Cela n'aurait-il pas de conséquence direct sur la requête? Merci à tous
Messages postés
5
Date d'inscription
vendredi 1 novembre 2013
Statut
Membre
Dernière intervention
1 novembre 2013
1
essaye d'utiliser delete from nomtable where ...
et d'enlever les [] sur les noms des champs