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 :

[Formulaire]Initialiser un champ de sous formulaire


Sujet :

IHM

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut [Formulaire]Initialiser un champ de sous formulaire
    Bonjour à tous.
    Je suis nouveau sur ce forum et débutant dans Access.
    A la maison j'utilise access 2002 et au bureau j'ai access 2000.
    J'ai écrit une applic sur access 2002 qui fonctionne aussi (à quelsques détails près ) sur access 2000.

    Mon problème est le suivant sur access 2002, mais il faut que ça fonctionne aussi sous access 2000.
    J'ai un sous formulaire contenant une liste déroulante.
    Lorque que je crée un nouvel enregistrement dans le sous formulaire, je voudrais que le contrôle de la liste déroulante atteigne par défaut une certaine valeur. Cette valeur est en fait le "responsable" d'un "département". (la liste déroulante présente l'ensemble des responsables).
    La valeur du "département" est inscrite dans un champ du formulaire principal.
    Dans l'expression "valeur par défaut" de la liste déroulante je ne peux pas écrire la référence du champ du responsable car je ne dispose en direct que du champs "Département". Il faudrait je pense une relation SQL mais impossible de l'écrire dans la propriété "valeur par défaut" de la liste déroulante.
    Quel code dois-je écrire et sur quel évenement pour que mon champ responsale s'initialise lorsque je crée un nouvel enregistrement dans le sous-formulaire.
    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 174
    Points : 178
    Points
    178
    Par défaut
    il faut que tu fasses apparaître dans ton formulaire principal le responsable correspondant au departement (ajoute une zone de texte que tu rendras invisible à l'affichage)
    ensuite, ta valeur par défaut ds le sous-formulaire sera le nom de la zone de texte du formulaire principal)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut Créer le champs dans le formulaire principal...
    Merci de ta précédente réponse

    C'est ce que j'ai déjà essayé mais sans aller jusqu'au bout ... En effet mon formulaire principal attaque directement une table. Pour ajouter le champ "Responsable" je suis obligé de faire une requête sur deux table ( dont celle des responsables) et la je ne peux plus créer d'enregistrement ou les modifier dans le formulaire principal (bizarre ! )

    Je ne comprend pas bien car mon sous-formulaire est aussi lié à une requête et lui me pemet de créer/modifier des enregistrement. Qu'est-ce qui ne va pas dans mon formulaire principal quand il attaque une requête ?

  4. #4
    Membre actif Avatar de moicats
    Inscrit en
    Mars 2006
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 299
    Points : 200
    Points
    200
    Par défaut
    bonjour,

    est ce que les tables que tu utilises dans ta requete ont bien un lien entre elles?

    cette relation doit etre de un à un si dans une table tu peux avoir plusieur enregistrement correspondant a un enregistrement de l'autre table access ne sais plus où ecrire
    il me semble que ça peut venir de ça

    bon courage

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    J'ai réussi à faire apparaître mon champ dans le formulaire en écrivant le bout de code suivant sur Activation du formulaire :
    Private Sub Form_Current()
    Dim RechercheResponsable As Recordset
    Dim dwZone As Workspace
    Dim dbBaseDonnees As Database
    Dim DéfautResponsable As String
    Dim rep As String
    Dim Lot_par_affaires As Form
    Dim CCS_Affaire As Control
    Dim CCSval As Variant
    Dim Responsable_CCS As Control

    Set Lot_par_affaires = Forms![Lot par affaires]
    Set CCS_Affaire = Forms![Lot par affaires].[CCS Affaire]
    Set Responsable_CCS = Forms![Lot par affaires].Resp

    CCSval = Nz(CCS_Affaire, "K393260")
    rep = CurDir$
    rep = rep + "\Budget CPT 6 sécurisée.mdb"
    Set dwZone = DBEngine.Workspaces(0)
    Set dbBaseDonnees = dwZone.OpenDatabase(rep)
    DéfautResponsable = "Select [Responsable CCS] from CCS where CCS.CCS=" & Chr(34) & CCSval & Chr(34) & Chr(59)
    Set RechercheResponsable = dbBaseDonnees.OpenRecordset(DéfautResponsable, DB_OPEN_DYNASET)
    Responsable_CCS = Nz((RechercheResponsable![Responsable CCS]), "")

    End Sub

    Pour initialiser mon champ de sous formulaire, il s'agit de reprendre la valeur Responsable_CCS. Je veux le faire dans le même code et modifier la valeur par défaut du contrôle correspondant (responsable oeuvre).Comment modifie-t-on la valeur par défaut d'un champs dans un sous formulaire depuis un code sur activation du formulaire?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Désolé de faire les questions et les réponses, mais autant donner l'info pour servir à d'autres.


    Voici la ligne de code à rajouter pour initialiser le champ.

    Forms![Lot par affaires].Form![Lot par affaire Sous-formulaire]![Responsable oeuvre].DefaultValue = Chr(34) & Responsable_CCS & Chr(34)

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 26/08/2013, 16h08
  2. [AC-2003] MàJ de sous-formulaires imbriqués à partir d'un sous-formulaire
    Par jeanpierre78 dans le forum IHM
    Réponses: 1
    Dernier message: 20/11/2011, 16h38
  3. Réponses: 2
    Dernier message: 02/08/2009, 10h52
  4. Réponses: 2
    Dernier message: 27/03/2007, 17h47
  5. Réponses: 9
    Dernier message: 22/06/2005, 08h45

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