Requête MAJ ACCESS

Résolu
ifrpi Messages postés 27 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 20 octobre 2008 - 15 mai 2008 à 10:32
ifrpi Messages postés 27 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 20 octobre 2008 - 16 mai 2008 à 10:21
Bonjour a tous,

J'ai importé un fichier unix en format texte contenant mes stocks par dépot
Ref  Design  Depot  Qte   (entetes de colonne de ma table nommée "stk")

j'ai deux problemes:

1) dans ma feuille de données certains champs sont vide soit: Ref et Design

mais les lignes vides inferieures doivent contenir la meme ref et la meme design que la ligne superieur afin de pouvoir trier et manipuler a volonté
mes données.

2) Dans ma colonne Depot, les données recupérées brut sont sous forme numérique soit 2, 10, 12, 67et92 .
chaque numero correspond a un nom . exemple: 2= Reaumur 10= Rennes etc...
j'ai créé une requete mise a jour pour remplacer les numeros par des noms.
mais je n arrive pas a faire tous les changements dans la meme requete je suis obligé de faire autant de "requete ajout" que de numero de depot
UPDATE stk SET stk.Depot = "Reaumur"
WHERE (((stk.Depot)="2"));
comment faire?

bon et bien voila de quoi reflechir un peut

merci pour votre aide

4 réponses

cs_molo molo Messages postés 55 Date d'inscription lundi 14 novembre 2005 Statut Membre Dernière intervention 23 juin 2008
15 mai 2008 à 12:19
Salut,

Alors je construirais un tableau dynamique du genre :

Dim Tableau() as string ou variant

Puis selon ton nombre de variable possible

Redim Tableau(NbVariable,2)
Tableau(1,1)="Réaumur"
Tableau(1,2)=2

Tableau(2,1)="Rennes
Tableau(2,2)=10

Puis je boucle sur ta requête :

for i=1 to ubound(Tableau)
       "UPDATE stk SET stk.Depot = '" & Tableau(i,1) & "'"
       "WHERE (((stk.Depot)="& Tableau(i,2) & ")); "
next i

Voilà, malheureusement pour automatiser tu dois te palucher toutes les variables,
à moins de disposer de la liste des variables dans un autre fichier. Tu pourrais donc charger dynamiquement ton Tableau(x,y)
Bon dev
3
ifrpi Messages postés 27 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 20 octobre 2008
15 mai 2008 à 17:01
Merci pour ta reponse, mais pour moi cela vol beaucoup trop haut
si tu pouvais etre un tout petit peut plus clair car la je suis (comment dire)
PERDU!!!!!!

A Suivre....
3
cs_molo molo Messages postés 55 Date d'inscription lundi 14 novembre 2005 Statut Membre Dernière intervention 23 juin 2008
15 mai 2008 à 18:40
Qu'est-ce que tu ne comprends pas ?

La notion de tableau ?

A priori tu veux executer une requete autant de fois que tu as de paramètres à tester dans ton fichier.
Le but est de réunir tous les paramètres dans une structure dynamique pour boucler sur ta requete.
en reprenant l'exemple :

Dim Tableau() as string       //Je déclare mon tableau

//J'ai par exemple 3 paramètres avec chacun 2 dimensions (Nom ville et code)
// à tester, je redimensionne donc mon tableau selon mon nombre de parametres
Redim Tableau(3,2)

// J'affecte mes variables au tableau
// 1e variable
Tableau(1,1)="Réaumur"
Tableau(1,2)=2

// 2e variable
Tableau(2,1)="Rennes
Tableau(2,2)=10

// 3e variable
Tableau(3,1)="Paris"
Tableau(3,2)=1

//Puis je boucle sur ta requête en répétant autant de fois que j'ai de parametre
//et je passe mon tableau
//dans le code :
for i=1 to ubound(Tableau)
       "UPDATE stk SET stk.Depot = '" & Tableau(i,1) & "'"
       "WHERE (((stk.Depot)="& Tableau(i,2) & ")); "
next i

//Cette méthode est surtout interessante si tu peux charger Tableau() dynamiquement, c'est-à-dire par exemple avoir tes paramètres dans un fichier
.txt, .xls, .xml, etc

En espérant t'avoir aidé.
Bon dev
3
ifrpi Messages postés 27 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 20 octobre 2008
16 mai 2008 à 10:21
Merci,

Je test
0
Rejoignez-nous