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 :

[VB6]Pb pour passer d'un enregistrement a un autre


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 20
    Points
    20
    Par défaut [VB6]Pb pour passer d'un enregistrement a un autre
    J'ai ma fenetre qui recoi des info issu d'une table de ma BDD. Mais je n'affiche que les renseignement que je veux avec une requete defini dans mon programme. voici mon 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    Private Sub suivant_Click()
     
    Dim connex 'connexion a la base de données
    Set connex = CreateObject("ADODB.Connection")
        connex.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\PTI\Absence.mdb';"
     
    Dim RNstag, Rsect, RMstag ' l'object RecordSet
     
    numero = numero + 1
            Set RMstag = CreateObject("ADODB.Recordset")
            Set RMstag.ActiveConnection = connex
                RMstag.Open "SELECT MAX(Num_stag) AS maximum FROM Stagiaires WHERE Num_sect1 = 1"
     
        If numero <= RMstag("maximum") And Not RMstag.EOF Then
     
            Set RNstag = CreateObject("ADODB.Recordset")
            Set RNstag.ActiveConnection = connex
                RNstag.Open "SELECT * FROM Stagiaires WHERE Stagiaires.Num_stag = " & numero & " AND Num_sect1 = 1"
            Set Rsect = CreateObject("ADODB.Recordset")
            Set Rsect.ActiveConnection = connex
                Rsect.Open "SELECT Nom_section FROM Sections WHERE Num_section = " & RNstag("Num_sect1") & ""
     
            numero = RNstag("Num_stag")
            nom = RNstag("Nom_stag")
            adr = RNstag("Adr_stag")
            cp = RNstag("CP_stag")
            ville = RNstag("Vil_stag")
            tel = RNstag("Tel_stag")
            dated = RNstag("Date_deb_stag")
            datef = RNstag("Date_fin_stag")
            Textsection = Rsect("Nom_section")
     
            If numero = RMstag("maximum") Then
                suivant.Visible = False
            Else
                precedent.Visible = True
            End If
     
        Else
            numero = numero - 1
        End If
     
    End Sub

    Mais voila dès que j'execute mon prog et que je clique sur le bouton suivant cela ne marche pas. Je n'arrive pas a aller a lenregistrement qui se trouve a la 10ième plce par exemple. Comment puis-je faire? Merci de votre aide

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    (passe a l'enregistrement suivant)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 20
    Points
    20
    Par défaut
    sa ne marche pas. Quelque soi l'endroit ou je met RNstag.MoveNext (bien sur aprés le recordset) cela ne fonctionne pas. le numéro stagiaire augmente, mais il faut que je clique autant de fois qu'il y a de stagiaire d'une autre section jusqu'a ce que je trouve le bon stagiare de la meme section rechercher. En faite , il faut que j'arrive a faire afficher le stagiaire suivant grace a son numéro qu'il soit premier de la liste ou au mileu de celle-ci. Mais j'ai encore du travail, car je suis novice dans ce langage. Mon appli fonctionne trés bien sauf cette fenetre de recherche stagiaire selon un ou plusieur critère. Bon je vais continuer a chercher jusqu'a trouver, je finirais bien par trouver la solution. Merci pour ta réponse, elle ma un peu fais avancer. Dès que j'aurais trouvé la solution je la mettrais sur le forum.

  4. #4
    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
    En faite , il faut que j'arrive a faire afficher le stagiaire suivant grace a son numéro qu'il soit premier de la liste ou au mileu de celle-ci. Mais j'ai encore du travail, car je suis novice dans ce langage. Mon appli fonctionne trés bien sauf cette fenetre de recherche stagiaire selon un ou plusieur critère. Bon je vais continuer a chercher jusqu'a trouver, je finirais bien par trouver la solution. Merci pour ta réponse, elle ma un peu fais avancer. Dès que j'aurais trouvé la solution je la mettrais sur le forum.
    Il me semble qu'il faut faire un recordset trié par N°..., non ?

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Et si tu déclarais le recorset dans toute ta feuille? QUe lors de son lancement tu affiche le recordset.. et que le bouton suivant serve juste a faire suivant ! ;D
    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
    42
    43
    44
    45
    46
    47
    48
    49
     
    Dim connex 'connexion a la base de données
    Dim RNstag, Rsect, RMstag ' l'object RecordSet
     
    Private Sub Form_Load()
     
    Set connex = CreateObject("ADODB.Connection")
        connex.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\PTI\Absence.mdb';"
     
     
    numero = numero + 1
            Set RMstag = CreateObject("ADODB.Recordset")
            Set RMstag.ActiveConnection = connex
                RMstag.Open "SELECT MAX(Num_stag) AS maximum FROM Stagiaires WHERE Num_sect1 = 1"
     
        If numero <= RMstag("maximum") And Not RMstag.EOF Then
     
            Set RNstag = CreateObject("ADODB.Recordset")
            Set RNstag.ActiveConnection = connex
                RNstag.Open "SELECT * FROM Stagiaires WHERE Stagiaires.Num_stag = " & numero & " AND Num_sect1 = 1"
            Set Rsect = CreateObject("ADODB.Recordset")
            Set Rsect.ActiveConnection = connex
                Rsect.Open "SELECT Nom_section FROM Sections WHERE Num_section = " & RNstag("Num_sect1") & ""
     
            numero = RNstag("Num_stag")
            nom = RNstag("Nom_stag")
            adr = RNstag("Adr_stag")
            cp = RNstag("CP_stag")
            ville = RNstag("Vil_stag")
            tel = RNstag("Tel_stag")
            dated = RNstag("Date_deb_stag")
            datef = RNstag("Date_fin_stag")
            Textsection = Rsect("Nom_section")
     
            If numero = RMstag("maximum") Then
                suivant.Visible = False
            Else
                precedent.Visible = True
            End If
     
        Else
            numero = numero - 1
        End If
     
    End Sub
     
    Privante sub suivant_Click()
        RNstag.MoveNext
    End Sub

  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
    Bonjour

    Si je comprends bien ton code (difficilement lisible du fait de la taille de aa fenêtre), le recordset que tu crées concerne un seul stagiaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RNstag.Open "SELECT * FROM Stagiaires WHERE Stagiaires.Num_stag = _
    " & numero & " AND Num_sect1 = 1"
    Si c'est le cas, il n'y a donc qu'un seul enregistrement dans ton recordset, et par conséquent aucun enregistremenet suivant.

    Dans ce cas, il te faut créer un recordset (déclaré dans la section de déclaration de ta form afin d'être accessible par n'importe quelle procédure de ta feuille), avec tous les enregistrelments des stagiaires.

    Ensuite, tu peux naviguer dans ce recordset comme tu le veux, ou trouver un enregistrement selon des critètes précis (méthode fond par exemple). Tu oeux t'appuyer sur de nombreux exempels dont les praticiels "Accès aux données ADO" et "Initiation à l'accès aux données" dans lequels la navigation dans un recordset ets, entre autre, expliquée pas à pas, avec le code.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Formulaire de navigation pour passer numéro d'enregistrement
    Par NHOM60 dans le forum IHM
    Réponses: 4
    Dernier message: 11/01/2015, 18h14
  2. Commande pour passer en minuscules ?
    Par ggnore dans le forum Linux
    Réponses: 2
    Dernier message: 09/11/2004, 10h44
  3. [VB6] BorderStyle pour feuille MDI fille
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/08/2004, 14h43
  4. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 09h16

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