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 :

Récupération de donnéed dans texbox


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut Récupération de donnéed dans texbox
    Bonjour,

    A l'ouverture d'un formulaire (ResultsMainForm), je souhaiterais récupérer dans une textbox (QuestID), les valeurs de la colonne QuestID d'une table liée (dbo_QUESTIONS).
    Le but étant de récupérer dans un premier temps la première valeur puis de les faire défiler dans cette même texbox à l'aide d'un bouton.
    (L'étape suivante est de récupérer dans cette texbox uniquement les valeurs répondant à certains critères)

    Voila ce que j'ai écrit mais je n'obtiens rien dans la texbox (l'évenement est OnLoad):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim list1 As String
    list1 = "SELECT QuestID.Value FROM dbo_QUESTIONS ORDER BY dbo_QUESTIONS.QuestID"
    Me.QuestID.ControlSource = list1
    Merci d'avance.

  2. #2
    Membre actif Avatar de Gary_Stoupy
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 244
    Points : 232
    Points
    232
    Par défaut
    Bonjour,

    Une solution très utile est d'utiliser un recordset...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim rst as new ADODB.Recordset
     
    rst.Open ""SELECT QuestID FROM dbo_QUESTIONS ORDER BY dbo_QUESTIONS.QuestID", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
     
    me.questID = rst.Open("QuestID")
    et le tour est joué...
    Après, pour faire défiler, il te suffit d'utiliser une boucle while :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    do while rst.EOF = false
        blablablablabla
        rst.MoveNext
    loop
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 82
    Points : 52
    Points
    52
    Par défaut
    la meme erreur que j'avais commise il y a une semaine :-)

    il n'est pas possible d'utiliser une requete sql comme tu le fais car la requete n'est pas executée et donc ta variable ne contient pas le resultat de ta requete mais ta requete elle meme.

    Pour faire ce que tu veux je pense qu'il faut que tu fasses un recordset

    edit: arf gary stoopy a été plus rapide que moi lol

  4. #4
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    Je vais essayer avec le recordset mais j'avais déjà regarder cette solution et je ne comprends pas très bien à quoi correspondent tous les arguments (je suis novice).
    Sinon j'avais aussi fait un essai avec avec la fonction Dlookup et j'arrivais à afficher le premier QuestID mais pas à les faire défiler.

  5. #5
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    A l'exécution, j'ai l'erreur : User-defined type not defined sur la première ligne.
    Je suis access 97, ça peut venir de ça ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 82
    Points : 52
    Points
    52
    Par défaut
    Il faut que tu rajoutes la librairie "Microsoft DAO" dans le menu "outils" puis "references" ( tout ca dans l'editeur visual basic)

  7. #7
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    La librairie était déjà activée, on m'en propose aussi pleins d'aitres versions, mais il ne veut décidément pas reconnaitre cette ligne.
    Par contre si j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim rst  As Recordset
        rst.Open ""SELECT QuestID FROM dbo_QUESTIONS ORDER BY dbo_QUESTIONS.QuestID", rst.Open "SELECT QuestID FROM dbo_QUESTIONS ORDER BY dbo_QUESTIONS.QuestID", TestSQL.Form_ResultsMainForm, adOpenKeyset, adLockOptimistic    
    Me.QuestID = rst.Open("QuestID")
    l'erreur porte sur adOpenKeyset. (Je ne comprends pas vraiment quels sont ces deux derniers arguments)

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

    C'est une instruction ADO que tu as et non DAO.

    De plus il ne faut pas mettre rst.open sur la textbox.

    Il faut parcourir le recordset et alimenter la textbox au fur et à mesure par concaténation. Va jeter un coup d'oeil au tuto sur DAO.

    Pour ma part j'alimenterais une combobox avec juste la chaine SQL en entrée.

    Starec

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 82
    Points : 52
    Points
    52
    Par défaut
    fais peut etre plutot:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim rst  As DAO.Recordset
    que

    edit: oublie ce que je viens de dire starec a raison ton instruction est une instruction ado pas dao , dsl

  10. #10
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    En ce qui concerne la combobox, le problème est que je veux qu'on ne puisse voir qu'une seule info à la fois. C'est un formulaire ou la question apparait et à coté on doit donner la réponse, quand on appuie le bouton next (par ex), une nouvelle question apparait (et à coté un champs vide pour la réponse.

  11. #11
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 335
    Points : 112
    Points
    112
    Par défaut
    Ca ça marche (sans les conditions, mais ça devrait marcher avec) :

    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
     
    Dim db As Database
    Dim rs As Recordset
     
    Private Sub Command2_Click()  ' pour faire défiler
     
        rs.MoveNext
        Text0 = rs(0).Value
     
    End Sub
     
    Private Sub Form_Close()   
     
        rs.Close
        Set rs = Nothing
        Set db = Nothing
     
    End Sub
     
    Private Sub Form_Load()   'Pour récupérer les données
     
        Set db = CurrentDb
        Dim s As String
        s = "SELECT QuestID FROM dbo_Questions"
        Set rs = db.OpenRecordset(s)
     
        rs.MoveLast
        rs.MoveFirst
     
        Text0 = rs(0).Value
     
    End Sub
    Merci pour vos réponses.

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 10/11/2005, 21h10
  2. Réponses: 6
    Dernier message: 23/10/2005, 12h24
  3. Récupération de valeurs dans logiciel de bourse
    Par david0280 dans le forum MFC
    Réponses: 25
    Dernier message: 28/03/2005, 20h28
  4. récupération de données dans un TDBControlGrid
    Par dableuf dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/11/2004, 14h25
  5. Récupération d'index dans DBLookupControl ?
    Par Michel D. dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/06/2004, 15h01

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