[access] recherche de prix

recherche de prix [access] - SQL/NoSQL - Programmation

Marsh Posté le 17-04-2008 à 21:17:01    

Bonjour,
 
Je veux créer une BD pour rechercher le prix d'un produit en fonction de sa quantité et de son format. J'ai une table qui ressemble à ça :
 
Quantité |Format1 | Format2 | Format3 | ... | Format n
5000      | 120 €   | 140 €     | 165 €     | ... | 200 €
10000     | 110 €   | 132 €     | 142 €     | ... | 140 €
20000     | 90 €     | 120 €     | 135 €     | ... | 110 €
 
Je souhaite faire une requête en récupérant les valeurs des champs quantité et format d'un formulaire. Ma requête peut trouver le prix en fonction d'une quantité mais pas fonction du format car je ne sais pas comment mettre une condition sur le champ à afficher dans la requête. Comment puis-je spécifier que la requête cherche la colonne correspondant au format du formulaire pour chercher le prix en fonction de la quantité ???
 
Désolé du niveau de ma question, je débute en access ...

Reply

Marsh Posté le 17-04-2008 à 21:17:01   

Reply

Marsh Posté le 17-04-2008 à 22:58:40    

passe tes formats en ligne, car là tu va te lancer dans N unions (avec N = le nombre de formats possibles) ce qui sera catastrophique en termes de performances et de maintenance.
 
donc change la structure en :
 
quantite, format, prix
 
et là t'as juste à faire une requête relativement simple filtrant sur le format, et en faisant un t1.quantite = (select max(t2.quantite) where t2.quantite < maquantite and t2.format = t1.format)

Reply

Marsh Posté le 19-04-2008 à 00:03:12    

merci pour la réponse, ça fonctionne bien :)
 
Cependant, la table devient très vite énorme si j'ai beaucoup de formats et beaucoup de seuils de quantités disponibles ... est-ce la seule solution ?
 
ensuite je souhaiterais pouvoir ajouter des formats, changer des prix, etc ...

Reply

Marsh Posté le 19-04-2008 à 11:07:37    

ne t'inquiete pas, les BD sont conçue pour avoir plusieurs milions voir des miliard d'enregistrements.  
Et surtout, qu'au niveau perf, ça va bcp mieux fonctionner que ta solution en colonne qui est ultra pourie, non normalisée.  
 
Oui c'est la seule solution et de loin la meilleure.

Reply

Marsh Posté le 27-04-2008 à 12:07:00    

Je ne m'inquiète pas, j'imagine bien qu'une BD peut recevoir plein de données ;-)
 
Seulement je me demande comment gérer l'intégration d'un nouveau format ou le changement d'un prix ... faut-il changer le fichier excel puis importer la nouvelle table ou faire une gestion directement dans access (avec formulaire, recherche & co) ?
 
En fait je vois bien ma table comporter 3 colonnes et des milliers de lignes et j'imagine mal la lisibilité lors d'un changement ...

Reply

Marsh Posté le 29-04-2008 à 15:11:10    

c'est à toi de faire un formulaire avec une mise en forme compréhensible.
 
éventuellement, tu peux t'emmerder à importer les données à partir d'un fichier excel, mais là ça va devenir bien chaud (genre l'utilisateur qui n'a pas rempli la case attendue)

Reply

Marsh Posté le 29-04-2008 à 21:17:01    

J'ai commencé la mise en page des tables. En fait j'ai la table décrite plus haut avec 3 colonnes et une autre table avec le numéro des articles et le format correspondant ainsi que le nom du fournisseur. Ma requête trouve le prix à partir du numéro de l'article et de la quantité, ça marche bien :)
 
Je me pose maintenant la question de la mise à jour des prix. Faut-il faire les modifications dans excel puis réimporter les tables ou faire la mise à jour directement dans access ?
 
Je progresse lentement mais surement ... je vais voir au fur et à mesure . Merci pour les précisions.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed