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 :

Modification requête SQL dans code VBA excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 127
    Points : 26
    Points
    26
    Par défaut Modification requête SQL dans code VBA excel
    Bonjour,

    Je cherche à modifier les requêtes SQL de mon code afin que ça me résolve le problème expliqué dans le document Word.
    Je ne voit pas comment faire.
    Je vous mets en pièce jointe les fichiers que j'utilise.

    J'avais pensé modifier les requete de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sql = "Select  * from [2015$A6:J500] where [Demandé le]=MAX(Demandé le) and  [Txx-xxxxx]='" & Me.ComboBox1.Text & "' and [Référence pièce Timex]='" & Me.ComboBox2.Text & "' and Description='" & Me.ComboBox3.Text & "' & [Fait]="" "
    Mais ça me mets une erreur sur le [Demandé le]=MAX(Demandé le) et sur le [Fait]="".

    Comment puis-je faire ?

    (C'est le seul moyen que je vois pour le moment pour contourner mon problème.

    Merci d'avance pour votre aide
    Cordialement
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Je pense qu'il te manque des guillemets pour séparer ta chaîne SQL des variables
    Dans ceci, j'imagine que 2015$A6:J500 est une plage de la feuille 2015, c'est ça ? et (Demandé le) est le nom d'une plage , c'est aussi ça ?
    Sql = "Select * from [2015$A6:J500] where [Demandé le]=MAX(Demandé le)
    Si c'est bien ça, il faudrait écrire quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sql = "Select  * from [" & 2015!$A6:J500 & "] where [Demandé le]=" & MAX(Demandé le) & ".....

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2015
    Messages : 127
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    2015$A6:J500 est bien le nom de la plage.
    Demandé le est le nom d'une colonne de cette plage comme Txx-xxxxx ou Description ou Référence pièce Timex.

    En fait, je veux que la requète sélection toutes les lignes avec les information renseigné dans les combobox et qu'elle me garde que celle avec la date (renseigné dans la colonne demandé le) la plus grande entre ces lignes ayant les même information.

    J'ai essayé ce que tu m'as dis et ça ne marche pas.

    Je ne vois pas comment faire...

    Merci d'avance pour votre aide.
    Julien

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonsoir.

    Pour désigner la plage comme source de données, je pense que c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... FROM [2015$A6:J500]
    Ensuite je pense que ta requête ne peut pas fonctionner. Tu fais une requête de sélection et Max() n'a de sens que dans un regroupement. Tu peux t'en tirer avec une sous-requête, mais le plus simple est de faire en 2 étapes.

    D'abord chercher la valeur Max
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select Max([Demande le]) as MaxDemande FROM [2015$A6:J500]; "
    Puis utiliser la valeur lue dans une nouvelle requête de sélection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * FROM [2015$A6:J500] WHERE [Demande le] = ...
    Attention si Demandé le est une date il faut formater la valeur Max dans la clause WHERE.

    En espérant que cela t'aide,

    pgz

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    http://www.developpez.net/forums/d15...a/#post8166469

    Ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sql = "select MAX([Demandé le]) as MaxDemande,[Demandé par],[Txx-xxxxx],[Référence pièce Timex],[Description pièce TIMEX],[Description],"
    Sql = Sql & "[Type],[Quantité],[URGENT],[Fait],[Durée d'usinage UPH-2],[Durée d#usinage UP32j] "
    Sql = " from [2015$A6:J500] where  [Txx-xxxxx]='" & Me.ComboBox1.Text
    Sql = Sql & "' and [Référence pièce Timex]='" & Me.ComboBox2.Text & "' and Description='" & Me.ComboBox3.Text & "' "
    Sql = Sql & "Group By [Demandé par],[Txx-xxxxx],[Référence pièce Timex],[Description pièce TIMEX],"
    Sql = Sql & "[Description] , [Type], [Quantité], [URGENT], [Fait], [Durée d'usinage UPH-2], [Durée d#usinage UP32j]"

Discussions similaires

  1. Requête SQL dans une macros Excel
    Par Lebijuu dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/05/2014, 14h58
  2. Requête Sql dans code vba
    Par amartik dans le forum IHM
    Réponses: 1
    Dernier message: 28/01/2010, 21h21
  3. utiliser des espaces dans requêtes SQL, dans du VBA
    Par willy-78milles dans le forum VBA Access
    Réponses: 13
    Dernier message: 26/03/2009, 11h31
  4. requete sql dans code vba
    Par kernel57 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/01/2008, 16h30
  5. Problème SQL dans code VBA
    Par benjisan dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 15/05/2007, 14h22

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