Requete sql

sya21 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -  
sya21 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
jai un formulaire avec different bouton
jai un bouton supprimer qui me permet d"effacer un agetn de ma table
jai créer un requete sql de type delete from mais qui ne fait rien
aucun message d'erreur
Private Sub Cmd_valid_Click()
On Error GoTo Err_cmd_valid_Click
DoCmd.RunCommand acCmdRecordsGoToNew
lst_id.Requery
lst_id = ""

Me.Refresh

If chx = "s" Then
DoCmd.RunSQL "DELETE avril09.* FROM avril09 WHERE identifiant = " & CLng(lst_id.Value)
DoCmd.RunSQL req
End If
DoCmd.Close acForm, "frm_personnel"
End Sub

merci de m'aider pour trouver le probleme

28 réponses

garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
 
la valeur dans la condition étant un long, les ' ' sont inutile non ?
est ce que tu a vérifié que CLng(lst_id.Value) renvoyai bien une valeur ? (met un msgbox entre ton if et ta requete pour tester en même temp si tu entre dans la condition)
as tu vérifier que le type de la colonne identifiant était bien de type long ?
quel est la valeur maximum quepeut prendre lst_id.Value ?

voila mes ptites question ^^
0
sya21 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   43
 
lst_id correspond a des identifiant de type fg2455
je n'est pas verifier que clng renvoyait une valeur je vais mettre un msgbox genre if... then msgbox" " ?
identifiant est une chaine de caractere
0
garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
 
et CLng c'est bien la fonction pour convertir en long non ?
si c'est le cas alors c'est là que ca bug, comment veut tu convertir un type string (alphanumérique) en type long (numérique) ?
et puisque c'est un string il faut donc entourer la valeur de ' ' dans la requete sql

si ca règle ton problème dis le :)
0
sya21 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   43
 
oué j'ai pas trop compris^^
sa va donner quoi comme requete alors
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
 
^^ je n'ai fait que t'expliquer pourquoi selon moi, ca foirai :P

msgbox "|" & lst_id.Value & "|"
'le msgbox si dessus sert a tester s'il n'y a pas d'espace qui entoure la valeur, dans le cas où il y a un espace il faudrai rajouter dans la requete un ltrim(lst_id.Value) a la place de lst_id.Value
DoCmd.RunSQL "DELETE FROM avril09 WHERE identifiant = '" & lst_id.Value & "';"
0
sya21 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   43
 
jai mis le msgbox mais il me retourne aucun message
jai essayé la requete sans succès^^
0
garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
 
si tu a mi le msgbox entre le if chx="s" et le DoCmd.RunSQL "DELETE FROM avril09 WHERE identifiant = '" & lst_id.Value & "';"
et que malgrès tout le msgbox ne s'affiche pas c'est que tu ne rentre pas dans ta condition, donc c'est quoi chx et le s ?
0
sya21 Messages postés 426 Date d'inscription   Statut Membre Dernière intervention   43
 
merci mais j'ai trouvé la solution tout marche niquel c'est gentil d'essayé de m'aider
0