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 :

Remplir un datagrid a partir du sql


Sujet :

VB 6 et antérieur

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut Remplir un datagrid a partir du sql
    Bonjour je voudrais remplir un datagrid grace a une requette sql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dbg_absence.DataSource = "SELECT Absence_tbl.Date_debut_absence, Absence_tbl.Date_fin_absence, Eleves_tbl.Id_eleve FROM Eleves_tbl INNER JOIN Absence_tbl ON Eleves_tbl.Id_eleve=Absence_tbl.Eleve Where (((Eleves_tbl.Id_eleve) = 6))"
    mais ca ne fonctionne pas le datagrid est vide

  2. #2
    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
    le datatasource doit être un composant ado, qui lui contient la requete

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    ok je vais le faire en dao

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    J ai essayé en dao mais le dbgrid est tj vide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub PROCEDURE_DATE_ABSENCE()
     
        Dim ws As Workspace
        Dim db As Database
        Dim rst As Recordset
     
        Set ws = DBEngine.Workspaces(0)
        Set db = ws.OpenDatabase(App.Path & "/GestionElevesAbsences.mdb", dbLangGeneral, dbVersion30)
        Set rst = db.OpenRecordset("SELECT Absence_tbl.Date_debut_absence, Absence_tbl.Date_fin_absence, Eleves_tbl.Id_eleve FROM Eleves_tbl INNER JOIN Absence_tbl ON Eleves_tbl.Id_eleve=Absence_tbl.Eleve Where (((Eleves_tbl.Id_eleve) = 6))")
        dbg_absence.DataSource = rst
    End Sub
    Il me met erreur de conversion de type de donnée

  5. #5
    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
    Et si tu ajoutais

    dans l'un outre des cas (ADO ou DAO)

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    j y avais pensé mais ca ne fonctionne toujours pas il me met Il me met erreur de conversion de type de donnée en soulignant la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set db = ws.OpenDatabase(App.Path & "/GestionElevesAbsences.mdb", dbLangGeneral, dbVersion30)

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    non je viens de comprendre c est pas j ai pas utilisé la bonne version access vais la convertir en access 97

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    non toujours le meme message d erreur

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    si je met juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set db = ws.OpenDatabase(App.Path & "/GestionElevesAbsences97.mdb")
    il me met la classe ne gère pas soitl automation ou l interface attendue

  10. #10
    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

    essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set dbg_absence.DataSource = rst
    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set db = ws.OpenDatabase(App.Path & "/GestionElevesAbsences97.mdb")
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set db = ws.OpenDatabase(App.Path & "\GestionElevesAbsences97.mdb")
    A+

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Merçi pour ton aide mais j ai toujours le meme message d erreur:

    la classe ne gère pas soit l' automation ou l interface attendue, si je mets ma souris sur Set dbg_absence.DataSource = rst il met un objet est requis

    merci

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    esque je ne pourrais pas faire ainssi avec un datacontrole

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub PROCEDURE_DATE_ABSENCE()
     
        Dim str_requete As String
     
        str_requete = "SELECT Absence_tbl.Date_debut_absence, Absence_tbl.Date_fin_absence, Eleves_tbl.Id_eleve FROM Eleves_tbl INNER JOIN Absence_tbl ON Eleves_tbl.Id_eleve=Absence_tbl.Eleve Where (((Eleves_tbl.Id_eleve) = 6))"
     
        data_absence.RecordSource = str_requete
     
    End Sub
    mais la j ai plus aucun message d erreur mais ca ne m affiche rien j ai du loupé quelle que chose

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Voila ou j en suis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub PROCEDURE_DATE_ABSENCE()
     
        Dim str_requete As String
     
        str_requete = "SELECT Absence_tbl.Date_debut_absence, Absence_tbl.Date_fin_absence, Eleves_tbl.Id_eleve FROM Eleves_tbl INNER JOIN Absence_tbl ON Eleves_tbl.Id_eleve=Absence_tbl.Eleve Where (((Eleves_tbl.Id_eleve) = 7))"
     
        data_absence.RecordSource = str_requete
        data_absence.Refresh
     
     
    End Sub
    Il m affiche tous les date de l id_eleve==>6 mais je voudrais mettre en parametre ce chiffre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Sub PROCEDURE_DATE_ABSENCE()
    
        Dim str_requete As String
        Dim Int_id As Integer
        
        'Int_id = frm_child1_cons.data_eleves.Recordset.Fields("Id_eleve")
        
        str_requete = "SELECT Absence_tbl.Date_debut_absence, Absence_tbl.Date_fin_absence, Eleves_tbl.Id_eleve FROM Eleves_tbl INNER JOIN Absence_tbl ON Eleves_tbl.Id_eleve=Absence_tbl.Eleve Where (((Eleves_tbl.Id_eleve) = int_id))"
        
        data_absence.RecordSource = str_requete
        data_absence.Refresh
       
        
    End Sub
    Comme ca pour chaque eleves j ai leur date mais il me met un message d erreur:Trop peu de paramètre 1 attendu

    c est quand je met une variable dans le sql que ca bloque

  14. #14
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 108
    Points : 16 640
    Points
    16 640
    Par défaut
    essai de terminer ta requette par : Where (((Eleves_tbl.Id_eleve) = '" & int_id & "'))"

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Il me met Type de donnée incompatible dans l expression du critère.

    Merci de ton aide

  16. #16
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 108
    Points : 16 640
    Points
    16 640
    Par défaut
    Where (((Eleves_tbl.Id_eleve) = '" & Cint(int_id) & "'))"

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    Il me renvois le meme message d erreur voici la procedure:

    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
    Public Sub PROCEDURE_DATE_ABSENCE()
     
     
        Dim str_requete As String
        Dim Int_id As Integer
     
        Int_id = frm_child1_cons.data_eleves.Recordset.Fields("Id_eleve")
     
        str_requete = "SELECT Absence_tbl.Date_debut_absence, Absence_tbl.Date_fin_absence, Eleves_tbl.Id_eleve FROM Eleves_tbl INNER JOIN Absence_tbl ON Eleves_tbl.Id_eleve=Absence_tbl.Eleve Where (((Eleves_tbl.Id_eleve) = '" & CInt(Int_id) & "'))"
     
        data_absence.RecordSource = str_requete
        data_absence.Refresh
     
     
    End Sub

  18. #18
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 108
    Points : 16 640
    Points
    16 640
    Par défaut
    l'erreur etant Type de donnée incompatible , Int_id n'est pas un Integer, essais de trouver le type declaré dans la Table de la BD, et en utilisant un Clng, Csng .... tu devrais y arriver.
    Pour trouver les C..., F2 --> Conversion
    Je ne serai plus present apres ce message, bonne continuation ....
    A+

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    661
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 661
    Points : 244
    Points
    244
    Par défaut
    dans access c est de type auto numerique le champ id_eleve

  20. #20
    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
    Problème de Quote ou pas, cela dépend du type de ta variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Where MonChamps = Valeur
    pour une valeur numerique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Where MonChamps = 'Valeur'
    pour une valeur chaine de caractère

    Edit : On s'est croisé, salut progelec

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2009, 02h12
  2. Réponses: 2
    Dernier message: 02/03/2007, 14h04
  3. remplir une datagrid du form2 à partir d un boutton de form1
    Par andres007 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 19/02/2007, 02h30
  4. Réponses: 9
    Dernier message: 16/08/2006, 09h12
  5. [C#] remplir un formulaire a partir d'un dataGrid
    Par leycho dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/02/2006, 01h12

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