begin process at 2012 02 16 17:30:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > [DAO] ALIMENTER UN LISTBOX AVEC UNE REQUÊTE SQL

[DAO] ALIMENTER UN LISTBOX AVEC UNE REQUÊTE SQL


 Information sur la source

Note :
Aucune note
Catégorie :Base de Donnees Classé sous :dao, listbox, requête, données, sql Niveau :Débutant Date de création :15/07/2005 Date de mise à jour :16/07/2005 13:46:24 Vu / téléchargé :11 737 / 1 369

Auteur : mythic_kruger

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • '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
'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.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 juillet 2005 13:46:24 :
Ajout d'une image pour les malvoyants

 Sources du même auteur

Source avec Zip Source avec une capture CONTRÔLE UTILISATEUR : JAUGE
Source avec Zip CLASSE CHRONOMÈTRE HAUTE PRÉCISION
Source avec Zip Source avec une capture MÉTHODE CIRCLE() DE L' OBJET PICTURE
Source avec Zip QUAND SETLAYEREDWINDOWATTRIBUTES RENCONTRE TIMER...
Source avec Zip Source avec une capture CDROM:INTERFACE VB QUI SE LANCE AUTOMATIQUEMENT

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture BASE DE DONNÉE ET LISTVIEW par Galactus13
Source avec Zip Source avec une capture OPEN ACCESS MDB par MALIKcpp
Source avec Zip Source avec une capture UN ACCESS MOIN COMPLET (IL MANQUE L'ÉDITEUR DE BASE DE DONNÉ... par MALIKcpp
Source avec Zip Source avec une capture QUICK_EXP : BASE DE DONNÉES par Exploreur
Source avec Zip BASE DE DONNÉES EN ADO POUR DÉBUTANT par Exploreur

Commentaires et avis

Commentaire de klinux le 16/07/2005 13:01:25

les types database et recordset n'existent pas,je ne sais pas pourquoi?!

Commentaire de Neo.balastik le 16/07/2005 16:55:30

klinux > tu dois référencer la bibliothèque DAO
Pour ce faire tu vas dans le menu Projet -> Références -> tu coches dans la liste 'Microsoft DAO 3.6 Object Library'

mythic_kruger > DAO est une technologie obsolète supplantée par ADO qui est bien plus puissant (mais pas aussi évident à manipuler).  Certes DAO fonctionne toujours et son emploi est simple.
Je te conseille vivement de voir du côté de ADO et d'oublier DAO.  Tout nouveau programme développé ne devrait plus utiliser DAO.

Commentaire de klinux le 16/07/2005 18:29:31

merci,j'ai pas fait attentionca marche tres bien

Commentaire de mythic_kruger le 17/07/2005 06:18:24

Neo.Balistik: STP montres-nous le même code avec les ADO pour comparer.

Commentaire de Neo.balastik le 18/07/2005 08:23:39

mythic_kruger >

Voilà un court extrait en ADO :

Dim oADO   As ADODB.Connection
Dim oRS    As ADODB.Recordset
Dim strPWD As String
Dim strSQL As String

Set oADO = New ADODB.Connection

'Dans le cas d'une DB avec un mot de passe
With oADO
.PROVIDER = "Microsoft.jet.oledb.4.0;Jet OLEDB:Database Password=" & strPWD
.Mode = adModeShareDenyNone
.ConnectionString = "D:\code\VB\DAO\TestBase.mdb"
.Open
End With

    Set oRS = New ADODB.Recordset

    strSQL = "SELECT nick FROM users ORDER BY nick"

    With oRS
        .CursorLocation = adUseClient
        .Open strSQL, oADO, adOpenForwardOnly, adLockOptimistic
        .Properties.Refresh
        .MoveLast
        .MoveFirst

        Do While Not .EOF
            List1.AddItem .Fields("Nick").value
           .MoveNext
        Loop

        .Close

    End With
    
  oADO.Close

  Set oRS = Nothing
  Set oADO = Nothing

Commentaire de mythic_kruger le 18/07/2005 10:23:39

Super!

Commentaire de mythic_kruger le 18/07/2005 19:32:08

DAO n'est pas obsolète et l'exemple ayant un but pédagogique sied à son rôle tout en cadrant dans son domaine.
Dans cet article sur msdn il est démontré qu'en effet la syntaxe ADO est légèrement différente de celle de DAO et RDO, et que DAO convient à de très petits projets -donc idéal pour les débutants qui découvrent un objet recordset.
J'étais surpris de lire que DAO ne suporte pas le DDL (donc ne supporte que le DML) ça aussi ça peut être bon à savoir.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconadocomparedwithrdodao.asp

Commentaire de vodoussi01 le 31/07/2005 22:16:54

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.

Commentaire de zenned le 04/02/2006 11:34:34

elle est bien est copmpréhensible
merci
tu peut m'aider comment avoir remplire le datgird a partir du requtte sql

Commentaire de ccir le 10/03/2006 04:36:30

et quest-ce-qui se passe si tu a plus de 32768 records??? List box accepte uniquement 32768 records!

Commentaire de bibi_angel le 11/05/2006 14:00:28

Merki mythic_kruger, c'est pile le code que je cherchais!

Commentaire de fring le 21/10/2006 13:13:52

utiliser au lieu du chemin "D:\......." ---->app.path &"\base_de_donne.mdb"

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Excel --> Access [ par maniacjole ] MANIACJOLEBonjour à tous ceux qui liront ce message.J'utilise énormément Excel et Access, j'arrive à partir d'excel à récupérer des données en provena VBA et requête SQL [ par staann ] voilà, après toutes les infos qu'on m'a données à propos des treeviews, le projet est bien avancé (donc merci) Mais là g Requête SQL pour se connecter à une source de données ODBC [ par bidossessy ]  donnez moi une requête SQL pour se connecter à une source de données ODBC depuis microsoft access Requête SQL ajout sans doublon [ par sabrina7 ] Bonjour, J'ai créer une requête SQL qui tourne sur une base Access. Cette requête me récupère des données d'une table pour les insérer dans une autr listbox et index [ par Splif62 ] Salut les amis ! Je développe une application en vb.net et sql serveur.j'aurais besoin d'aide sur un point :j'ai une listbox sur un formulaire qui con ADO SQL [ par enzo68290 ] Bonjour à tous, je suis entrain de créer un logiciel qui sert de passerelle pour les données, il aura pour fonction de synchroniser les données client Gestion de bases de données SQL [ par LostEmpathy ] Hello All, Avant de me lancer directement dans le code, auriez-vous quelque chose de simple pour la gestion de bases de données SQL avec VB.NET. Par g Aide pour listbox [ par wukuda ] Bonjour, je n'arrive pas à faire ce que je veux alors je vous demande de l'aide, je précise que je suis débutante ... J'utilise comme base de données Condition résultat requête SQL [ par Moundir76 ] Bonjour, Je travaille sur VB .Net et j'utilise une base de données propriétaire ODBC avec Microsoft SQL Server, et j'utilise des requêtes SQL pour ma


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,917 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales