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

VB 6 et antérieur Discussion :

Extraire des données d'une BDD


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut Extraire des données d'une BDD
    Bonjour à tous,
    Pour être bref et claire, je présente ma BDD. Constituée de trois tables:
    Continent ( Code_C, Nom_C )
    Pays ( Code_P, Nom_P, #Code_C )
    Ville (Code_V, Nom_V, #Code_P)

    Je veux afficher sur une même feuille le contenu des trois tables sur des DBGrid ou DataGrid, de manière à ce que la liste des villes affichées sur le 3ème DBGrid doit correspondre au pays sélectionné dans le 2ème DBGrid et que la liste des pays affichés sur le 2ème DBGrid doit correspondre au continent sélectionné sur le 1er DBGrid. Chaque changement d'une sélection doit se répercuter sur les autres DBGrid. Comment dois-je procéder ? Merci d'avance pour votre aide. Je tiens comme même à préciser que ma BDD est créée sous Access et j'utilise le DataEnvironment pour la connexion. Merci encore.

  2. #2
    Membre éclairé Avatar de LeXo
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 147
    Points : 868
    Points
    868
    Par défaut
    sur access tu as un assistant de création de requete graphique

    alors tu fais ta requete graphiquement et ensuite tu la passes en mode sql comme ça tu as ta requete

    t'as plus qu'a la coller dans ton appli

    mais c juste une jointure interne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from Continent INNER JOIN pays on Continent.code_C= pays.Code_P;
    voila ça doit donner un truc comme ça avec encore un INNER JOIN en facteur

    mais tu devrais mettre ton post dans SQL

    allez bon courage

  3. #3
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Bon si je comprend bien, tu as trois DBGrid et tu voudrais qu'en fonction de choix sur un DBGridX, on affiche des infos sur DBGridX+1 en fonction du choix c'est bien ca ??

    Si c'est le cas alors je crois que tu devras faire deux routines pour les deux premiere DBGrid (pour les continent et les pays). Et tes requettes ce feront en fonction de cela. Si c'est bien le cas inspire toi de ce bout de code

    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
     
    'Tout d'abord on va nome
    'DBG1 le DBGrid pour les Continents
    'DBG2 le DBGrid pour les Pays
    'DBG3 le DBGrid pour les Villes
     
    'Ensuite ce code est inspire du Datagrid qui je crois sera proche des metodes
    'et propriete du DBGrid
     
    Private Sub BD1_Click ()
         Dim CC As String      'CC = Code_C
     
         CC = DBG1.Recordset!Code_C
         DBG2.Recordsource = "Select Pays.*,Continent.Code_C from Pays, Continent " & _
                             "Where Pays.Code_C = Continent.Code_C"
         DBG2.Refresh
    End Sud
     
     
    Private Sub BD2_Click ()
         Dim CP As String      'CP = Code_P
     
         CP = DBG2.Recordset!Code_P
         DBG3.Recordsource = "Select Ville.*, Pays.Code_P from Ville, Pays " & _
                             "Where Ville.Code_P = Pays.Code_P"
         DBG3.Refresh
    End Sud
    Bon je n'ai pas tester le code mais ca devrais faire ce que tu veux.


    D'autre part je te conseillerais d'utiliser les ListBox a la place des DBGrid, mais il y auras une tonne de manipulation en Background a faire, sinon ce sera plus joli.

  4. #4
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Perso, j'utiliserais l'evenement reposition du control data lié a la premiere grille
    chaque fois qu'une nouvelle ligne est selectionnée dans le datagrid, le controle data declenche cet evenement. C'est pratique et en plus :
    - si pour une raison ou une aure, ton code deplace l'enregistrement courant, pas d'autre code a ecrire.
    - la deuxieme grille est positionée des le lancement de la feuille

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Salut

    Comme tu utilise un dataenvironment tu peut créer une nouvelle commande avec ta jointure se qui te permettra d'effectuer ta recherche avec de simple texbox. (Si bien entendu cela te convient)

    A+

  6. #6
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut
    Merci à tous,
    J'ajoute que j'ai utilisé dans le DataEnvironment des commandes et des commandes filles.
    Une commade pour la table continent, dans laquelle j'ajoute une commande fille pour la table ville et dans cette dernière encore une commande fille pour la table ville.
    Quand je navigue dans la table continent, le liste des pays change en fonction du continent sélectionné, mais la liste des villes ne suit pas. (le 3ème datagrid est vide)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 301
    Points : 337
    Points
    337
    Par défaut
    Peut on voir un bout de code ?

  8. #8
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 190
    Points : 112
    Points
    112
    Par défaut
    En réalité j'ai pas utilisé de code. Pour être plus claire je joint ce fichier qui illistre mon dataenvironment et le résultat escompté.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. importation des données vers une BDD Mysql
    Par moabomotal dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/12/2006, 21h03
  2. [RegEx] Comment extraire des données d'une page HTML ?
    Par taliesin26 dans le forum Langage
    Réponses: 1
    Dernier message: 11/12/2006, 12h39
  3. Affichage des données d'une bdd dans un formulaire
    Par Shekhmet dans le forum Langage
    Réponses: 5
    Dernier message: 04/04/2006, 19h27
  4. [Système] Extraire des données d'une page web
    Par nazoreen dans le forum Langage
    Réponses: 17
    Dernier message: 22/03/2006, 21h38
  5. Réponses: 1
    Dernier message: 28/09/2005, 15h35

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