Flux rss
Rechercher : dans
Par : Mots clés Nom d'utilisateur
Messages sans réponse

[SQL Access] : update d'après résult de count

jean-françois, le jeudi 15 septembre 2005 à 11:49:49 
 Signaler ce message aux modérateurs

Bonjour,
je cherche sans succès depuis quelque jour à écrire une requete qui met à jour un champ d'une table access à partir d'un comptage avec critère de sélection d'enregistrement d'une autre table. (inscription dans une table récapitulative du nombre d'élève d'une école primaire pour chaque niveau).
la requête de sélection (select count(*) from eleve where condition_ remplie) affiche bien le résultat escompté, mais lorsqu'il s'agit d'écrire ce résultat dans une autre table, cela devient exotique :
UPDATE enq19, eleve SET [enq19].[nbps] = (SELECT Count(*)
FROM eleve
WHERE ((([eleve].[section])="PS1" Or ([eleve].[section])="PS2") AND (([eleve].[date de sortie]) Is Null))); aboutit à l'affichage de 131 valeurs de 0 (?!), mais pas à la mise à jour d'un champ de la table "enq19" -131 étant le nombre d'enregistrement de la table "eleve"-. des modifs de la même requete aboutissent elles à des messages d'erreurs divers et variés.
si quelqu'un pratique leSQL Access et peut m'aider sur le sujet, cela m'aiderait fortement. à défaut, un script équivalent en VBA ?
merci d'avance

1

Jacques, le jeudi 15 septembre 2005 à 17:13:11

Bonsoir,

Je ne suis pas sûr d'avoir bien compris.

Ma première réaction est de me demander quel est l'intérêt de mettre à jour une table avec des informations en provenance d'une autre table.
Une requête avec jointure entre les 2 tables concernées suffit pour obtenir le résultat recherché.

Il faut éviter d'une part les manipulations et, d'autre part, d'avoir plusieurs tables contenant les mêmes informations.

Cordialement
La science se limite à trouver ce qui existe depuis toujours
Hubert REEVES

Répondre à Jacques

2

jean-françois, le vendredi 16 septembre 2005 à 11:37:53

Bonjour et merci de l'intérêt porté à mon problème.

je cherche en réalité à remplir une feuille de statistique, dont les données sont le résultat de comptage de données d'une table selon différents critère : nombre d'enfant scolarisés dans une école par niveau, provenance géographique des élèves, nombre d'élève d'age normal, en retard d'un an, en avance d'un an, proprtion de garçons et de filles ...
c'est la raison pour laquelle je souhaite mettre à jour une table (enq19) avec les résultats de requêtes qui effectuent des comptages sur une autre table (eleve).

merci

Répondre à jean-françois

3

Jacques, le vendredi 16 septembre 2005 à 13:52:36

Bonjour,

Pour satisfaire votre besoin, je vous suggère de créer une table spécifique via une requête "création de table"
La nouvelle table sera toujours à jour, car à chaque lancement de la requête, elle sera recréée en prenant en compte les informations less plus récentes des 2 tables en jeu :

Voir l'aide access {F1} et Saisir "création de table"

En mode Création de requête, cliquer sur la flèche à côté de Type de requête dans la barre d'outils, puis sur Création de table. La boîte de dialogue Requête création de table s'affiche.

Cordialement
La science se limite à trouver ce qui existe depuis toujours
Hubert REEVES

Répondre à Jacques

4

Chrisb, le mercredi 17 octobre 2007 à 23:03:27

Bonsoir,
Une idée qui vaut ce qu'elle vaut :

avez-vous essayé de renvoyer le résultat de la requete count dans une variable, et de faire ensuite l'update avec cette variable ?

Cordialement,

Heureux soient les fêlés, car ils laisseront passer la lumière (Audiard)

Répondre à Chrisb

5

 guest, le vendredi 26 octobre 2007 à 10:31:47

Normale, le where conditionne le select mais pas le update ce qui donne zero pour chaque valeur. C'est une erreur courante avec cette forme de mise à jour. Le format est plutot : update t set t.c = (selec tt.c from tt where tt.b = t.b) where exist (selec tt.c from tt where tt.b = t.b), enfin c'est plutot une forme sous informix, il y en a d'autres. Par contre sous Access je ne sais pas et je cherche aussi. Ce qu'il faut bien comprendre c'est la portée des where respectifs.

