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 :

Execution d'une requete sous excel-debutant en excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut Execution d'une requete sous excel-debutant en excel
    Bonjour à tous

    Je suis debutant en excel, grace à la faq j'ai reussi à faire quelque manip en excel

    la je dois executer une requete, j'ai une erreur au niveau de ma requete sql, je precise que requete1 est une grande requete que j'ai importé de ma base sur access voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set db = CurrentDb()
    strSQL = "SELECT requete1.machine from requete1 where requete1.Année = Feuil4.Range("B3")"  'Erreur
    Set rs = db.OpenRecordset(strSQL)
     
    rs.Fields(machine) = Feuil2.Range("B1")
    rs.MoveLast
    Je vous demande votre aide svp

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il faut que tu sortes la feuille de ta requête.

    Essayes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT machine from requete1 where Année =" & Feuil4.Range("B3")
    Au cas où cela ne fonctionne pas Année est bien un numérique ou une vrai date, et le formatage ne fait apparaitre que l'année ?

    Starec

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut
    merci de ton aide pour la requete c'est bon mais j'ai encor une petite erreur svp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set db = CurrentDb()  'Erreur
    strSQL = "SELECT requete1.machine from requete1 where requete1.Année =" & Feuil4.Range("B3")
    Set rs = db.OpenRecordset(strSQL)
    Erreur : function ou sub non definie

    j'ai activé le DAO.

    et j'ai aucune idée parceque je travail normalment sur access mais pas j'ai pas trop le choix

    Merci à vous

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Sur quelle ligne est l'erreur ? Comment as-tu déclaré tes variables ?

    Starec

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut
    Voici ma declaration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim myCount As Integer
    Dim rsCount As Integer
    et l 'erreur c'esut sir le db = CurrentDb()

    sinon j'ai essayé sa aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    strSQL = "SELECT requete1.machine from requete1 where requete1.Année =" & Feuil4.Range("B3")
    Set rs = CurrentDb.OpenRecordset(strSQL)  'Erreur
    Merci à vous d 'avance

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    C'est normal, tu es sous Excel et non sous Access (je n'ai pas tilté tout de suite, car je navigues sur plusieurs forums à la fois).

    Si j'ai bien compris ce que tu veux faire, cet article de la Excel devrait t'aider : Comment importer les données d'une table Access dans la feuille de calcul ?

    Tu y verras comment remplacer le CurrentDB.

    Starec

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut
    Bon voila j'ai un peu changé d'algo mais pas grave

    au debut j'avais importé requete1 par MS Query de ma base de données avec tous les champs que j'utiliserai et l'idée c'étais de la découper en petite requete.

    alors que la j'execute directement la requete dans ma base seulement voila sa ma générer une nouvelle erreur comme quoi le resultat etait seulement en lecture seul et que je peux pas l'ecrir dans ma case merci de me proposer une solution

    mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim strSQL As String
    Dim myCount As Integer
    Dim rsCount As Integer
     
    Set db = DAO.OpenDatabase("m:\PublicLCommun\SUIVI DE PRODUCTION\Stage Yassine\Suivie de Production.mdb", False, False)
        strSQL = "SELECT tableau.machine from tableau where tableau.Année LIKE " & Feuil4.Range("B3")
        Set rs = db.OpenRecordset(strSQL, DAO.dbOpenSnapshot)
     
     
    rs.Fields(0) = Feuil2.Range("B1").Value    'Erreur rs est en lecture seul
    Merci à vous

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Citation Envoyé par Kalvin_20 Voir le message
    alors que la j'execute directement la requete dans ma base seulement voila sa ma générer une nouvelle erreur comme quoi le resultat etait seulement en lecture seul et que je peux pas l'ecrir dans ma case merci de me proposer une solution
    Ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rs.Fields(0) = Feuil2.Range("B1").Value    'Erreur rs est en lecture seul
    tu veux écrire dans le champ la donnée qui est dans la cellule B1, ce serait pas plutôt l'inverse, affecter la valeur du champ à la cellule B1 ?

    Starec

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 209
    Points : 103
    Points
    103
    Par défaut
    Merci à vous Starec

    ça ira plus vite maintenant normalement j'ai plusieur requete de ce genre à faire merci encor

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Temps d'execution d'une requete sous VBA 4 minutes
    Par sihamelm dans le forum VBA Access
    Réponses: 6
    Dernier message: 24/11/2012, 00h04
  2. execution d'une macro sous excel
    Par eclipse012 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/02/2008, 21h31
  3. Réponses: 2
    Dernier message: 19/10/2007, 13h49
  4. probleme de lenteur lors de l'execution d'une macro sous excel
    Par smartbis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/05/2007, 08h49
  5. Executer une requete sous MS DOS
    Par miya dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/12/2006, 11h46

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