Résultats de 1 à 7 sur 7

Sujet : aficher dans datagrid

  1. #1

    aficher dans datagrid

    bosoir
    je veux que vous m\'aidiez à faire afficher une liste dans datagrid
    voici mon code:
    Private Sub DataCombo_type_Change()
    Adodc_liste.RecordSource = \"SELECT CANDIDATS.code, CANDIDATS.NP, CANDIDATS.SP\" _
    & \" From CANDIDATS WHERE CANDIDATS.Type=\" + DataCombo_type + \";\"
    Set DataGrid_type.DataSource = Adodc_liste.Recordset
    Text_compte = Adodc_liste.Recordset.RecordCount
    End Sub




    et voici le message d\'erreur que ca donne:
    Variable objet ou variable bloc With non définie (erreur 91)

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    salut Josef256

    Dans un premier temps je fais la suposition que tu souhaite envoyer ta requette sur un changement de combo box.
    Et que tu souhaite utiliser dans ta requette la selection du type de candidat (clause WHERE) provenant de ta combo.

    un constat de base :

    - Chez moi la methode Private Sub Combo1_Change() ne produit aucun effet lors de la selection d\'un item quelconque. la combo reagie par contre a l\'evenement click
    J\'ai donc placé ton code dans : Private Sub Combo1_Click()

    cela n\'est pas la cause de ton erreur puisque tu rentre dans le code car tu obtient un message d\'erreur.

    Pour aller plus loin j\'aimerai savoir quel est le type de \'Adodc_liste.RecordSource\' et ce qu\'il contient.
    J\'ai suposé que DataGrid_type etait un DataGrid mais pour l\'autre je ne voie pas.
    J\'ai bien fait la suposition qu\'il sagissait d\'une listeBox mais cet objet ne possede pas de methode ni de propriete \'RecordSource\'
    J\'aimerai aussi savoir la version de VB que tu utilise, VB6 je supose au vue de forum utilisé ...

    Voila, Je te demande toutes ces info car pour comprendre une exception, j\'ai souvent besoin de voir où elle se produit et comment fonctionne le code.

    A bientôt :wink:

  3. #3
    salut


    bonsoir mon (Adodc_liste.RecordSource) contient une requete que j\'ai mentionné,et j\'ai utilisé une ADO ,que j\'ai nommée Adodc_liste
    dont la source de données est une requete,donc c\'est pas une listbox mais un controle ADO.
    la version de VB que j\' utilise est evidemment VB6
    merci de ton aide

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    Hello Joseph 256

    Je comprend mieux pourquoi je comprenais pas.
    En fait je n\'ai jamais utilisé ce composant avant ce soir et il semble bien pratique et va me permettre de repondre a plein de question ou justement je plannais un peu. (en fait j\'utilise surtout .Net en VB et plus C#)

    Quoi qu\'il en soit lorsque que tu configure correctement la \'Connection String\' chez moi j\'ai redirigé sur mon driver ODBC Mysql (DSN=MysqlTest) et que tu configure le User/MDP il ne te reste plus en théorie qua envoyer la requête sql à la base.

    Ne trouvant pas de methode execute() ou dans le genre et obtenant dans le debogueur une valeur pour \'Adodc1.Recordset\' egual a NOTHING, (Avec arrêt sur la même erreur que toi) j\'ai passé en revue toute les methodes offerte par le dit composant. Un refresh() provoque l\'envoie de la requête, donc l\'init du Recordset, donc valide la sub.

    Code:
    Private Sub Combo1_Click()
        Adodc1.RecordSource = \"SELECT * From personne WHERE PERS_ID=\" + Combo1 + \";\"
        Adodc1.Refresh
        Set DataGrid1.DataSource = Adodc1.Recordset
        Text_compte = Adodc1.Recordset.RecordCount
    End Sub
    Comme ça sa marche chez moi maintenant.

    A bientôt Joseph et merci pour Adodc :wink:

  5. #5
    Visiteur MP
    Visiteur MP
    merci infiniment de ton aide la methode refresh a été tres utile.
    par contre j\'aimerais te poser une question sur la methode la plus efficace pour charger des item dans une datacombo.
    est ce que avec additem?
    merci

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    1 823
    Personellement je n\'utilise que cette methode (macombo.additem())

    La raison en est simple mais ne tient pas a VB.
    En fait ce nom de methode est comune a d\'autres language comme les Visaul C et du coup il est plus facile pour moi de memoriser celle ci qu\'une autre. (il y a tellement de bibliothèque differentes pour faire la même chose)

    Je pense que tu dois te poser la question de savoir si tu peux charger ta combo sur une ligne pour t\'eviter une longue itération sur une requette de SGBD.

    Il me semble qu\'en .Net cette possibilité est implémentée, par le biais d\'un datasource comme les grid et listbox de VB6 mais pour la combo il n\'y a rien (je viens de verifier sur mon MSDN Local).

    Pour répondre à ta question, comme c\'est la seule, oui c\'est la plus efficace.

    :wink:

  7. #7
    merci infiniment
    j\'ai posté il ya quelque instant une question
    comment ajouter un enregistrement à l\'aide de la methode addnew.
    j\'aimerais savoir votre reponse
    merci c\'est gentil.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Please disable Adblock!