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 :

Position de l'enregistrement dans un formulaire


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut Position de l'enregistrement dans un formulaire
    Bonjour,

    Je voudrais remplir une table à l'aide de multiple formulaires (10) pour une question d'ergonomie. Seulement je ne sais pas basculer d'un formulaire à un autre en restant sur le même enregistrement.

    Lorsque je crée un enregistrement, j'ai bien essayé de me déplacer sur le dernier enregistrement grâce à la commande "gotorecord,,aclast" qui va bien et ainsi de suite sur chaque formulaire. Mais je me rends compte que quand je vais vouloir modifier un enregistrement existant, je vais être ennuyé !

    Ma requête est donc la suivante : lors de mon affichage de mon premier formulaire, il faudrait que j'enregistre la position de mon enregistrement dans une variable et qu'à chaque chargement de formulaire je charge cette valeur pour faire un gotorecord,,acgoto, X.

    Le problème c'est que je débute et que je suis pas forcement très doué et je ne vois pas comment m'y prendre, pour récupérer une valeur d'un autre formulaire.

    Si quelqu'un avait 5 minutes pour m'orienter vers un sujet qui va bien ou pour m'aider à faire mon code, ce serait génial !

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    La méthode OpenForm() possède un argument de condition Where qui te permet d'ouvrir un formulaire sur un enregistrement précis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim VarTexte As String
    VarTexte = "DUPONT"
    DoCmd.OpenForm "MonFormulaire", acNormal, , "[Nom]= '" & VarTexte & "'"
    ou bien s'il s'agit d'une valeur numérique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim VarNum As Long
    VarNum = 1234566789
    DoCmd.OpenForm "MonFormulaire", acNormal, , "[Identifiant]=" & VarNum
    Argy

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Merci pour ta réponse !

    En fait por être plus précis, mon premier formulaire me sert à définir un nouvel enregistrement.

    J'utilise ce code pour créer un nouvel enregistrement et mémoriser sa position :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Open(Cancel As Integer)
    DoCmd.GoToRecord , , acNewRec
    End Sub
    Sub CurrentFormRecord(frm As Form)
        Dim position As Long
        position = frm.CurrentRecord
    End Sub
    Ensuite à l'ouverture de mon second formulaire, je voudrais récupérer cette valeur retenue dans ma variable 'position' pour me placer sur le bon enregistrement.

    Parceque si je comprends bien avec ce que tu me proposes, il faut définir ta variable manuellement pour qu'il se positionne sur l'enregistrement voulu ?

    Merci beaucoup

    Guid'

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 172
    Points
    12 172
    Billets dans le blog
    5
    Par défaut
    Je t'ai donné une méthode qui s'adapte le mieux à ta demande.
    Celle que tu vises n'est pas souple et peux être inopérante...
    Tu ne pourras pas accéder à un enregistrement dans une autre table si le précédent n'est pas sauvegardé.

    Argy

  5. #5
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Pour reprendre l'expression d'une personne qui écrit des cours ici, un SGBDR n'est pas le logiciel que tu utilises, donc le SQL c'est comme chercher dans un sac de billes... On ne connait pas l'ordre, il n'existe pas d'ordonnancement... Il te faut un champs définie pour ça !!!


  6. #6
    Membre chevronné
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Points : 2 178
    Points
    2 178
    Par défaut
    Le formulaire1 est ouvert et affiche tous les enregistrement, le formulaire2 permet l'ajout d'un enregistrement

    On mémorise le champ qui doit être unique (champ NumeroAuto bienvenu) dans l'événement Form_BeforeUpdate du formulaire2
    A la fermeture du formulaire2 le formulaire1 est mis à jour (requery) , l'enregistrement est ensuite rechercher dans la table (findfirst) puis marqué (bookmark), le formulaire1 se positionne sur cette marque quelque soit le tri qu'il peut y avoir sur les champs

    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
     
     
    Option Compare Database
     
    Dim varText As String
     
    Private Sub Form_BeforeUpdate(Cancel As Integer)
     varText = Me!ChampUnique
    End Sub
     
    Private Sub Form_Close()
     Dim t As DAO.Recordset, signet As String
     
     Forms("Formulaire1").Requery
     Set t = Forms("Formulaire1").RecordsetClone
     t.findfirst "[ChampUnique]='" & varText & "'"
     signet = t.Bookmark
     Forms("Formulaire1").Bookmark = signet
     t.Close
     
    End Sub
     
    Private Sub Form_Load()
     DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
    End Sub
    Adapter pour un champ unique numérique

Discussions similaires

  1. suppression enregistrement dans un formulaire
    Par oniric dans le forum Access
    Réponses: 3
    Dernier message: 13/04/2006, 11h51
  2. Réponses: 4
    Dernier message: 22/03/2006, 12h19
  3. Positionnement sur un enregistrement dans un formulaire
    Par bestall666 dans le forum Access
    Réponses: 5
    Dernier message: 04/02/2006, 17h10
  4. Position d'un enregistrement dans une table ou requête Query
    Par polinevol dans le forum Bases de données
    Réponses: 3
    Dernier message: 21/01/2006, 03h53
  5. Position d'un enregistrement dans une table
    Par polinevol dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/01/2006, 09h10

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