Gil_
Messages postés18Date d'inscriptionsamedi 25 novembre 2006StatutMembreDernière intervention18 janvier 2007
-
2 déc. 2006 à 14:16
Gil_
Messages postés18Date d'inscriptionsamedi 25 novembre 2006StatutMembreDernière intervention18 janvier 2007
-
8 déc. 2006 à 23:13
Bonjour,
Je souhaite créer un progamme sous access mais je ne sais pas comment faire. Dans ma base de données; j'ai une table avec deux champs "montant" et "sens".
- montant est de type numérique
- sens peut prend la valeur 1 ou 2.
Je voudrais créer dans cette table deux autres champs :
"montant1" qui reprendrait la valeur "montant" si le sens est égale à 1
"montant2" qui reprendrait la valeur "montant" si le sens est égale à 2
Ensuite je voudrais supprimer les champs "montant" et "sens"
chaibat05
Messages postés1883Date d'inscriptionsamedi 1 avril 2006StatutMembreDernière intervention20 novembre 20072 3 déc. 2006 à 17:51
Salut,
toujours dans le même ordre d' idée que nhervagault,
la règle veut que tout ce qui est calculé ne doit pas figuré
dans une table en tant que champ...
mais plutôt généré ; à part des cas précis de traçage et
d' historique, ce qui ne semble pas être le cas dans ton exemple.
Solution proposée:
Au lieu de créer deux champs, construit une requête qui les génère:
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 2 déc. 2006 à 15:58
Salut,
Je ne comprends pas trop la question.
1 --> Tu veux créer des colonnes ou les remplir.
2--> Pour creer des colonnes il faut utiliser ADOX sur access, peut être que ca fonctionne en ado avec une adocommand alter table .... mais je ne suis pas sur.
Regarde sur developpez.com il y un tutoriel ADOX deposé dessus
3 --> Pour alimenter les colonnes il faut que tu fasses une boucle qui parcours tous les enregistrements.
4--> Je pense que ta méthode de dupliquer ta colonne est une mauvaise idée car elle est contraire aux bonnes pratique de base de données, a moins qu'elle sert d'histoire pour garder la valeur n-1
Mais sinon c'est pour moi une mauvaise solution, a moins que tu me démontre le contraire.
nhervagault
Messages postés6063Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention15 juillet 201137 3 déc. 2006 à 17:45
Salut
En gros en vb ca donnerait.
while not rs.eof
if rs(sens) = 1 then strsql "update set montant1 rs(montant) where id = rs(id)
else if rs(sens) = 2 thenstrsql "update set montant1 rs(montant) where id = rs(id)
end if
sqlCommand.execute strsql, conn
rs.movenext
wend
rs.close
Attention a ta selection les parmetre peuvent bloqué la mise à jour des champs si la table ou les enregistrements sont veouillés
Le probleme est que je ne fais jamais ce gere de manip car cela est due a une mauvaise conception de la base de données cf point 4
Bon Courage
Vous n’avez pas trouvé la réponse que vous recherchez ?