Cordialement.

Répondre à guest
Pb Access Update/Select Imbriqué Bonjour, J'essaye d'éxécuter cette requête sous access : UPDATE Employe_All TD set TD.Nom=(select TO.Nom from Employe TO where TO.Code= TD.N°EmpHP ); Mais celui-ci me retourne : "L'opération doit utiliser une requête qui peut être mise à jour" Je ne... www.commentcamarche.net/forum/affich-7766040-pb-access-update-select-imbrique
[SQL] UPDATE d'une table (Résolu) Bonjour, J'ai un petit soucis lorsque je veux updater un champ d'un enregistrement d'un table dans ma base de données. En effet, lorsque j'effectue la requete SQL suivante : UPDATE offre o SET o.charges = '0' WHERE o.no_asp = '1302193' Cette dernière... www.commentcamarche.net/forum/affich-2798936-sql-update-d-une-table
Requetes SQL ACCESS sous VB EXCEL Bonjour, QQun connait il un peu comment utiliser le langage SQL issues de ACCESS dans Visual Basic Excel. Pour effectuer un programme, je dois d abord faire des requetes sous ACCESS et ensuite importer les données dans des onglets sur excel. Je... www.commentcamarche.net/forum/affich-2694076-requetes-sql-access-sous-vb-excel
MySQL - Update avec jointureSi vous avez deux tables possédant une clé commune (dans le cas ci-dessous il s'agit de la clé primaire "id"), il est possible de mettre à jour un champ d'une des deux tables (update_table) grâce aux données de la seconde (reference_table) à l'aide... www.commentcamarche.net/faq/sujet-10426-mysql-update-avec-jointure
PhpMyAdmin - 1045- Access denied for user root@localhostPhpMyAdmin - Access denied for user root’@localhost Cette astuce est destinée à ceux qui ont un problème d’ouverture de PhpMyAdmin (par exemple avec WAMP Server ou EasyPHP) avec l'erreur suivante : #1045- Access denied for user... www.commentcamarche.net/faq/sujet-12341-phpmyadmin-1045-access-denied-for-user-root-localhost
[SQL]Requête updateBonjour à tous J'ai un gros problème et je ne comprend pas pourquoi? Je développe une appli web en java et j'ai besoin d'exécuter des requêtes d'update afin de mettre à jour mes tables. Certaines requêtes devraient me permettre de mettre à jour... www.commentcamarche.net/forum/affich-1730023-sql-requete-update
SQL ACCESS fonction trimSalut à tous, je m'y connait pas trop en sql pour modifier des champs ds une table (pour utiliser la fonction trim (virer les espaces à gauches et à droite) il y a deux fonctions : RTRIM et LTRIM mais c'est surtout la commande en début de ligne que je... www.commentcamarche.net/forum/affich-828791-sql-access-fonction-trim
[sql] pb update colonnebonjour, je veux mettre à jour une colonne de mes tables , si la condition where n'est pas validée je veux mettre la colonne à 0 . j'ai essayé cette commande , ca marche mais elle ne rend pas à 0 arg si le select ne donne pas de réponse. update... www.commentcamarche.net/forum/affich-2263751-sql-pb-update-colonne
Télécharger MS SQL MigratePour des raisons pratique ou quasiment professionnel, il est nécessaire de convertir des bases de données entre différents formats. Le principal, c’est qu’il n’y ait aucune perte de donnée lors de la conversion. MS SQL Migrate est... www.commentcamarche.net/telecharger/telecharger-34058211-ms-sql-migrate
SQL - JointuresExpression des jointures Une jointure (ou θ-jointure) est un produit cartésien de deux tables. On appelle équijointure une θ-jointure dont la qualification est une égalité entre deux colonnes. En SQL, l'expression d'une jointure se... www.commentcamarche.net/contents/sql/sqljoint.php3
SQL - Création de tableLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE... www.commentcamarche.net/contents/sql/sqlcreate.php3
SQL - Mise à jour d'informationsLe SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits suffisants...). La modification d'une table consiste à: ajouter des tuples modifier des tuples existants ou bien supprimer des tuples Insertion de... www.commentcamarche.net/contents/sql/sqlmaj.php3