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

Contribuez Discussion :

Positionnement sur une ligne précise dans un formulaire


Sujet :

Contribuez

  1. #1
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut Positionnement sur une ligne précise dans un formulaire
    Bonjour,

    Une petite procédure permettant de travailler avec la propriété Bookmark et le recordsetclone d'un formulaire afin de se positionner sur la bonne ligne en fonction de la valeur d'un champ (clé de préférence):

    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
    Sub Positionne(MonForm As Form, ControlName As String, ValeurRech, TypeValeur As Integer)
    On Error Resume Next
    Dim MonClone As Recordset
    Dim Crits As String
        Set MonClone = MonForm.RecordsetClone
        Crits = "[" & ControlName & "]="
        Select Case TypeValeur
            Case vbString
                Crits = Crits & "'" & ValeurRech & "'"
            Case vbDate
                Crits = Crits & "#" & Format(ValeurRech, "mm/dd/yyyy") & "#"
            Case vbLong
                Crits = Crits & ValeurRech
        End Select
        MonClone.FindFirst Crits
        MonForm.BookMark = MonClone.BookMark
        MonClone.Close
    End Sub
    A utiliser de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Positionne me,"MaClé", ValeurRecherche, vbLong
    Pour un sous formulaire avant un Requery, o peux donc sauvegardé la clé de la ligne sur laquelle nous nous trouvons, faire le Requery et ensuite se repositionner au bon endroit au lieu de se retrouver sur le 1er enregistrement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Positionne [SousForm].Form,"MaClé", ValeurSauvee, vbLong
    @+


    Pensez au tag

  2. #2
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Au cas ou certain voudrais se positionner directement à la fin ou carrément sur un N° de ligne précis

    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
    Sub PositionneFin(MonForm As Form)
    On Error Resume Next
    Dim MonClone As Recordset
        Set MonClone = MonForm.RecordsetClone
        MonClone.MoveLast
        MonForm.BookMark = MonClone.BookMark
        MonClone.Close
    End Sub
     
    Sub PositionneNumLigne(MonForm As Form, pnNumLigne As Long)
    On Error Resume Next
    Dim MonClone As Recordset
    Dim I As Long
        Set MonClone = MonForm.RecordsetClone
        For I = 1 To pnNumLigne
            MonClone.MoveNext
        Next
        MonForm.BookMark = MonClone.BookMark
        MonClone.Close
    End Sub
    Comme ces procédures marchent avec l'objet Form, vous pouvez également les utiliser avec un sous formulaire du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PositionneNumLigne [MonSousForm].Form,2
    ou
    PositionneFin [MonSousForm].Form
    @+


    Pensez au tag

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 84
    Points : 63
    Points
    63
    Par défaut placement dans un formulaire
    Bonjour j'ai essayé votre méthode mais je n'arrive pas a récupérer l'index de l'enregistrement...
    Pourriez - vous me dire comment faire svp ?

  4. #4
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    En fait on ne recherche pas un index, mais une valeur dans un champ unique bien entendu.
    Par exemple si vous avez un champ de type "Numero" et que vous voulez vous positionner automatiquement sur la ligne du numéro 47, vous devez utiliser la procédure comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Positionne me,"Numéro", 50, vbLong
    En espérant avoir compris votre question ;-)

    Bonne journée ;-)
    @+


    Pensez au tag

Discussions similaires

  1. Positionner sur une ligne d'un formulaire
    Par devdev dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/03/2009, 18h28
  2. Selectionner une ligne précise dans une combobox
    Par psykoleouf dans le forum VBA Access
    Réponses: 3
    Dernier message: 27/05/2007, 13h04
  3. Ecrire à une ligne précise dans un fichier
    Par Valkirion dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2007, 15h18
  4. comment se positionner sur une ligne de table mysql ?
    Par pas30 dans le forum Requêtes
    Réponses: 3
    Dernier message: 13/01/2007, 13h43
  5. [HTML] Se placer à une ligne précise dans un tableau
    Par seb55555 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 28/10/2004, 15h06

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