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

IHM Discussion :

Bouton Premier, Précédent, Suivant et dernier enregistrement


Sujet :

IHM

  1. #1
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Bouton Premier, Précédent, Suivant et dernier enregistrement
    Bonjour,

    j'ai du mal à trouver le bon résultat sur les boutons de déplacement sur les enregistrements (Premier, Précédent, Suivant et dernier).
    le code que j'ai utilisé, fait planter le formulaire.
    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
    Dim Db As Database
    Dim Rs As Recordset
     
    Set Db = CurrentDb
    Set Rs = Db.OpenRecordset("tbl_archiviste", DB_OPEN_DYNASET)
     
    'Set Me.Recordset = Rs
    If Not Rs.BOF And Not Rs.EOF Then
       Rs.MoveFirst
       While Not Rs.EOF
           DoCmd.GoToRecord , , acFirst
     
     Me.Txt_NumStaff.ControlSource = Rs!Staff_num
     Me.Txt_NomArchiv.ControlSource = Rs!NomPren_staff
     Me.Txt_NomUtilis.ControlSource = Rs!Usernameut
     Me.Txt_Motpass.ControlSource = Rs!Passwordut
     Me.Txt_TypeUtilis.ControlSource = Rs!Usertypeut
     
           'Rs.MoveNext
        Wend
    End If
    Rs.Close
    Je sollicite de l'aide. Est ce qu'il y a quelqu'un qui peu m'apporter une solution?
    Arthur

  2. #2
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 960
    Points : 1 148
    Points
    1 148
    Par défaut Bouton Premier, Précédent, Suivant et dernier enregistrement
    Bonjour!

    Bouton Premier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande23_Click()
        On Error GoTo ErrMan
        DoCmd.GoToRecord , , acFirst
    Fin:
        Exit Sub
    ErrMan:
        Resume Fin
    End Sub
    Bouton Précédent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande24_Click()
        On Error GoTo ErrMan
        DoCmd.GoToRecord , , acPrevious
    Fin:
        Exit Sub
    ErrMan:
        Resume Fin
    End Sub
    Bouton Suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande25_Click()
        On Error GoTo ErrMan
        DoCmd.GoToRecord , , acNext
    Fin:
        Exit Sub
    ErrMan:
        Resume Fin
    End Sub
    Bouton Dernier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande26_Click()
        On Error GoTo ErrMan
        DoCmd.GoToRecord , , acLast
    Fin:
        Exit Sub
    ErrMan:
        Resume Fin
    End Sub
    Bouton Ajout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande27_Click()
        On Error GoTo ErrMan
        DoCmd.GoToRecord , , acNewRec
    Fin:
        Exit Sub
    ErrMan:
        Resume Fin
    End Sub
    Bien sûr il te faudra adapter ce code à l'événement Click de tes boutons.
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  3. #3
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    j'ai essayé avec ce code, ça ne marche pas.
    le formulaire et les champs sont liés à la table par le code DAO que j'ai placé au début:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim Db As Database
    Dim Rs As Recordset
     
    Set Db = CurrentDb
    Set Rs = Db.OpenRecordset("tbl_archiviste", DB_OPEN_DYNASET)
    que puis-je faire pour faire marcher ce code?

    Merci par avance.

    Arthur

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Bonjour.

    Je pense que c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Db As Dao.Database
    Dim Rs As Dao.Recordset
    Db.OpenRecordset("tbl_archiviste", dbOpenDynaset)
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2012
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    La façon dont j'ai fait la déclaration et la connexion à la base de données, le code marche bien avec d'autres boutons comme: Sauvegarder. c'est juste les boutons premier, précédent,... qui posent problème.

  6. #6
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 960
    Points : 1 148
    Points
    1 148
    Par défaut
    Pardon!

    Je dois reconnaître que j'avais mal lu la question.

    Je pense comme marot-r que le type de openrecordset est effectivement la constante "dbOpenDynaset", mais :

    . Ton code ne plante-t-il pas à la ligne 13?
    . La table "tbl_archiviste" contient-elle des noms de champs ou leur valeur?

    Il me semble que tu affectes, comme source de tes contrôles, des valeurs contenues dans cette table: est-ce ce que tu veux faire?

    Ton problème est-il de circuler parmi les enregistrements de ton formulaire ou ceux de ton recordset ?
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  7. #7
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Ci joint une petite base qui reprend ta problématique de deux façons
    1. le formulaire est dépendant de la table
    2. Le formulaire est indépendant. Le principe que j'ai utilisé :
    Comme il n'est pas simple de récupérer la position du curseur dans un jeu d'enregistrements, j'ai contourné le problème en sélectionnant un ensemble d'enregistrements et je lis systématiquement le dernier de la sélection.

    Ainsi, à l'ouverture du formulaire, je suis positionné sur l'enregistrement 1. Lorsque je clique sur le Bouton Suivant,
    1. J'incrémente mon compteur de position de 1 (il prend donc la valeur 2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ' Incrémente la position du curseur
        m_lngPositionCurseur = m_lngPositionCurseur + 1
        ' Appel de la procédure de mise à jour des champs
        Call MajChampForm
    2. Par une requête, je récupère les 2 premiers enregistrements de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MajChampForm()
        ' Déclaration d'une variable locale
        Dim l_strSql As String
     
        ' INitalisation de la syntaxe Sql qui va récupérer les X premiers enregistrements de la table
        l_strSql = "SELECT TOP " & m_lngPositionCurseur & " * FROM T_Data"
        ' Ouverture du jeu d'enregistrements
        Set m_rsData = CurrentDb.OpenRecordset(l_strSql)
    3. Je lis de dernier enregistrement de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        With m_rsData
            ' Positionnement sur le dernier enregistrement du jeu sélectionné
            .MoveLast
            ' Afectation des valeurs aux champs du formulaire
            Me.txtCodeClient = m_rsData.Fields(0)
            Me.txtNomClient = m_rsData.Fields(1)
        End With
    End Sub
    Bonne continuation
    Fichiers attachés Fichiers attachés
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

Discussions similaires

  1. Bouton premier, précédent, etc.
    Par stephadm dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/07/2011, 16h24
  2. Réponses: 1
    Dernier message: 26/03/2010, 19h18
  3. Réponses: 2
    Dernier message: 18/05/2007, 17h17
  4. Réponses: 15
    Dernier message: 16/05/2006, 18h49
  5. Réponses: 6
    Dernier message: 15/05/2006, 16h19

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