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

VBA Access Discussion :

Requete sur un recordset


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Par défaut Requete sur un recordset
    Bonjour,

    je cherche le moyen de faire unerequete sur un recordset, j'initialise un recordset avec une requete SQL. J'ai besoin de cette requete pour afficher la selection, mais je voudrais egalement afficher des statistiques.

    Je voulais savoir s'il est possible, sur le recordset directement, de faire une requete style group by pour avoir mes statistiques? que ce soit en passant par un tableau, une methode du recordset, avoir d'autre recordset, n'importe quoi, je voudrais simplement eviter de passer par un table temporaire.

    Merci

  2. #2
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Par défaut
    Bonjour,

    finalement j'ai reussi a trouver un moyen

    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
    21
    22
    23
    24
    25
    26
    27
    Public Sub test()
     
    Dim req1 As String
    Dim req2 As String
    Dim sql1 As DAO.QueryDef
    Dim enr As DAO.Recordset
    Dim enrStat As DAO.Recordset
     
    req1 = "SELECT Table1.Nom, Table1.Prenom, Table1.Numero FROM Table1 WHERE (((Table1.Numero)=5));"
    req2 = "SELECT [sql1].[Nom], count([sql1].[Numero]) FROM sql1 GROUP BY [sql1].[Nom];"
     
    'MA SELECTION
        Set enr = CurrentDb.OpenRecordset(req1)
        If Not (enr.EOF = True) Then
            enr.MoveLast
            MsgBox enr.RecordCount
        End If
     
    'MES STATISTIQUES
        Set sql1 = CurrentDb.CreateQueryDef("sql1", req1)
        Set enrStat = CurrentDb.OpenRecordset(req2)
     
        If Not (enrStat.EOF = True) Then
            MsgBox enrStat.RecordCount
        End If
     
    End Sub
    Comme vous pouvez le constater je ne fais pas mes statistiques sur le premier recordset (enr) mais j'utilise la requete numero un (req1).

    Le probleme c'est que pour faire ma requete 2 (req2) je dois creer ma requete 1 (sql1).
    Donc chaque fois que le programme va tourne je devoir :
    - Creer ma requete 1 (sql1)
    - Executer ma requete 2 (enrstat)
    - Effacer ma requete 1 (sql1)

    Je voulais savoir s'il n'y avait pas moyen de faire ce que je fais mais sans creer sql1, j'ai deja essayé mais je ne sais pas ce que je dois mettre dans mon string (req2)??

    Merci

    (Ceci est un programme de test bidon)

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2003
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juillet 2003
    Messages : 50
    Par défaut
    Salut,

    Tu pourrais le faire en un requête sql.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    req = "SELECT Table1.Nom, Table1.Prenom, Table1.Numero, stat.cpt FROM Table1, (SELECT [sql1].[Nom] as nom , count([sql1].[Numero]) as cpt FROM sql1 GROUP BY [sql1].[Nom]) as stat " & _
    "INNER JOIN [SELECT [sql1].[Nom] as nom , count([sql1].[Numero]) as cpt FROM sql1 GROUP BY [sql1].[Nom]]. AS stat ON Table1.Nom = stat.nom " & _
    "WHERE (((Table1.Numero)=5))"
    A+,
    MasterSleepy.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    on peur parfaitement dans la même requête manipuler des données et leurs stats
    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
     
    SELECT *
    FROM [SELECT 1 as ordre,"detail" AS nature, rubrique,item
    FROM matable
    union
    SELECT 2 as ordre,"Stotaux" AS nature, rubrique, sum(item) as st
    FROM matable group by rubrique
    union
    select 3 as ordre,"total" as nature,null as rubrique,sum(item)
    from matable
    union
    select 4 as ordre,"nombre" as nature,rubrique, count(rubrique) as nb
    from matable group by rubrique
    union
    select 5 as ordre,"moyenne" as nature,rubrique,avg(item) as moy
    from matable group by rubrique]. AS tempo
    WHERE ordre=[choix];

  5. #5
    Membre averti
    Inscrit en
    Juin 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2007
    Messages : 19
    Par défaut
    Hummm... c'est joli tout ca chapeau

    Merci a vous deux je devrais m'ensortir avec ca en tout cas avec le programme bidon ca marche maintenant je vais voir dans mon programme principale si j'y arrive aussi

    Merci

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

Discussions similaires

  1. [XL-2010] Requete sur Classeur fermé, J’ai un problème avec un recordset
    Par Henri-gp dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 14/01/2013, 12h28
  2. erreur 3201 sur une requete INSERT avec recordset
    Par forzaxelah dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/01/2012, 08h01
  3. une requete SQL sur un recordSet
    Par skillipo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/11/2007, 13h15
  4. VB5 : Requete SQL sur un recordset
    Par jaymzwise dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 10/09/2007, 15h04
  5. Requete Action sur un recordset.
    Par anikeh dans le forum Access
    Réponses: 8
    Dernier message: 28/12/2005, 12h13

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