cs_tchoukette
Messages postés32Date d'inscriptionmercredi 9 novembre 2005StatutMembreDernière intervention12 janvier 2006
-
5 janv. 2006 à 18:06
hyrockbass
Messages postés25Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention 6 janvier 2006
-
6 janv. 2006 à 04:20
Bonjour,
J'ai dans ma table 1 meme composant pour lequel j'ai 2 prix et donc 2 fournisseurs.
Je voudrai qu'il m'update une autre table par le prix le moins cher ?
Table Price & Component Terms
Ma requete initiale...
DoCmd.RunSQL "UPDATE [Component Terms] INNER JOIN Prices ON [Component Terms].[référence]=Price.[référence] SET [Component Terms].[PriceQ-3]=Price.[Price Qn-3(L3)] WHERE Price.[Price Qn-3(L3)] IS NOT NULL"
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 janv. 2006 à 02:06
Salut
A mon avis, il ne faut aps stocker dans des tables des résultats que tu peux recalculer à la volée.
De toute façon, ce n'est pas un "Update", mais un "Insert into" qu'il faudrait faire.
Questionne plutôt ta DB pour qu'elle te renvoie (avec un RecordSet) cette liste conditionnée, du genre :
Select Min(Price) From maTable Group by refArticle
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
hyrockbass
Messages postés25Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention 6 janvier 2006 6 janv. 2006 à 04:20
Bon c'est pas tres tres clair mais je crois avoir compris. Par contre je ne vois pas de quelle table tu veux extraire le minimum et dans laquelle tu veux l'inserer. Je vais donc Prendre comme exemple :
- la table Price : dans laquelle tu as ton meme composant pour tes 2 fournisseurs et tes 2 prix.
- la table PriceMin dans laquelle tu veux inserer le minimum
contenu de la table Price :
_______________________________
| Composant | Fournisseur | Prix |
_______________________________
| C1 | F1 | P1 | Imaginons que P1 < P2
| C1 | F2 | P2 |
_______________________________
contenu de la table MinPrice :
_______________________________
| Composant | Fournisseur | Prix |
_______________________________
| ................. | .................... | .......... | -> rien
Voici le code pour recupérer la ligne correspondante au prix minimum : soit la ligne contenant P1
Puis Insertion de cette ligne dans la table MinPrice
'connexion à la base
Dim MaDb as new ADODB.Connection
Set MaDb = CurrentProject.Connection
'Declaration des 2 tables (Price et PriceMin)
Dim TblPrice as new ADODB.Recordset
Dim TblPriceMin as new ADODB.Recordset
'Recuperation de la ligne correspondant au pris minimum dans la table Price
TblPrice .open "select Min(Prix) from Price GroupBy Composant",MaDb, adOpenDynamic,
adLockOptimistic
'Insertion de la ligne correspondante dans la table MinPrice
TblMinPrice.open "select * from MinPrice", MaDb, adOpenDynamic, adLockOptimistic
TblMinPrice.fields("Composant")=TblPrice.fields("Composant")
TblMinPrice.fields("Fournisseur")=TblPrice.fields("Fournisseur")
TblMinPrice.fields("Prix")=TblPrice.fields("Prix")
TblPrice.update
La table MinPrice contient maintenant :
_______________________________
| Composant | Fournisseur | Prix |
_______________________________
| C1 | F1 | P1 |
_______________________________