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 :

Plusieures requêtes SQL en vba dans la même macro?


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 388
    Points : 72
    Points
    72
    Par défaut Plusieures requêtes SQL en vba dans la même macro?
    Bonjour,
    peut-on mettre 2 ou plusieures(3, 4 ..) requêtes SQL en vba dans la même macro...? pour exploiter ensuite de façon différenciées les les résultats
    (par exemple sur un Form_Load)
    avec ceci comme idée..
    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
     
    Private Sub Form_Load()
    SQL1 = "SELECT..........ma première requête......test.x....;"
     
    SQL2 = "SELECT..........ma deuxième requête......test.y....;"
     
    Set oSQL = CurrentDb.OpenRecordset(SQL)
     
    Dim a As Variant
    a = oSQ1L("x")
    If oSQL1("x") = "" Then a = "pas disponible"
     
     
    Dim b As Variant
    b= oSQ2L("y")
    If oSQL2("y") = "" Then b = "pas disponible"
     
     
    End Sub
    avec bien sur une identification propre à chaque requête..
    merci pour vos conseils.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Oui on peut.
    Cependant concernant ton ébauche de code, je dirai ceci :
    Une requête retourne un jeu d'enregistrements qui ne peut pas être affecté à une variable de type string.

    Que cherches-tu exactement à récupérer avec tes requêtes ?

    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 388
    Points : 72
    Points
    72
    Par défaut
    bonsoir et merci.
    je cherche a récupérer des valeurs numériques et date/heure dans plusieurs tables différentes et en fonction du niveau de certaines valeurs, déclancher l'envoi de mail auto contenant les valeurs concernées. (la procédure d'nvoi mail est OK)
    en fait, ce post fait suite à celui-ci:
    http://www.developpez.net/forums/d13...timer-requete/

    Mais il se trouve que mes requêtes sont plus compliquées que prévues donc je voudrais les diviser
    je ne sais pas si c'est possible..

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    La lecture de la discussion que tu as mis en lien ne m'éclaire pas trop.
    Si je reprends ton code initial (celui de cette discussion), le code serait :
    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
    Private Sub Form_Load()
    Dim oRS1 as DAO.Recordset, oRS2 as DAO.Recordset
     
    SQL1 = "SELECT..........ma première requête......test.x....;"
     
    SQL2 = "SELECT..........ma deuxième requête......test.y....;"
     
     
    Dim a As Variant
    Set oRS1 = CurrentDb.OpenRecordset(SQL1)
    a = oRS1("x")
    If oRS1("x") = "" Then a = "pas disponible"
    oRS1.Close
     
     
    Dim b As Variant
    Set oRS2 = CurrentDb.OpenRecordset(SQL2)
    b= oRS2("y")
    If oRS2("y") = "" Then b = "pas disponible"
    oRS2.Close 
     
    End Sub
    Cependant ce code ne lit que le premier enregistrement des requêtes 1 et 2.

    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 388
    Points : 72
    Points
    72
    Par défaut
    bonjour,
    en fait mon code n'était pas complet..voiçi ci dessous un code plus conforme, mais je vais faire un essai avec les conseils de ton dernier post.


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Private Sub Form_Load()
    Timer1:
    'Attendre (5 * 60) 'lancement de la boucle toutes les 1 heure
    Attendre (0.1 * 60) 'lancement de la boucle toutes les 10 sec...pour test
     
     
    SQL1 = "SELECT..........ma première requête......test.x....;"
     
    SQL2 = "SELECT..........ma deuxième requête......test.y....;"
     
    Set oSQL = CurrentDb.OpenRecordset(SQL)
     
    Do Until oSQL.EOF
     
     
    Dim a As Variant
    a = oSQL1("x")
    If oSQL1("x") = "" Then exit sub
     
     
    Dim b As Variant
    b= oSQL2("y")
    If oSQL2("y") = "" Then exit sub
     
        If oSQL1("x")> 1.4 And oSQL2("y") > Now - (240 / 1440) Then
     
     
    '---------------------------------Commande d'envoi mail-------------------------------------
     
    '----------------------------- FIN Commande d'envoi mail------------------------------------
        End If
        oSQL.MoveNext
    Loop
    'GoTo Timer1
    End Sub

Discussions similaires

  1. [XL-2003] Erreur requête SQL en VBA dans Excel : colonne contenant des chiffres et des lettres
    Par Sergeith dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/08/2009, 14h49
  2. Erreur requête SQL en VBA dans Excel
    Par Sergeith dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/06/2009, 16h06
  3. Plusieurs requêts SQL dans un QReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 9
    Dernier message: 23/05/2006, 16h04
  4. [SQL] Traitement de plusieurs requêtes .SQL dans un script PHP?
    Par M4x dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/03/2006, 20h59

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