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 :

Associer un résultat à une variable


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2014
    Messages : 62
    Points : 35
    Points
    35
    Par défaut Associer un résultat à une variable
    Bonjour à tous,

    Je souhaiterais associé le résultat d'un code SQL à une variable comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim SQL As String
    Dim n As Integer
     
            SQL = "SELECT COUNT (*) FROM MaTable WHERE ... ;"
            n = DoCmb.Run SQL
    Mais on m'indique une erreur sur la dernière ligne, comment solutionner ce problème.
    Merci à tous pour vos suggestions.

    BH

  2. #2
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Mars 2014
    Messages : 219
    Points : 336
    Points
    336
    Par défaut
    La FAQ de developpez : http://access.developpez.com/faq/?page=SQL#Recordset


    Un exemple d'utilisation du recordset :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Sub DAOOpenRecordset ()
        Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim SQL As String
        ' Ouverture de la base de données 
        Set db = DBEngine.OpenDatabase (".\Comptoir.mdb")
        SQL = "SELECT COUNT (*) FROM MaTable WHERE ... ;"
        ' Ouverture du Recordset 
        Set rst = db.OpenRecordset (SQL, dbOpenForwardOnly, dbReadOnly)
        ' Fermeture du Recordset
        rst.Close
    End Sub
    Cordialement
    Si débugger est l'art de corriger les bugs, alors programmer est l'art d'en créer.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    En plus le forum regorge de topics sur le sujet...
    Je rajouterai à ton exemple comment parcourir le recordset
    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
    Sub DAOOpenRecordset ()
        Dim rst As DAO.Recordset, fld As DAO.Field
        Dim SQL As String
     
        SQL = "SELECT champs1, champs2 FROM MaTable;"
        ' Ouverture du Recordset 
        Set rst = CurrentDb.OpenRecordset (SQL)
        ' Parcours du recordset (pour chaque enregistrement retourné, tant qu'on est pas à la fin)
        While Not rst.EOF
            ' On affiche les champs en faisant référence à leur nom
            Debug.Print "champs1 : " & rst("champs1")
            Debug.Print "champs2 : " & rst("champs2")
            ' Ou alors en faisant référence à leurs indices
            Debug.Print "champs1 : " & rst(0)
            Debug.Print "champs2 : " & rst(1)
            ' Ou en encore avec une boucle qui parcourt tous les champs de l'enregistrement courant
            For Each fld In rst.Fields
                Debug.Print fld.Name & " : " & fld.Value
            Next fld
            rst.MoveNext
        Wend
        ' Fermeture du Recordset
        rst.Close
    End Sub
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

Discussions similaires

  1. Associer TOp avec une variable
    Par lelensois16 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/01/2010, 09h49
  2. Affecter résultat SQL d'une requête à une variable
    Par bozolozo dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/01/2005, 17h37
  3. [Sybase] résultat d'un select dans une variable
    Par stoz dans le forum Sybase
    Réponses: 2
    Dernier message: 14/09/2004, 14h28
  4. Résultat d'une requête dans une variable...
    Par Hoegaarden dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/04/2004, 13h51
  5. Réponses: 10
    Dernier message: 19/02/2004, 12h58

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