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

IHM Discussion :

[VBA][SQL][FORMULAIRE] Affecté le resultat d'une requete sql dans un formulaire !


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 8
    Points
    8
    Par défaut [VBA][SQL][FORMULAIRE] Affecté le resultat d'une requete sql dans un formulaire !
    Bonjour, je suis débutant sur access, ainsi que VBA.

    Mon problème est le suivant : J'aimerai afficher le résultat d'une requête sql appelé dans un code VBA en forme de tableau sur un formulaire (zone texte).

    Mon code est le suivant :

    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
    Private Sub ListeModifApi_AfterUpdate()
    
    Dim SQL        As String
    
      '' Vérifie que l'on a cliqué sur un Api pour éviter le NULL
    If Not IsNumeric(Me!ListeModifApi) Then Exit Sub
      '' Affecte la valeur de CodeApi à la variable lngCodeApi
     lngCodeApi = Me!ListeModifApi
      '' Construit la chaîne SQL avec la catégorie concernée
      SQL = "SELECT Nom, Prenom, Debutant, Moyen, Maitrise, Expert FROM TBLemployé INNER JOIN  TBLnivmaitrise ON TBLemployé.CodeEmp=TBLnivmaitrise.CodeEmp WHERE CodeFabricant = " & lngCodeFabricant & " And CodeApi = " & lngCodeApi & ""
      
      AffichageRecherche.Enabled = True
       
     AffichageRecherche.Value = SQL
      
    Me.AffichageRecherche.SetFocus
     
    End Sub
    Mais lorsque j'exécute ce code il m'affiche dans la zone texte souhaité que le requête sql alors que je veut le résultat sous forme de tableau !

    J'ai écumé les forums, les tuto et les cours, mais comme j'ai une connaissance très limité je ne sais pas ce que je cherche alors je fais appelle a vous en espérant que d'une part cela soit possible et comment y arrivé !

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu ne peux affecter les résultat d'une requête SQL à une zone de texte.

    Deux solutions:

    Passer par DAO

    ou

    Passer par la fonction de domaine DLookup

    Philippe

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Je te remercie pour ces information, mais est-il possible de me montrer ce que cela donne au niveau du code ?

    Car je ne comprend pas la façon dont il faut utilisé DLookup !

    En tout cas même si tu na pas le temps je te remercie des indication qui me permettrons d'approfondir mes recherche !

  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 759
    Points
    7 759
    Par défaut
    Bonsoir,

    A la place d'un contrôle zone de texte, utilises un contrôle zone de liste.
    Cela me paraît pour afficher des données sur plusieurs lignes et plusieurs colonnes.

    Propriétés de la zone de liste :
    Origine source : table/requête
    Nbre de colonnes : 6 (parce que ta requête sélectionne 6 champs)

    Admettons que le contrôle zone de liste se nomme lstAffichageRecherche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.lstAffichageRecherche = SQL
    Me.lstAffichageRecherche.Requery
    A+

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Merci LedZeppII, mais cela n'affiche toujours pas ma recherche alors je vousmontre la modification apporté au code en espérant que vous puissiez m'aider :

    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 ListeModifApi_AfterUpdate()
     
     
      '' Vérifie que l'on a cliqué sur un Api pour éviter le NULL
      If Not IsNumeric(Me!ListeModifApi) Then Exit Sub
      '' Affecte la valeur de CodeApi à la variable lngCodeApi
      lngCodeApi = Me!ListeModifApi
      '' Construit la chaîne SQL avec l'api concernée
      SQL2 = "SELECT Nom, Prenom, Debutant, Moyen, Maitrise, Expert FROM TBLemployé INNER JOIN  TBLnivmaitrise ON TBLemployé.CodeEmp=TBLnivmaitrise.CodeEmp WHERE CodeFabricant = " & lngCodeFabricant & " And CodeApi = " & lngCodeApi & ""
      ''SQL = DLookup("[Nom, Prenom, Debutant, Moyen, Maitrise, Expert]", "SQL", "[CodeFabricant = & lngCodeFabricant & " And "CodeApi =  & lngCodeApi & ")
      lstAffichageRecherche.Enabled = True
     
      Me.lstAffichageRecherche = SQL2
     
      Me.lstAffichageRecherche.Requery
     
     
     
    End Sub
    Biensur j'ai créer ma zone de controle texte comme tu me la expliquer !

    Encore merci, mais jsui toujours dans la panade ^^

  6. #6
    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 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Désolé, je me suis planté.
    J'ai oublié un morceau. Il faut affecter le code SQL au membre RowSource.

    Au lieu de ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.lstAffichageRecherche = SQL
    Mettre ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.lstAffichageRecherche.RowSource = SQL
    A+

Discussions similaires

  1. l'affectation du resultat d'une requette sql a une variable vb
    Par milanino dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/05/2009, 13h00
  2. affecter les resultats d'une rêquete SQL à une table
    Par soforan dans le forum Bases de données
    Réponses: 8
    Dernier message: 01/01/2009, 22h05
  3. modifier les resultats d'une requete SQL
    Par billyboy dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 30/05/2006, 06h22
  4. [Oracle / Sql] clause where avec resultat d'une requete
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2006, 09h37
  5. Réponses: 1
    Dernier message: 25/10/2005, 12h18

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