[dao] alimenter un listbox avec une requête sql

0/5 (12 avis)

Vue 14 821 fois - Téléchargée 1 502 fois

Description

Suite à une demande sur le forum;

Ce code se connecte à une base de données ACCESS avec les objets DAO
pour effectuer une requête SQL de type SELECT
et afficher les enregistrements d'un champ dans un ListBox.

L'intérêt est de comprendre la manipulation d'objets DataBase et Recordset,
qui permettent de se passer du contrôle Data et/ou du contrôle DBList.

Source / Exemple :


'On a besoin d'un formulaire et d'un Listbox.

Option Explicit

Private Sub Form_Load()
'Si "Type non défini par l' utilisateur" : aller dans Projet/Références
'et ajouter la librairie des objets DAO.
    
    Dim maBase As Database
    Dim monRecordset As Recordset

'On a une base nommée 'TestBase' qui contient une table 'users'.
'Cette table contient 2 champs: 'nick' et 'host'.
    
    Set maBase = OpenDatabase("D:\code\VB\DAO\TestBase.mdb")
    Set monRecordset = maBase.OpenRecordset( _
        "SELECT nick FROM users ORDER BY nick", dbOpenSnapshot)

    With monRecordset
        .MoveLast    ' Remplit l'objet Recordset.
        .MoveFirst

            Do While Not .EOF   'puis parcours les enregistrements
                List1.AddItem !nick
                .MoveNext
            Loop

        .Close 'fermeture du recordset
    End With

    maBase.Close 'fermeture de la base de données

End Sub

Conclusion :


Note: la méthode Opendatabase prend en argument le chemin complet de la base mais ce n'est pas obligatoire.

Une base de données exemple est fournie dans le zip.

Conseil: placez des points d'arret dans le code, et pendant l' exécution, affichez la fenêtre variables locales
(menu Affichage) pour observer les propriétés des objets créés.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
cs_fring Messages postés 21 Date d'inscription mardi 5 juillet 2005 Statut Membre Dernière intervention 25 mars 2006
21 oct. 2006 à 13:13
utiliser au lieu du chemin "D:\......." ---->app.path &"\base_de_donne.mdb"
cs_bibi_angel Messages postés 14 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 24 mai 2006
11 mai 2006 à 14:00
Merki mythic_kruger, c'est pile le code que je cherchais!
ccir Messages postés 11 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 24 mars 2015
10 mars 2006 à 04:36
et quest-ce-qui se passe si tu a plus de 32768 records??? List box accepte uniquement 32768 records!
zenned Messages postés 2 Date d'inscription samedi 22 octobre 2005 Statut Membre Dernière intervention 4 février 2006
4 févr. 2006 à 11:34
elle est bien est copmpréhensible
merci
tu peut m'aider comment avoir remplire le datgird a partir du requtte sql
vodoussi01 Messages postés 3 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 18 août 2005
31 juil. 2005 à 22:16
Je voudrais faire un formulaire Facturation avec les noms des clients et ensuite les articles dans une grille DBGrid.
SVP aider moi. Visual Basic 6.0 seulement.
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.