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 :

Requête trop longue pour alimenter une zone de liste [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Débutant
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Points : 269
    Points
    269
    Par défaut Requête trop longue pour alimenter une zone de liste
    Bonjour,

    Je voudrais alimenter une zone de liste avec une requete sql, mais cette dernière est trop longue.

    La voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT tbl_Intervention.Id_Intervention, tbl_Intervention.DateIntervention, tbl_Personnel.Identite, tbl_Ligne.Ligne, tbl_Machine.Machine, tbl_Type.Type, tbl_Categorie.Categorie, tbl_SousEnsemble.SousEnsemble, tbl_Element.Element, tbl_Intervention.Descriptif, tbl_Diagnostic.Diagnostic, tbl_Intervention.DureeIntervention, tbl_Intervention.DureeArretMachine
    FROM ((((((tbl_Ligne INNER JOIN ((tbl_Intervention INNER JOIN tbl_Intervenir ON tbl_Intervention.Id_Intervention = tbl_Intervenir.Id_Intervention) INNER JOIN tbl_Machine ON tbl_Intervention.Id_Machine = tbl_Machine.Id_Machine) ON tbl_Ligne.Id_Ligne = tbl_Machine.Id_Ligne) INNER JOIN tbl_Type ON tbl_Intervention.Id_Type = tbl_Type.Id_Type) INNER JOIN tbl_Categorie ON tbl_Intervention.Id_Categorie = tbl_Categorie.Id_Categorie) INNER JOIN tbl_SousEnsemble ON tbl_Intervention.Id_SousEnsemble = tbl_SousEnsemble.Id_SousEnsemble) INNER JOIN tbl_Element ON (tbl_Intervention.Id_Element = tbl_Element.Id_Element) AND (tbl_Categorie.Id_Categorie = tbl_Element.Id_Categorie)) INNER JOIN tbl_Diagnostic ON tbl_Intervention.Id_Diagnostic = tbl_Diagnostic.Id_Diagnostic) INNER JOIN tbl_Personnel ON tbl_Intervenir.Id_Personnel = tbl_Personnel.Id_Personnel
    ORDER BY tbl_Intervention.DateIntervention DESC;
    J'ai essayé de la mettre au niveau de mon refreshQuery de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Public Sub RefreshQuery()
    Dim sql As String, sqlCompteur As String, sqlSelect As String, sqlFrom As String, sqlWhere As String
    Dim DateFin As Date, DateDébut As Date
    Dim oRst As DAO.Recordset
    Dim odb As DAO.Database
    Set odb = CurrentDb
     
    DateFin = "12/12/5000"
    DateDébut = "10/10/1901"
     
    sqlSelect = "SELECT tbl_Intervention.Id_Intervention, tbl_Intervention.DateIntervention, tbl_Personnel.Identite, tbl_Ligne.Ligne, tbl_Machine.Machine, tbl_Type.Type, tbl_Categorie.Categorie, tbl_SousEnsemble.SousEnsemble, tbl_Element.Element, tbl_Intervention.Descriptif, tbl_Diagnostic.Diagnostic, tbl_Intervention.DureeIntervention, tbl_Intervention.DureeArretMachine"
    sqlFrom = "FROM ((((((tbl_Ligne INNER JOIN ((tbl_Intervention INNER JOIN tbl_Intervenir ON tbl_Intervention.Id_Intervention = tbl_Intervenir.Id_Intervention) INNER JOIN tbl_Machine ON tbl_Intervention.Id_Machine = tbl_Machine.Id_Machine) ON tbl_Ligne.Id_Ligne = tbl_Machine.Id_Ligne) INNER JOIN tbl_Type ON tbl_Intervention.Id_Type = tbl_Type.Id_Type) INNER JOIN tbl_Categorie ON tbl_Intervention.Id_Categorie = tbl_Categorie.Id_Categorie) INNER JOIN tbl_SousEnsemble ON tbl_Intervention.Id_SousEnsemble = tbl_SousEnsemble.Id_SousEnsemble) INNER JOIN tbl_Element ON (tbl_Intervention.Id_Element = tbl_Element.Id_Element) AND (tbl_Categorie.Id_Categorie = tbl_Element.Id_Categorie)) INNER JOIN tbl_Diagnostic ON tbl_Intervention.Id_Diagnostic = tbl_Diagnostic.Id_Diagnostic) INNER JOIN tbl_Personnel ON tbl_Intervenir.Id_Personnel = tbl_Personnel.Id_Personnel"
    sqlWhere = "WHERE (((tbl_Intervention.Id_Intervention)<>0))"
    sql = sqlSelect + sqlFrom + sqlWhere
     
    Me.lstResults.RowSource = sql & " ORDER BY tbl_Intervention.DateIntervention DESC"
    Me.lstResults.Requery
     
    End Sub
    Mais ma liste ne s'alimente pas alors que avec l'assistant requete j'ai bien un résultat en mode execution?

    Cordialement

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    Il ne manquerait pas un espace devant le FROM et le WHERE ?

  3. #3
    Débutant
    Inscrit en
    Décembre 2007
    Messages
    1 235
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1 235
    Points : 269
    Points
    269
    Par défaut
    Re,

    Si, c'était ça.
    Je ne pensais pas que cela pouvais géner.

    Merci beaucoup

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

Discussions similaires

  1. [AC-2007] problème sur requête alimentant une zone de liste via VBA
    Par Rémi GAUDINAT dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/06/2010, 11h17
  2. Réponses: 2
    Dernier message: 13/04/2010, 19h28
  3. Pb avec liste déroulante qui alimente une zone de liste
    Par Tequila_PF dans le forum VBA Access
    Réponses: 8
    Dernier message: 18/06/2008, 09h04
  4. Réponses: 0
    Dernier message: 10/10/2007, 16h40
  5. Réponses: 6
    Dernier message: 04/12/2006, 17h01

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