Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/03/2011, 15h31   #1
Invité de passage
 
CEDRIC SZEZEPANSKI
Inscription : mars 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : CEDRIC SZEZEPANSKI
Localisation : France, Oise (Picardie)

Informations forums :
Inscription : mars 2011
Messages : 2
Points : 0
Points : 0
Par défaut UPDATE sous bouton action

Bonjour,

Voila je dois réaliser une petite gestion de stock avec Access et pour cela j'ai besoin d’exécuter une requête update sous un bouton d'action.
Alors je connais le SQL mais rien du tout au VBA, sa fait une journée que je cherche des réponses en vain...

Bref voici mon code:

Code :
1
2
3
Private Sub Commande9_Click()
CurrentDb.Execute ("UPDATE ARTICLES SET QteStock=QteStock+" & texte5 "WHERE CodeArticle=" '" & Modifiable1 & "')
End Sub
Texte5 et Modifiable1 sont des champs du formulaire.
Le message d'erreur suivant apparaît est sélectionne la parti du code"WHERE CodeArticle=" :
Erreur de compilation
Attendu: séparateur de liste ou )


Ce qui m'ennuie le plus c'est que je n'arrive pas a faire fonctionner un code plus simple comme:

Code :
1
2
3
Private Sub Commande9_Click()
CurrentDb.Execute ("UPDATE ARTICLES SET QteStock=QteStock+100")
End Sub
La aucun message d'erreur et les quantités ne sont pas augmentées...
Pansky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 16h08   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Si le champ QteStock est vide (Null), on ne peut pas effectuer d'opération avec la valeur de champ.
Le résultat sera toujours Null.
Il faudrait qu'il ait 0 (zéro) comme valeur par défaut dans la définition de la table.

Pour l'instruction SQL de mise à jour ...
Si le champ CodeArticle est de type texte :
Code :
1
2
3
Private Sub Commande9_Click()
CurrentDb.Execute "UPDATE ARTICLES SET QteStock = QteStock + " & texte5 & " WHERE CodeArticle = '" & Modifiable1 & "'"
End Sub
Si le champ CodeArticle est de type numérique :
Code :
1
2
3
Private Sub Commande9_Click()
CurrentDb.Execute "UPDATE ARTICLES SET QteStock = QteStock + " & texte5 & " WHERE CodeArticle = " & Modifiable1
End Sub
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2011, 18h18   #3
Invité de passage
 
CEDRIC SZEZEPANSKI
Inscription : mars 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : CEDRIC SZEZEPANSKI
Localisation : France, Oise (Picardie)

Informations forums :
Inscription : mars 2011
Messages : 2
Points : 0
Points : 0
Merci, pour la bonne syntaxe!

Sinon le Code Article est de type texte et les quantités sont bien renseignés à zéro par défaut...

Je n'ai plus de message d'erreur mais toujours pas d'UPDATE de la table...
Etrange...
Pansky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 20h29   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,

Pour déboguer essaie comme ça
Code :
1
2
3
4
5
6
7
8
Private Sub Commande9_Click()
Dim strSQL As String
strSQL = "UPDATE ARTICLES SET QteStock = QteStock + " & texte5 & " WHERE CodeArticle = '" & Modifiable1 & "'"
' Imprime le code SQL dans la fenêtre d'exécution (Ctrl+G)
debug.Print strSQL
' Exécute l'instruction SQL avec avertissements
DoCmd.RunSQL strSQL
End Sub
Dans le fenêtre d'exécution (Ctrl+G) tu récupères l'instruction SQL que tu peux tester, en copiant et en collant le code dans une requête en mode d'affichage SQL.
Créer une nouvelle requête, n'ajouter aucune table et basculer en affichage SQL.
Coller le code copié depuis la fenêtre d'exécution par dessus
et tester la requête.

Par ailleurs, cette ligne
Code :
1
2
' Exécute l'instruction SQL avec avertissements
DoCmd.RunSQL strSQL
exécute l'instruction SQL avec l'avertissement "Vous allez mettre à jour nn ligne(s)".
Ça peut t'aider à y voir plus clair.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h48.


 
 
 
 
Partenaires

Hébergement Web