Update Access [Résolu]

Signaler
Messages postés
7
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
31 août 2007
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
Besoin Urgent d'aide
Je suis débutant et très nul !!

Ajouter et Suprimer dans la base pas de problème mais pour la modif toujour la même chose
 "Aucune valeur donnée pour un ou plusieurs des paramètres requis"

voici la ligne :    dbsBase.Execute ("UPDATE  Produits SET RéfProd '" & UCase(Trim(Replace(TextRéf.Text, "'", "''"))) & "',  DésigProd '" & Trim(Replace(TextDésig.Text, "'", "''")) & "', RenseigrProd = '" & Trim(Replace(TextDescrip.Text, "'", "''")) & "', NomFour = " & UCase(Trim(Replace(TextfourModif.Text, "'", "''"))) & " WHERE idProd = " & Val(produits.Label24.Caption) & ";")

Si quelqu'un pouvait m'aider ce serait sympa

20 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Aprés analyse..lol...Voici ta requête modidiée et qui fonctionne en modification(en rouge) :

Dim SQL As String
SQL = "UPDATE  Produits SET "SQL SQL & "RefProd '" & UCase(Trim(Replace(TextRef.Text, "'", "''"))) & "',  "SQL SQL & "DesigProd '" & Trim(Replace(TextDesig.Text, "'", "''")) & "', "SQL SQL & "RenseigrProd '" & Trim(Replace(TextDescrip.Text, "'", "''")) & "', "SQL SQL & "NomFour '" & Replace(TextfourModif.Text, "'", "''") & "' "SQL SQL & "WHERE idProd " & CLng(Textid.Text) & ";"
dbsBase.Execute (SQL)


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
C'est donc une erreur SQL ??
Au fait : utilise plutôt ça

Dim SQL As String
SQL = "UPDATE  Produits SET "SQL SQL & "RéfProd '" & UCase(Trim(Replace(TextRéf.Text, "'", "''"))) & "',  "SQL SQL & "DésigProd '" & Trim(Replace(TextDésig.Text, "'", "''")) & "', "SQL SQL & "RenseigrProd '" & Trim(Replace(TextDescrip.Text, "'", "''")) & "', "SQL SQL & "NomFour " & UCase(Trim(Replace(TextfourModif.Text, "'", "''"))) & " "SQL SQL & "WHERE idProd " & Val(produits.Label24.Caption) & ";"
dbsBase.Execute SQL, ----

C'est VRAIMENT plus lisible !!
_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
Messages postés
7
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
31 août 2007

cé clair cé plus lisible
d'ailleur je vais revoir tout ça dans ce sens

Mais même comme cà mon problème persite
Merci tout de même pour ton aide
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

De même, je fairais comme cela aussi :

Dim Sql As String
Sql "UPDATE Produits SET RéfProd '" & UCase(Replace(TextRéf.Text, "'", "''")) & "', " & _
      "DésigProd = '" & Replace(TextDésig.Text, "'", "''") & "'," & _
      "RenseigrProd = '" & Replace(TextDescrip.Text, "'", "''") & "', " & _
      "NomFour = " & UCase(Replace(TextfourModif.Text, "'", "''")) & _
      "WHERE idProd = " & Val(produits.Label24.Caption) & ""

dbsBase.Execute, Sql

Par contre ton erreur me fait penser à une chose :

Est-ce que dans ta requête tous les champs mentionés, sont représentés dans ta table produits ?

Est-ce que dans "produits.Label24.Caption" tu as bien une valeur ? Fait un MsgBox jsute avant de lancer ta requête pour être sur.

Un conseil que je tiens d'un Admin, ne met pas d'accens sur les noms de tes tables ainsi que sur les contrôle..

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Salut,

Vérifie qu'il ne reste pas des champs qui ne peuvent pas être null dans ta base ou que tes texboxt ne sont pas vides.
Et pourquoi faire un replace des "?
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

C'est pour les apostrophes dans la chaine de texte...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Ha oui pardon je n'avais pas vu qu'il y avait un ' entre les deux guillemets
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
12
En d'autres termes, contre l'injection.
Au fait : voila un code plus petit :

