Actualisation données type Vrai/Faux par requête SQL
toutoune72
Messages postés6Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention18 novembre 2004
-
17 nov. 2004 à 17:24
toutoune72
Messages postés6Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention18 novembre 2004
-
18 nov. 2004 à 17:32
Bonjour,
je suis plutot novice en Access et je dois actualiser une table qui contient un champ de type vrai/faux.
En gros, s'il y a l'expression "Turbidité" dans le champ "usine de traitement" d'une autre table, je souhaite cocher le champ "Persence_usine" de ma table de résultat.
J'avais tapé les lignes ci-dessous mais ca ne marche pas : je ne vois pas la case de mon champ "Presence_Usine" se cocher.
If InStr(rs![usine de traitement], "Turbidité") > 0 Then
t![Presence_Usine] = Vrai
endif
si quelqu'un peut m'expliquer que taper de facon simple, je vous en serais très reconnaissante.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 nov. 2004 à 19:19
Salut toutoune72
Si le type du champ est booléen, essaye True/False au lieu de Vrai/Faux.
Sinon, avant ces ligne d'exemple, as-tu géré la scrutation de rs avec les rs.MoveFirst et une boucle avec rs.MoveNext ?
Vala
Jack
NB : Je ne répondrais pas aux messages privés
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 juin 2007 17 nov. 2004 à 20:08
Salut toutoune72,
jack à raison, Access n'étant absolument pas français, il faux utiliser True/False dans les tables Access.
Si tu utilises des formulaires Access reliés à ta table, tu peux aussi utiliser (et des fois ça fonctionne mieux même) -1 pour coché, 0 pour non coché.
Dernière chose, le instr dans ta requête peut fonctionner, mais il est préférable d'utiliser la commende like qui se rapproche plus du sql.
Dans le cas que tu as exposé, et sauf si tu as des contraintes pariculières, une requête sql justement peut tout faire automatiquement :
mais pour cela tu doit avoir un champ commun dans les 2 tables, une sorte de lien
Imaginons que tu as un champ non usine dans les 2 tables, la requête suivante fait l'affaire :
UPDATE Table1 INNER JOIN Table2 ON Table1.[nom usine] = Table2.[nom usine] SET Table1.[Presence usine] = True
WHERE (((Table2.[usine de traitement])="Turbidité"));
En espérant avoir répondu à ta question,
Bon courage,
Guich
gandalflegris007
Messages postés211Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention11 juin 2007 18 nov. 2004 à 14:13
Tu peux expliquer clairement ce que tu cherches à faire et quelles sont tes contraintes :
dans ton 1er post tu parlais de mettre à jour un enregistrement et là tu fais un addnew.
Est ce que t'es obligée de passer par du code VB ou est-ce que c'est parce que tu connais pas SQL.
Parce qu'avec une simple requête SQL, elle fait tout pour toi, recherche de tous les éléments avec Turbidité et ajoute ou modifie un enregistrement dans une autre table.
toutoune72
Messages postés6Date d'inscriptionmercredi 22 septembre 2004StatutMembreDernière intervention18 novembre 2004 18 nov. 2004 à 16:56
elle est super bordelique (je crois que ce sont des non-informaticiens comme moi qu'il l'ont faite)
mais je suis ok, je ferai une copie de ma BD avec uniquement ce qui concerne mon pb