none
Comment créer une requête sous Visual BAsic 2010 RRS feed

  • Question

  • J'ai besoin de créer une requête comprenant les données suivantes issues d'une table Access :

         - NomCircuit qui doit me donner les noms des circuits

         - CompteDeNomCircuit qui doit me donner le nombre de fois

         - SommeDeLongueur qui doit me donner le total des longueurs

         - SommeDeDurée qui doit me donner le total des durées.

    Je désire afficher ces résultats dans un DataGridView. .

    J'ai essayé d'utiliser la requête créée par Access, à savoir :

    strSQL =

    "SELECT Alain.NomCircuit, Count(Alain.NomCircuit) AS CompteDeNomCircuit, Sum(Alain.Longueur) AS SommeDeLongueur, Sum(Alain.Durée) AS SommeDeDurée FROM(Alain) GROUP BY Alain.NomCircuit ORDER BY Alain.NomCircuit;"

    Alain étant le nom de la table Access.

    J'ai fouillé dans l'aide en ligne mais je n'ai rien trouvé de suffisament clair. Pourriez-vous m'aider d'une façon simple.

    Merci d'avance

    lundi 3 février 2014 14:12

Réponses

  • Bonjour,

    Avez-vous un message d'erreur ? Si oui, lequel ?

    Pourriez-vous nous faire savoir comment vous exécuter cette requête dans votre code.


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    lundi 3 février 2014 17:33
  • Bonjour,

    Un petit exemple ci-dessous. Il faut bien entendu ouvrir une connexion avant.

    Dim Select_cmd As New OleDbCommand("VOTRE_REQUETE")
    Select_cmd.Connection = ObjetConnection
    Dim readerSelect As OleDbDataReader = Select_cmd.ExecuteReader()
    
    Do While readerSelect.Read
            UNE_VARIABLE = readerSelect.Item("VOTRE_ITEM"))
    Loop


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    lundi 3 février 2014 17:50

Toutes les réponses

  • Bonjour,

    Avez-vous un message d'erreur ? Si oui, lequel ?

    Pourriez-vous nous faire savoir comment vous exécuter cette requête dans votre code.


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    lundi 3 février 2014 17:33
  • Bonjour,

    Un petit exemple ci-dessous. Il faut bien entendu ouvrir une connexion avant.

    Dim Select_cmd As New OleDbCommand("VOTRE_REQUETE")
    Select_cmd.Connection = ObjetConnection
    Dim readerSelect As OleDbDataReader = Select_cmd.ExecuteReader()
    
    Do While readerSelect.Read
            UNE_VARIABLE = readerSelect.Item("VOTRE_ITEM"))
    Loop


    Jacques
    Si la réponse vous satisfait, n'oubliez pas de la proposer comme réponse. Merci

    lundi 3 février 2014 17:50
  • Je vous remercie pour votre solution. Toutefois, pourriez-vous m'apporter quelques éclaircissements :

       - à quoi correspond "ObjetConnection" ? Lorsque je tape cette ligne, j'ai droit à une erreur.

       - je suppose que "UNE_VARIABLE" fait référence au moyen d'affichage ?

       - à quoi correspond "VOTRE_ITEM" ?

    Pour reprendre ma demande, je voudrais savoir s'il est possible de lire les lignes de la requète diretement dans un DataGridView ?

    Excusez mes demandes de précisions mais je me perds un peu dans les subtilités de VB 2010 !!!!!

    Merci d'avance

    mardi 4 février 2014 13:11
  • Ma réponse précédente a été trop rapide ! Après m'être obstiné, j'ai enfin compris le fonctionnement. Toutefois, je voudrais savoir s'il est possible d'affecter les résultats de la requète directmeent dans un DataGridView et comment.

    Cordialement

    mardi 4 février 2014 13:43
  • Bonjour

    Je trouve plus simple d’utiliser un OleDbDataAdapter pour remplir une DataTable et après binder le DataTable au DataGridView.
    Cet article vous présente deux methods (DataAdapter et DataReader)

    http://www.codeproject.com/Articles/20733/How-to-Populate-a-DataGridView-Control-using-OleDb

    Et l'outil de conversion de C# vers VB.NET :

    http://www.developerfusion.com/tools/convert/csharp-to-vb/

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    mardi 4 février 2014 14:22