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 :

Besoin d'aide sur un projet (ComboBox-FlexGrid-Recordset).


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 35
    Points
    35
    Par défaut Besoin d'aide sur un projet (ComboBox-FlexGrid-Recordset).
    salut à tous.
    je suis en train de réaliser un petit projet qui consiste à saisir des données sur des produits pharmaceutiques (à travers frmFicheSaisie), les afficher dans un FlexGrid (frmListe) et produire un Bon de livraison. j'ai une ComboBox dans ce bon de livraison par laquelle je veux qu'automatiquement les autres cellules du même flexgrid se remplissent à partir des données de frmFicheSaisie ou de frmListe, et mais j'y parviens pas. frmFicheSaisie est liée à une base de données (appelée MédicSefDB) grace à un ADO.
    Pouvez vous m'aider svp, je préfèrerai vous envoyer le projet entier, bien que le code n'est pas vraiement organisé (Débutant en VB). et Merci.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 35
    Points
    35
    Par défaut Voici un portion de code si vous pouvez m'aider
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    '  SAISIE dans le FlexGrid (grd) du bon de livraison.
    '======================================================
    Private Sub StartSaisie()
    nbRecord = frmFicheSaisie.adoMedicSef.Recordset.RecordCount
    ' Cette sub détermine l'objet de saisie en fonction de
    ' la colonne encours.
    Dim I As Integer
      With grd
        Select Case .Col
     
          Case 4      ' saisie par la zone de texte
            Set saisie.ObjetDeSaisie = Zt
            saisie.StartSaisie
     
          Case 0      'saisie par la liste
            ' (Remplissage de la liste)
            For r = 1 To nbRecord
              Lst.AddItem frmFicheSaisie.adoMedicSef.Recordset.Fields(0)
              frmFicheSaisie.adoMedicSef.Recordset.MoveNext
            Next r
     
            ' Connecte la liste à la classe
            Set saisie.ObjetDeSaisie = Lst
            saisie.StartSaisie
     
            ' Là, je veux qu'après avoir choisi un item dans la ComboBox (Lst), 
            ' les autres cellules du flexgrid (grd) se remplissent automatiquement 
            ' à travers les données déjà écrites dans le recordset de frmFicheSaisie 
            ' ou d'après la frmListe. (Mais ça marche pas !!!):
            ' If Lst.Text = frmFicheSaisie.adoMedicSef.Recordset.Fields(0) Then
            ' frmTestSaisieGrd.grd.TextMatrix(1, 1) = frmFicheSaisie.adoMedicSef.Recordset.Fields(1)
            ' frmTestSaisieGrd.grd.TextMatrix(1, 2) = frmFicheSaisie.adoMedicSef.Recordset.Fields(2)
            ' frmTestSaisieGrd.grd.TextMatrix(1, 3) = frmFicheSaisie.adoMedicSef.Recordset.Fields(3)
            ' frmTestSaisieGrd.grd.TextMatrix(1, 5) = frmFicheSaisie.adoMedicSef.Recordset.Fields(12)
     
          End If
          Case Else
            saisie.StopSaisie
        End Select
      End With
    End Sub

  3. #3
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 117
    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 117
    Points : 15 680
    Points
    15 680
    Par défaut
    bonsoir
    ' (Remplissage de la liste)
    For r = 1 To nbRecord
    Lst.AddItem frmFicheSaisie.adoMedicSef.Recordset.Fields(0)
    frmFicheSaisie.adoMedicSef.Recordset.MoveNext
    Next r

    ' Connecte la liste à la classe
    Set saisie.ObjetDeSaisie = Lst
    saisie.StartSaisie

    ' Là, je veux qu'après avoir choisi un item dans la ComboBox (Lst),
    ' les autres cellules du flexgrid (grd) se remplissent automatiquement
    ' à travers les données déjà écrites dans le recordset de frmFicheSaisie
    ' ou d'après la frmListe. (Mais ça marche pas !!!):
    ' If Lst.Text = frmFicheSaisie.adoMedicSef.Recordset.Fields(0) Then
    Il me semble qu'a la suite du remplissage d'un ComboBox ou d'une ListBox,
    If Lst.Text = toujour "" (rien)
    Il faudrait, par un debeug.print verifier Lst.Text et aussi frmFicheSaisie.adoMedicSef.Recordset.Fields(0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print "quelque chose ? " & Lst.Text  & " ,  " & frmFicheSaisie.adoMedicSef.Recordset.Fields(0)
    A moins que
    Set saisie.ObjetDeSaisie = Lst
    saisie.StartSaisie
    branche sur l'index 0(zero) du ComboBox
    voir si la condition If passe au moins a True en mettant un point d'arret a la ligne suivant le If

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    Merci ProgElecT.
    En fait pour la comboBox, elle affiche dans son contenu la liste que je veux, et je peux cliquer dessus et choisir un item parmi la liste. Mais le problème est que les autres cellules du MSFlexGrid ne se remplissent pas, donc peut être que le:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Lst.Text = frmFicheSaisie.adoMedicSef.Recordset.Fields(0) Then
            frmTestSaisieGrd.grd.TextMatrix(1, 1) = frmFicheSaisie.adoMedicSef.Recordset.Fields(1)
            frmTestSaisieGrd.grd.TextMatrix(1, 2) = frmFicheSaisie.adoMedicSef.Recordset.Fields(2)
            frmTestSaisieGrd.grd.TextMatrix(1, 3) = frmFicheSaisie.adoMedicSef.Recordset.Fields(3)
            frmTestSaisieGrd.grd.TextMatrix(1, 5) = frmFicheSaisie.adoMedicSef.Recordset.Fields (12)    
          End If
    n'est pas bien formulé. Il faut dire que si je met juste un texte, ça marche:
    If Lst.Text = frmFicheSaisie.adoMedicSef.Recordset.Fields(0) Then
    frmTestSaisieGrd.grd.TextMatrix(1, 1) = "Essai"
    End If
    le problème est donc au niveau du recordset !!
    Le point d'arrêt après le If, c'est quoi? est-ce juste un MsgBox par exemple ?

    Merci d'utiliser les balises de code

  5. #5
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 117
    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 117
    Points : 15 680
    Points
    15 680
    Par défaut
    Bonsoir
    Le point d'arrêt après le If
    à gauche de l'éditeur VB, une marge grise permet en se mettant à la hauteur de la ligne voulue de provoquer un arrêt au cours de l'exécution du programme, un click de souris ou la touche F9 ou bouton droit de la souris menu popup Basculer --> Point d'arrêt.
    Dés lors il est possible au moment de l'arrêt, de vérifier les différentes valeurs de variables ou conditions en sélectionnant ou rester dessus, une info bulle renseigne sur la valeur.
    Exemples en mettant un point d'arrêt pour la ligne
    frmTestSaisieGrd.grd.TextMatrix(1, 5) = frmFicheSaisie.adoMedicSef.Recordset.Fields (12)
    En sélectionnant n'importe quel variable ou condition contenu dans la procédure, renseigne de sa valeur, ce qui permet de débogage.
    Pour redémarrer, F8 pour faire exécuter pas à pas (là on peut voire l'évolution des variables et le cheminement de l'exécution des lignes de commande) ou F5 pour reprendre normalement l'exécution.
    si je met juste un texte, ça marche . . . . . le problème est donc au niveau du recordset !!
    Juste, en remettant les lignes normales, un point d'arrêt sur la première ligne après le If
    Arrêt en cours de débogage, F8, si une sortie directe de la procédure c'est qu'une erreur se produit, relancer la procédure et vérifier la ligne (commande) qui provoque l'erreur.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2007
    Messages : 56
    Points : 35
    Points
    35
    Par défaut
    Merci ProgElect pour les explications.
    je vois bien que je suis très débutant. j'essaierai ce que tu m'as dis.

Discussions similaires

  1. [Débutant] Besoin d'aide sur un projet
    Par Invité dans le forum C#
    Réponses: 4
    Dernier message: 19/10/2011, 23h17
  2. Besoin d'aide sur un Projet VB6 Access 2003 : 2ème partie
    Par jfdmagic dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/04/2009, 15h38
  3. Besoin d'aide sur un Projet VB6 Access 2003
    Par jfdmagic dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/04/2009, 10h33
  4. Besoin d'aide sur mon projet, s'il vous plait
    Par Marco199 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 09/05/2008, 20h26
  5. Besoin d'aide sur mon projet
    Par Jenojen dans le forum Bases de données
    Réponses: 10
    Dernier message: 04/05/2008, 19h33

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