|
|
|
|
Salut,
il faut utiliser UPDATE : UPDATE PRODUITS SET HT = HT*1,05 WHERE LIBELLE LIKE "toto*";Cette requête augmente les prix de 5% de tous les articles dont le libellé commence par "toto"... Pour une baisse de tarif, c'est la même chose, seule l'opération à faire change : HT=HT*0,95... A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Je te remercie pour l'info mais la requète que tu me donnes augmente ou diminue TOUS les HT de ma table "PRODUIT". Or je cherche à mettre à jour uniquement les produits ayant subit soit une hausse, soit une baisse depuis la table que me donne mon fournisseur chaque semaine !
Je dois comparer les articles d'une table à une autre par l'intermédiaire de leur code article (clé primaire). Quand le code est identique on compare les HT... La mise à jour se fait SI la quantité en stock de "PRODUIT" est =0 (pour éviter de modifier les prix des articles déjà en stock). Simple à dire, mais à faire sous ACCESS ! ! ! Je me demande si je n'aurai pas intérêt à faire ça avec un langage de programmation (Windev, VisualBasic) A + Et merci d'avance à mon sauveur ! |
UPDATE PRODUITS SET HT = HT.FOURNISSEURS WHERE STOCK = 0 AND CODE = CODE.FOURNISSEURS ; Ca marcherait pas un truc comme ça ? A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
On avance... La syntaxe me plait bien, ca ressemble à ce que je veux faire, mais ACCESS lui, il n aime pas du tout !
Un pop up me demande de saisir le HT.FOURNISSEUR, puis le HT, puis le CODE et enfin me dit que les champs n a pas pu etre mis à jour..... |
Rajoute FOURNISSEURS dans la liste des tables à mettre à jour, même si on ne fait rien dessus, ça lui indique qu'elle fait partie du bin's qu'on essaie de faire : UPDATE PRODUITS, FOURNISSEURS SET HT = HT.FOURNISSEURS WHERE STOCK = 0 AND CODE = CODE.FOURNISSEURS ; J'ai testé chez moi (ACCESS 2002), ça marche... A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Merci pour toute la peine que tu te donnes pour moi, mais hélas cela ne fonctionne pas. J ai également ACCESS 2002. Voila mes tables :
PRODUITS CODE__LIBELLE____STOCK_____ HT_________ TYPE __1___Produit 1_____ 1______ 100,00_____Carte mère __2___Produit 2_____ 1______ 100,00_____Processeur __3___Produit 3_____ 1 ______100,00_____Mémoire FOURNISSEUR CODE____LIBELLE________ HT __1___ Pdt 1___________200,00 (hausse) __3___ Produitsxxx 3____ 50,00 (article 2 disparu)(Baisse pour le 3) __4___Produit 4________ 700,00 (nouvel article) RESULTAT ATTENDU => PRODUITS CODE__LIBELLE____STOCK_____ HT_________ TYPE __1___Produit 1_____ 1______ 200,00_____Carte mère __3___Produit 3_____ 1_______ 50,00_____Processeur __4___Produit 4_____ 0 ______700,00_____0 L'interet de la moulinette c'est : 1- On ne touche pas aux libelles de PRODUITS que j'ai modifié 1 par 1. (Suppression abréviations, libelles plus clairs) 2- Chaque article de "PRODUIT" à un type. Si je balancais la table "FOURNISSEUR" dans ma gestion commerciale, je devrais ré affecter un type à chacun de mes 3800 produits ! ! ! Je demande l'impossible non ? A + |
Faudrait juste me dire quel est le résultat que tu obtiens, car ça devrait logiquement marcher... à l'exception près qui est qu'on ne crée pas de nouveau produit, c'est une requête de mise à jour de champs dans une ligne existante (UPDATE), pas une requête ajout (INSERT INTO)...
Je demande l'impossible non ? Non, c'est facile à faire ,et si en SQL classique ça marche pas, on fera du VBA... A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
J'ai recopié ta requete dans access. Il me dit =
"Le champ spécifié 'CODE' peut designer plusieurs tables listées dans la clause FROM de votre instruction SQL" Késako ? Au fait : Je n'ai crée aucun lien entre mes tables. C'est bon ?
|
Je n ai pas mis FROM, c est ACCESS qui corrige seul la syntaxe à la manière de FRONTPAGE qui corrigeait mes pages html ! ! !
Quand je rentre ton dernier SQL j ai à l'execution de la requete une box qui s ouvre et me demande : "Entrez la valeur du paramètre" "HT.FOURNISSEUR" Je rentre 1 par exemple, une autre fenetre s ouvre "Entrez la valeur du paramètre" "HT.PRODUIT" Idem stock, idem code et tout cela fini par "L'opération doit utiliser une requete qui peut etre mise à jour" JE COMMENCE A DOUTER QU ON PUISE LE FAIRE AVEC ACCESS pourtant cela ne semble pas tres compliqué au premier abord ! |
JE COMMENCE A DOUTER QU ON PUISE LE FAIRE AVEC ACCESS pourtant cela ne semble pas tres compliqué au premier abord !
On peut le faire, je l'ai testé chez moi... Comment saisis-tu ta requête ? (assistant, mode sql...). Je pense que le problème vient de là... Sinon, tu peux m'envoyer ta base, je regarderai... A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Salut,
Effectivement je m y prend peut etre mal. Je crée une requete en mode création, je ferme la fenetre qui s ouvre "Afficher la table" puis je clic sur le menu affichage et choisi l option SQL... Ensuite je fais un copier/coller de ton code puis enregistrer... Comment puis-je t'envoyer ma base ? Merci d'avance.
|
Un tel dévouement : j peux rien ajouter. Le must de l'assistance !
Je viens de te l'envoyer. Bah on dit merci j'crois ! Merci |
Bonjour,
Nous approchons du but Blux... J'avais fait plein de fautes d'inattention (celles du débutant trop pressé) dans la syntaxe de mon SQL... Ca marche beaucoup mieux effectivement si on respecte le nom des champs. La requete fonctionne maintenant sans ouvrir de Box pour me demander des valeurs, mais elle ne change aucun élément dans ma table "PRODUIT" Pour ceux qui nous suivent depuis le début voici comment blux m'a corrigé mon SQL : UPDATE PRODUIT, FOURNISSEUR SET PRODUIT.HT = FOURNISSEUR.HT WHERE PRODUIT.STOCK=0 And PRODUIT.CODE=FOURNISSEUR.CODE;
|
Honte à moi... Ca marche bien sur ! ! !
Il faut que les quantités soient à 0. Je te remercie mille fois pour le boulot ET surtout de ta patience avec un bleu comme moi.... ;-) Tu n'imagines même pas le temps que va me faire gagner cette chtite moulinette ! A + (dans un prochain post) Salut. |
| 17/01 12h21 | [Outlook] Réponse du serveur : 554 Access denied (0x800CCC79) | Microsoft Outlook |
| 09/09 22h43 | [Spywares] MagicControl et Instant Access | Spywares |
| 16/01 20h42 | Access 97 sous XP - Mémoire insuffisante | Access |
| 28/05 13h05 | Rétablir le démarrage et les menus de l'application par défaut | Access |
| 16/07 10h56 | phpMyAdmin - 1045- Access denied for user root@localhost | Webmaster |
| 24/07 14h45 | Deux requetes dans un Etats {access} | 2 |
| 24/07 11h04 | Porbleme d'affichage sur access | 2 |
| 22/07 22h32 | [ACCESS] Pb Enregistrement entre 2 formulaire | 1 |
| 22/07 16h59 | Commande Now en Access | 2 |
![]() | OpenOffice.org - OpenOffice est une suite bureautique complète entièrement gratuite, compatible avec la suite Microsoft Office. Elle... | Catégorie: Suite bureautique Licence: Open Source |
![]() | PowerISO - PowerISO est un outil de gestion d'images de CD et DVD, capable d'ouvrir, d'extraire, de créer, d'éditer, de compresser et... | Catégorie: Gravure Licence: Demo |
![]() | SSH Secure Shell - SSH secure shell for workstations est un client SSH flexible permettant de se connecter de façon sécurisée à des... | Catégorie: Telnet/SSH Licence: Open Source |
![]() | Aide-mémoire - Ce logiciel permet de coller des aides mémoires (post-it) sur votre bureau. Son but est simple, éviter de décorer votre... | Catégorie: Organisation Licence: Freeware/gratuit |
![]() | Linksys WAP54G Wireless Access | Catégorie: Point d'accès pour réseaux sans fil | 48.65 € Atlanpolis |
![]() | Logitech Access Keyboard 600 | Catégorie: Clavier | 19.30 € La Boutique Du Net |
![]() | HP ProCurve Wireless Access | Catégorie: Point d'accès pour réseaux sans fil | 88.34 € PriceMinister |
![]() | Trendnet Wireless N-Draft Access | Catégorie: Point d'accès pour réseaux sans fil | 97.90 € Toutpourlamicro.com |