IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Requete de mise a jour avec une somme definie par critere (2 Problemes)


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Requete de mise a jour avec une somme definie par critere (2 Problemes)
    Bonjour j'avais déjà posté une question pour ce probleme et il avait été résolu
    voici le lien
    http://www.developpez.net/forums/d13...i-par-critere/

    Seulement j'ai voulu refaire le même type de requete avec exactement la même syntaxe seulement l me met un message d'erreur donc je ne comprend pas puisque cela avait tres bien marché la premiere fois

    Voici mon code
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE DevisLigne SET DevisLigne.[Temps Réel] = DSum('[Heure (1)]','[MO]','[Tache 1]=' & [Libelle])"
    Seulement il met erreur de syntaxe dans '[Tache 1]=' et il précise "Opérateur absent"

    Avez vous une idée

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,
    Comme j'imagine que Libelle,c'est du texte et est un variable, il faut le sortir de tes guillemets et le mettre entre '

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "UPDATE DevisLigne SET DevisLigne.[Temps Réel] = DSum('[Heure 
    (1)]','[MO]',[Tache 1]='" & [Libelle] & "')"
    @+

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Non ce n'est pas une variable. il s'agit d'une colonne de la table DevisLigne
    En faite j'ai deux table avec deux colonne pour simplifier

    DevisLigne ( Libelle , Temps Réel )
    MO ( Tache 1 , Heure (1) )

    je veux faire la somme des Heure (1) et que ca apparaisse dans Temps réel mais qu'il choisisse seulement les lignes de MO où Tache 1 est identique à Libelle

    J'ai fait un petit dessin de principe pour que ce soit plus clair
    Images attachées Images attachées

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut Limite combinaison SQL-ACCESS-VBA
    Bonjour,

    Je crois bien que nous avons atteint la limite de la combinaison de ces trois outils dans le cas où le critère est du texte. Il y a un problème au niveau de l'interpretateur VBA je pense

    Parce que
    1 - si tu enregistres la requête sous MAJDevisLigne et tu lances cette requête avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.OpenQuery MAJDevisLigne
    dans VBA, ça marche.

    2 - Soit il faudrait re écrire le DSUM en une syntaxe SQL comme étant sous-requête. Et refaire exécuter la totalité du syntaxe en VBA. Soyons humble, n'étant pas un grand spécialiste de ce genre de choses, je laisse le soin à d'autres membres qui pourront peut-être nous donner une solution de cette façon.

    3 - Moi, je te propose un petit code VBA-fonction ACCESS qui fait la même chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim rstDevis As DAO.Recordset
    Set rstDevis = CurrentDb.OpenRecordset("DevisLigne")
    With rstDevis
        .MoveFirst
        Do While Not .EOF
        .Edit
        ![Temps Réel] = Nz(DSum("[Heure (1)]", "[MO]", "[Tache 1]='" & ![Libelle] & "'"), 0)
        .Update
        .MoveNext
        Loop
    End With
    rstDevis.Close
    Set rstDevis = Nothing
    @+

Discussions similaires

  1. Requete de mise a jour avec une somme defini par critere
    Par kinof dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 18/07/2013, 20h06
  2. Requete de Mise a jour avec une Jointure :
    Par Bonero dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/01/2012, 16h05
  3. mise a jour avec une requete croisee
    Par antoine dpt dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/09/2009, 13h55
  4. probleme avec des calculs et une requete de mise a jour
    Par el_quincho dans le forum Access
    Réponses: 2
    Dernier message: 16/03/2006, 10h06
  5. Réponses: 5
    Dernier message: 25/11/2005, 12h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo