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 :

Je veux passer d'un enregistrement à l'autre


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Je veux passer d'un enregistrement à l'autre
    J'ai un formulaire qui prend source une requête SQL. Sur chacune des lignes j'affiche un nom, un nombre d'heures total, un nombre d'heure de type x, etc..

    Au bout la ligne j'ai un bouton qui permet de "valider" les données. Cette fonction appelle une sub en lui passant des paramètres tels que "me.employe"...

    Je veux ajouter un bouton qui va me permettre de valider toutes les lignes d'un coup. Autrement dit, je veux itérer sur les enregistrements que mon form affiche.

    Actuellement, si j'affcihe me.employe, ce sont les données de la première ligne qui sont utilisées. J'aimerais donc avoir une genre de méthode nextline ou movenext pour me promener de ligne en ligne.. de cette facon je n'aurais qu'à appeler ma fonction de validation dans une boucle...

    des idées??

    Merci d'avance!

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    si tu as une clef unique genre numéro employé
    sur l'événement click valide
    filtre
    valide=false
    order asc
    me.requery

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    je comprend absoluemnt rien de tout ça

  4. #4
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Comme tu parles de formulaire et de lignes, je ne sais pas si c'est d'une applcation VBA (excel) ou d'une application VB dont il s'agit.
    Pour une application VB, il suffit de valider les modification au niveau du recordset issu de ta requête SQL par un rs.update.

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    C'est du VB, j'aurais du préciser.

    En fait je ne modifie pas les les lignes de données issues du recordset, je ne fait que les envoyer à une fonction qui fera un traitement quelconque. Au bout de la ligne, j'ai le bouton qui appelle cette fonction. Lorsque j'ai ++ lignes, je dois cliquer sur chacun des boutons pour traiter chaque ligne une à la fois. Je veux itérer sur ls lignes et appeler ma fonction avec les données de la ligne courante.

    Merci de votre patience

  6. #6
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Qu'est-ce que représentent les lignes? Un ensemble de textbox ou la ligne d'une grille quelconque?

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    C'est un ensemble de textbox's

  8. #8
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Je comprends mieux (mais pas complètement) le problème, etne vois pas de solution évidente dans ce contexte et à ce stade de ma compréhension.
    Es-tu obligé de traiter cela sous forme de textbox? Si oui, pourquoi?
    Dans ce contexte, comment sont nommées, différenciées et organisées les textbox des différentes lignes? Combien de lignes, etc... Et comme il y a des données issues d'un recordset, comment remplis-tu ces textbox?

  9. #9
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut


    voici l'interface. pour faire une histoire courte, c'est un logiciel de gestion du temps. Chaque employé complète son emploi du temps à la fin de chaque journée. Nous compilons ensuite les données.

    À chaque semaine, le patron doit valider les entrées de ses subalternes en cliquand sur le bouton OUI de droite. Lorsque c'est approuvé, on check le checkbox.

    Ce form est en réalité composé de 2 formulaires. Ma requête qui sélectionne les données qui composent les lignes dépend du boss choisi dans le dropdown d'en haut, à gauche (Nicolas dans ce cas ci). La requête retourne les employés sous l'emprise de Nicolas et certains totaux d'heures, comme les heures consacrées à des activitées standards ou à des projets d'entreprise. Je ne crois pas que la requête qui va chercher les données soit importante. Tout ce que je veux, c'est passer des paramètres à une fonction. Ces paramètres sont liés à chaque ligne. Par exemple, j'ai un champs caché qui contient le numéro de l'employé + l'année + le numéro de la semaine, le tout concaténé.

    Je pense que ca commence à être précis pas mal

    Merci!

  10. #10
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Juste pour vous donner un idée, si j'ajoute un bouton avec un onclick msnbox me.nomEmploye dans le sous formulaire qui contient les données des employés, ca retourne les datas concernant la première ligne... si je pouvais avoir une méthode du genre me.nextline qui me permettrait d'atteindre les données de la 2e ligne je serais aux anges...

  11. #11
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par GuyLafleur
    Je pense que ca commence à être précis pas mal
    Je vois bien l'interface mais cela ne me donne aucun renseignement sur sa structure Enfin si, peut-être...
    En me basant sur ton image (les textxtbox on l'air d'être dans une conteneur avec un ascenseur) et la répétition des textbox sur plusieurs lignes, les données sont présentées dans un DataRepeater. Peux-tu me le confirmer?
    Autre point: est-ce que la boite à cocher est un contrôle dépendant?

  12. #12
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    À la base, je suis le 6e programmeur à passer sur ce programme alors pardonnez moi si je ne comprend pas encore toutes les subtilités : c'est le gros bordel là dedans!

    Pour ce qui est du DataRepeater, je dirais "ouais ça semble être plausible" mais fichtre, je ne sais pas où vérifier pour découvrir si c'est utilisé ou pas!? Alors je ne peux confirmer...

    Ce que je peux dire, par contre, c'est que le nombre de ligne dépend de ce que retourne la requête contenue dans la propriété RecordSource du sous-formulaire. Donc c'est la même ligne qui se répête. En mode création, il n'y a qu'une ligne dans ce formulaire. Alors, sous toute réserve, je répondrais oui, c'est un DataRepeater.

    La case à cocher est liée à un paramètre de retour de la requête contenue dans le recordsource.

    Merci de votre patience

  13. #13
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par GuyLafleur
    Pour ce qui est du DataRepeater, je dirais "ouais ça semble être plausible" mais fichtre, je ne sais pas où vérifier pour découvrir si c'est utilisé ou pas!? Alors je ne peux confirmer...)

    Ce que je peux dire, par contre, c'est que le nombre de ligne dépend de ce que retourne la requête contenue dans la propriété RecordSource du sous-formulaire. Donc c'est la même ligne qui se répête. En mode création, il n'y a qu'une ligne dans ce formulaire. Alors, sous toute réserve, je répondrais oui, c'est un DataRepeater.
    Sans aucun doute maintenant

    Cette ligne que tu vois et qui se répète est en fait un OCX. Tu peux le vérifier en regardant la propriété RepeeatedControlName dans la feuille de propriétés du DataRepeater dans laquelle doit figurer le nom de cet OCX.

    Le code suivant donne plus qu'une amorce de solution. Le DataRepeater s'appelle drValidation, l'OCX est représenté par la propriété RepeatedControl et le nom de la proriété relative à la boit à cocher est ValidationValue. Tu testes ce que retourne la propriété sur le clic du bouton cmdValider.
    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
    Private Sub cmdValider_Click()
     
      Dim i As Integer
      Dim intNbreEnreg As Integer
     
      DataEnvironment1.rsCommand1.MoveFirst
      intNbreEnreg = drValidation.RecordCount
      For i = 1 To intNbreEnreg
        If drValidation.RepeatedControl.ValidationValue = "Vrai" Then
          MsgBox "VRAI"
          'appel éventuel de ta procédure de traitement
        Else
          MsgBox "FAUX"
          'appel éventuel de ta procédure de traitement
        End If
        DataEnvironment1.rsCommand1.MoveNext
     
      Next i
     
    End Sub
    Pour aller vide, j'ai créé un DataEnvironment et une commande. Ainsi, j'accède au recordset sous-jacent (à remplacer par ton propre recordset). Le recordset est la source du datarepeater. Il est probable que cette source ait été affectée par du code et tu devrais assez facilement repérer la ligne qui le fait (genre "nom du datarepeater.source). Le fait de parcourir cette source te fait parcourir les lignes de ton DataRepeater (je n'ai rien trouvé de mieux).

    N'hésite pas à demander de plus amples informations.

    PS: j'ai édité ce message car j'avais fait une erreur de manip et seule une petite partie avait été envoyée au premier jet.

  14. #14
    Futur Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 17
    Points : 8
    Points
    8
    Par défaut


    Je ne trouve pas la propriété RepeatedControlName.

    Je vais aller décompresser, pleurer un peu et p-e voler une voiture et je reviens.

  15. #15
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    Avant tout, s'assurer du type de control concerné

    en mode création, cliquer sur le control ouvrira une procédure évènement concernant le control
    => récupérer son nom
    => mettre un point d'arrêt dans l'évènement load du form contenant le control
    (quitte à y rajouter une ligne «debug.print» vierge)
    => dans la fenêtre d'exécution, ouvrir la form (nomFeuille.show)
    la form va se charger et s'arrêter sur le point d'arrêt
    => dans la fenêtre d'exécution, taper «? typename(nomducontrol

    Le type de control va s'afficher

  16. #16
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Citation Envoyé par GuyLafleur
    :Je ne trouve pas la propriété RepeatedControlName.
    Regarde l'image: en 1 tu as le nom du composant (drValidation) et son type (DataRepeater).
    En 2, tu as la propriété RepeatedControl et sa valeyr (le nom de l'OCX) ValidationCtl.


    Je vais aller décompresser, pleurer un peu et p-e voler une voiture et je reviens.
    Prends en une belle

  17. #17
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    et ne la brule pas, même si elle ne t'appartient pas.

  18. #18
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonsoir
    Notre ami GuyLafleur a du se faire gauler en volant la voiture qu'il convoitait, et il passe sont week end à l'ombre

  19. #19
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Il faut peut-être (quand même) l'inviter à afficher sa fenêtre de propriétés (il l'a peut-être, dans un élan maladroit, fermée...)

  20. #20
    Rédacteur
    Avatar de jacma
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    612
    Détails du profil
    Informations personnelles :
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 612
    Points : 1 241
    Points
    1 241
    Par défaut
    Bonjour
    C'est quand même un programmeur... Et si il ne l'a pas affichée, l'image lui aurait quand même mis la puce à l'oreille.

Discussions similaires

  1. access - passer d'un enregistrement à un autre
    Par skippy86 dans le forum VBScript
    Réponses: 0
    Dernier message: 17/08/2010, 13h50
  2. Réponses: 6
    Dernier message: 28/07/2009, 15h11
  3. passer d'un enregistrement à l'autre
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/06/2008, 19h49
  4. Passer d'un enregistrement à un autre
    Par MayOL69bg dans le forum Administration
    Réponses: 1
    Dernier message: 30/03/2007, 12h04
  5. [VB6]Pb pour passer d'un enregistrement a un autre
    Par shaka84 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 16/06/2006, 10h15

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