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

Macros et VBA Excel Discussion :

VBA SQL sur classeur, Update/Select DSum?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut VBA SQL sur classeur, Update/Select DSum?
    Bonjour,

    Initialement, je voudrais faire une requête Update avec un calcul de somme sur un champ en fonction de certains critères.
    J'ai essayé ce genre de requête, mais sous Excel ça ne fonctionne pas alors que sous Access ça doit pouvoir marcher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Requete = "UPDATE [Feuil10$A1:I10000] AS t1 Set t1.Somme = Dsum(`MonChamp`, 'Select `Article`, `Qte`, `MonChamp` From [Importation$], MonChamp= 'Critere') Where t1.Cle=Cle"
    Cette requête ne fonctionne pas du tout. Sous access, Dsum est utilisée avec des guillemets ". Sous Excel, les guillemets servent à ouvrir et fermer une chaîne de caractère, j'ai donc essayé avec des apostrophes ' et aussi avec ce caractère `, mais rien n'y fait, ça ne fonctionne pas...

    Avez-vous une idée de comment utiliser DSum?

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Requete = "UPDATE [Feuil10$A1:I10000] AS t1 Set t1.Somme = Dsum([MonChamp], (Select [Article], [Qte], [MonChamp] From [Importation$] in 'C:\MonRep\MonFichier.xlsx' 'excel 8.0;HDR=Yes;IMEX=1;' ), MonChamp= 'Critere') Where t1.Cle=Cle"
    si Importation est dans le même fichier Excel, pas besoin de in 'C:\MonRep\MonFichier.xlsx' 'excel 8.0;HDR=Yes;IMEX=1;'

  3. #3
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Salut, et merci beaucoup de ton aide, je ne pensais pas avoir une réponse.
    J'ai adapté ton code, et maintenant j'ai le message suivant : "Vous avez écrit une sous-requête pouvant renvoyer plus d'un champ sans utiliser le mot réservé EXISTS dans la clause FROM de la requête principale. Réviser l'instruction SELECT de la sous-requête pour obtenir un seul champ...

    J'en conclu qu'il ne digère pas le Select... Mais si je n’inclus pas ces champs, comment Dsum peut-il fonctionner?

  4. #4
    Invité
    Invité(e)
    Par défaut
    dès que les chose ce complique, on est vite perdu avec ce genre de truc!

    fais une requête de sélection et intéresse toi juste qu'au Dsum! après on réfléchira de concert!

  5. #5
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Hélas, j'ai le même message d'erreur sur une simple instruction Select...
    J'ai essayé de bricoler avec ça, mais rien à faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Requete = "Select Article, Dsum([Utilisationlibre], (Select [Article], [Utilisationlibre], [Magasin] " & _
    "From [Importation$A1:Q20000])) as t2 From [Importation$A1:Q20000]"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Requete = "Select t1.Article, Dsum([Utilisationlibre], (Select [Article], [Utilisationlibre], [Magasin] " & _
    "From [Importation$A1:Q20000])) as t2 From [Importation$A1:Q20000] as t1"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Requete = "Select t1.Article, Dsum(t3.[Utilisationlibre], (Select t3.[Article], t3.[Utilisationlibre], t3.[Magasin] " & _
    "From [Importation$A1:Q20000] as t3)) as t2 From [Importation$A1:Q20000] as t1"

  6. #6
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Je crois que je vais lâcher l'affaire et passer par deux requêtes différentes, une select et une update, en stockant le résultat du select dans une table temporaire...
    Le SQL sur Excel ca reste quand même très spécifique dès qu'on veut faire un truc un peu plus compliqué...

    Je dois avancer sur ma macro, si jamais quelqu'un à une idée je reste preneur.

Discussions similaires

  1. Aide en SQL sur la clause SELECT
    Par frglyon dans le forum SQL
    Réponses: 10
    Dernier message: 17/02/2011, 16h59
  2. [VBA-SQL]Probleme avec UPDATE
    Par omegabahamut dans le forum Access
    Réponses: 3
    Dernier message: 01/01/2007, 19h54
  3. [SQL] Erreur dans UPDATE SELECT simple
    Par daner06 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/12/2006, 15h58
  4. [VB.Net] Pourquoi ai-je une Erreur SQL sur un update ?
    Par ndsaerith dans le forum Accès aux données
    Réponses: 3
    Dernier message: 03/08/2006, 11h32
  5. [ SQL ] Faire un update avec un select imbriqué
    Par zozolh2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/04/2005, 12h05

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