cs_SEB73460
Messages postés271Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 novembre 2022
-
21 avril 2007 à 17:16
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 2017
-
5 avril 2008 à 17:06
Bonjour à tous,
Voila je galère depuis plusieurs jours avec ma requete
j'ai un listview qui est charger avec ma table access
en clickant sur une ligne du listview et ensuite sur mon bouton je veux que la ligne s'efface de ma base
Mais j'ai toujours un message d'erreur
pourtant ce code fonctionne parfaitement sur une autre appli que j'ai pris sur ce site
je ne comprends pas !
Je debute et je bloque dessus depuis longtemps
Je ne sais pas si le probleme est sur la construction de ma requete SQL ou si c'est sur le code qui execute la requete
Mon message d'erreur :
Aucune valeur donnée pour un ou plusieurs des parametres requis
à system.data.oledb.oledb.command.executecommandtextforsingleresult etc .........
Merci beaucoup a tous pour votre aide
Voici mon code :
Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 21 avril 2007 à 17:30
Dans la première ligne du code SQL, je pense qu'il y a une erreur :
Il y a : " DELETE FROM PROG ",
Il faut : "DELETE
*
FROM PROG ",
De plus, pour Access, il manque un point virgule à la fin du code SQL :
cs_SEB73460
Messages postés271Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 novembre 2022 21 avril 2007 à 18:34
bonsoir Casy,
les données ne sont pas effacées de ma table "PROG"
et lors du click sur mon bouton1 j'ai une fenetre avec :
"Aucune valeur donnée pour un ou plusieurs des parametres requis
à system.data.oledb.oledb.command.executecommandtextforsingleresult etc ........."
Je cherche depuis un long moment et je ne trouve pas
je te remercie pour ton aide
A+
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 21 avril 2007 à 19:01
Oui mais justement il serait interessant de savoir sur quelle ligne tu as l'erreur, car pour moi ce code me semble correct. D'autant plus que tu as un gestionnaire d'erreur sur l'execution de la requette, donc tu ne devrais pas avoir le message d'erreur, je pense.
En plus le message d'erreur ne semble pas correspondre avec l'instruction que tu utilise :
system.data.oledb.oledb.command.executecommandtextforsingleresult <--> objCommand.ExecuteNonQuery()
Mais l'erreur peux aussi venir de la fonction ChargeBD()
Execute ton code en mode debug et sur l'erreur tu devrais etre arreté sur la ligne en cause.
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
cs_SEB73460
Messages postés271Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 novembre 2022 21 avril 2007 à 20:46
Toujours le meme probleme meme avec des "espaces"
L'erreur est sur :
Catch ex
As Exception
le detail de l'erreur :
Interception de System.Data.OleDb.OleDbException
ErrorCode=-2147217904
Message="Aucune valeur donnée pour un ou plusieurs des paramètres requis."
Source="Microsoft JET Database Engine"
StackTrace:
à System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
à System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
à System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
à System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
à System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
à PROGRAMMATEUR_D_EPROM.form11.Button1_Click(Object sender, EventArgs e)
zener82
Messages postés15Date d'inscriptionsamedi 25 novembre 2000StatutMembreDernière intervention18 juillet 2021 25 avril 2007 à 08:57
En fait je penche plutot sur un probleme de synthaxe...
Sans rien garantir, j'essaierais :
"WHERE ([Fabricant] = " & ListView1.Items(ListView1Position).Text
au lieu de
"WHERE ([Fabricant] = '" & ListView1.Items(ListView1Position).Text
cs_ppch
Messages postés1Date d'inscriptionvendredi 4 avril 2008StatutMembreDernière intervention 5 avril 2008 5 avril 2008 à 14:35
Bonjour à toutes et tous,
Débutant en VBA - ACCESS, je sèche depuis 2 jours sur une erreur SQL :
"Aucune valeur donnée pour un ou plusieurs des paraètres requis"
Mes autres requêtes de type 'select', sur d'autres tables ne posent pas de Pb !
Clé primaire de la table db_user = db_user_ident (type texte, longueur 6)
txt_nom_user est un contrôle de formulaire
Merci si vous pouviez m'expliquer !!!
ci-dessous le code
If txt_nom_user = "" Then
MsgBox "Saisie obligatoire "
Exit Sub
End If
Set cnnx = CurrentProject.Connection
Dim ws_lst As New ADODB.Recordset
ws_lst.ActiveConnection = cnnx
ws_lst.CursorType = adOpenDynamic
mysql = "SELECT [db_user.ident], [db_user.nom], [db_user.prenom], [db_user.initiales], [db_user.psw] "mysql mysql + "FROM db_user WHERE db_user " & txt_nom_user
MsgBox mysql
ws_lst.Open mysql
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 5 avril 2008 à 17:06
Il y a une erreur patente dans votre requête SQL :
Vous avez écrit :
mysql = "SELECT [db_user.ident], [db_user.nom], [db_user.prenom], [db_user.initiales], [db_user.psw] "mysql mysql + "FROM db_user WHERE db_user " & txt_nom_user
MsgBox mysql
ws_lst.Open mysql
Il faut écrire :
mysql = "SELECT ident, nom, prenom, initiales, psw "mysql mysql & "FROM db_user WHERE ident '" & txt_nom_user.Text & "'"
MsgBox mysql
ws_lst.Open mysql
Motif des corrections :
<li>Il est totalement inutile de faire précéder les noms des champs du nom de la table dans la mesure où il y a une seule table origine : db_user</li>(entre nous, je n'appellerais pas une table db_..., db sont les initiales de database : le fichier de base de données, il vaut mieux désigner les tables par t_...)
<li>La concaténation de chaînes se fait avec un "&" en VB, de préférence au "+".
</li><li>On ne peut pas prendre le nom de la table comme paramètre d'une condition WHERE. Dans le cas où l'on veut afficher tout le contenu de la table, il suffit de ne pas mettre de condition WHERE (mais je ne pense pas que c'était ce que vous vouliez faire!..)</li><li>Dans le cas où le paramètre à entrer est une chaîne de caractères, il convient d'encadrer la chaîne par des simples cotes (car dans le code, la chaîne SQL est délimitée par des doubles cotes).
</li>Attention :Si toutefois il y a un apostrophe dans le texte de la chaîne passée en paramètre, il convient de doubler cet apostrophe pour éviter que la requête n'échoue.