Moulinette sous Access
Résolu
microsoluces
-
microsoluces Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
microsoluces Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Moulinette sous Access
- Acer quick access ✓ - Forum PC portable
- Access appdata - Guide
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- Exemple de base de données access - Forum Access
- Quick acces ✓ - Forum Windows
14 réponses
Salut,
il faut utiliser UPDATE :
Pour une baisse de tarif, c'est la même chose, seule l'opération à faire change : HT=HT*0,95...
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...
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 !
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 ?
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.....
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.....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 :
J'ai testé chez moi (ACCESS 2002), ça marche...
UPDATE PRODUITS, FOURNISSEURS SET HT = HT.FOURNISSEURS WHERE STOCK = 0 AND CODE = CODE.FOURNISSEURS ;
J'ai testé chez moi (ACCESS 2002), ça marche...
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 +
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...
Je demande l'impossible non ?
Non, c'est facile à faire ,et si en SQL classique ça marche pas, on fera du VBA...
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 ?
"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 !
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...
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...
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.
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
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;
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;