Private Sub Form_Load()
Dim SQL As String
SQL = "UPDATE  Produits SET "SQL SQL & "RéfProd '" & UCase(Trim(Pure(TextRéf.Text))) & "',  "SQL SQL & "DésigProd '" & Trim(Pure(TextDésig.Text)) & "', "SQL SQL & "RenseigrProd '" & Trim(Pure(TextDescrip.Text)) & "', "SQL SQL & "NomFour " & UCase(Trim(Pure(TextfourModif.Text))) & " "SQL SQL & "WHERE idProd " & Val(produits.Label24.Caption) & ";"
MsgBox SQL
dbsBase.Execute SQL
End Sub<hr />
Public Function Pure(S As String) As String
Pure = Replace(S, "'", "''")
End Function , ----

_______________________________________________________________________
VB.NETis good ...VB6is better <f></f>
Messages postés
7
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
31 août 2007

J'ai appliquer toutes vos sugestions pas d' accents sur les noms de table dans la base et sur les controles, présence des champs dans la base, et les toutes les valeurs sont présentent sur les controles

Hélas j'ai toujours la même erreur
 "Aucune valeur donnée pour un ou plusieurs des paramètres requis"

Merci a tout le monde
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Le msgbox de ta requete avant de l'exécuter est correcte?
Mais dans ta base as-tu des champs que tu ne remplis pas avec tes textbox?Des champs qui ne peuvent pas avoir de valeur NULL qu'il faudrait donc renseigner?
Messages postés
7
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
31 août 2007

msbox avant requete correcte
Tous les champs de la base sont renseignés avec les textbox
et tous les champs de la base peuvent avoir une valeur Null sauf idProd étant la clée primaire en N° auto
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Le produits.Label24.Caption  contient quoi comme valeur?
tu as récupéré la valeur de la ligne sélectionnée à modifier?
Messages postés
7
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
31 août 2007

Le produits.Label24.Caption  contient idProd qui est la valeur de la clée primaire
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Je ne comprend pas pourquoi tu fais alors un "val" sur produits.Label24.Caption ?

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Il contient idProd mais l'as tu transformé en chaine de caractères avant de le mettre dans le caption de ton label?
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Re,

Lolokun >> Pas besoin, car dans la table la clé primaire est numérique....

Je persite à dire, que dans ta requête, il faut qu'il y est tous les champs représentés et que ceux-ci accépte dans ta base un type null.

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut,
c' est poblement ton champ Fournisseur qui pose problème.
Si ta table produits est liée à une table forunisseur.
Il n' est pas bien orthographié comme il doit l' être dans cette dernière.
Surtout que tu le transforme avec UCase et Trim.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
7
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
31 août 2007

C'est juste pas besoin de  "val" sur produits.Label24.Caption petite erreur mais qui je pense n'est pas la cause du problème
A force de triturer ces quelques lignes dans tous les sens certaines petites choses peuvent méchappées

En ce qui concerne la liaison de table, il n'y a pour l'intant aucune laison entre Produits et Fournisseurs


En ce qui concerne les champs, ils sont tous valide


Pour la base :


Null Interdit = oui
Chaine vide autorisée = oui
Indexé = non


La je suis complètement a la rue, d'autant plus que Suprimer et Ajouter aucun problème et qu'il faut absoluement que je règle ce souci pour continuer dans ce PROG
Update va me servir pour gérer le reste, Fournisseurs, commandes, stock, les Entrées/Sorties et bien sur Produits
En tout cas MERCI a tout le monde pour votre aide.Ca fait plaisir de voir qu'on est pas seul au monde dans ce genre d'aventure
Messages postés
7
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
31 août 2007

Super
Nickel !

Un Grand MERCI a Exploreur pour ton aide tu m'as sauvé la vie.
Je vai pouvoir essayé '(j'ai bien dit essayé) de continuer ce petit bout de chose
Et j'espère retrouvé (ou te retrouvé) une personne aussi dévoué au cas ou j'aurai un autre pépin
Désolé d'avoir pris un peu de ton temps
A+ tout le monde et bonne continuation
Très Cordialement
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
De rien...

A+
Exploreur

 Linux a un noyau, Windows un pépin