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

Access Discussion :

synchronisation form/sousform avec recordsets définis ds vba


Sujet :

Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 7
    Points
    7
    Par défaut synchronisation form/sousform avec recordsets définis ds vba
    Bonjour,
    Sur access2000, j'ai un form pour lequel je ne souhaite pas qu'access enregistre automatiquement les données. J'ai suivi la méthode indiquée dans la faq : ne pas faire un form lié mais baser la source de données à partir d'un recordset. Pour me permettre de décider quand les données doivent être modifiables ou non, j'ai utilisé un recordset DAO (cela est d'ailleurs mal indiqué dans la faq).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim db As DAO.Database
    Dim rsdao As DAO.Recordset
    Set db = CurrentDb
    Set rsdao = db.OpenRecordset("SELECT * FROM intervention", dbOpenDynaset)
    Set Me.Recordset = rsdao
     
    Me.AllowEdits = False
    Je joue sur AllowEdits pour passer de Lecture seule à LectureEcriture.
    J'ai également un sous formulaire qui est pour la même raison basé sur un autre recordset DAO.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rsdao1 = db.OpenRecordset("SELECT id_intervention FROM intervention", dbOpenDynaset)
    Le sousformulaire est en mode feuille de données.
    Pour synchroniser le form et le sousform, j'utilise le champ id_intervention. Cela marche si form et sousform sont classiquement liés tous deux à une table ou une requête, en utilisant la fenêtre propriétés.
    Problème : malgré tentatives et recherches, je n'arrive pas dans ce cas où je définis la propriété Recordset par le code à synchroniser formulaire et sous formulaire. Le sous formulaire contient toutes les données, sans aucun filtre.
    pourquoi ????
    Quelle solution ???
    Merci pour votre aide!

  2. #2
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    tu as déjà regardé ici:
    http://access.developpez.com/faq/?pa...nee#TriFormChp
    c'est dans la FAQ.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Merci pour la réponse mais de même, cela ne marche pas. As tu essayé ta technique sur mon problème ?
    Order by sert simplement à faire un tri, cela ne correspond pas au filtre champpere/champfils et de plus dans ce cas, le tri ne fonctionne même pas ! (il fonctionne bien sur un formulaire mais pas sur un sous-formulaire).
    En fait, j'ai résolu mon problème à force d'essais, même si la solution n'est pas optimale, cela fonctionne. Donc je vais conclure moi-même mon post. Si je me trompe ou si quelqu'un a une meilleure solution, ou une explication rationnelle, je suis preneur.
    J'ai finit par comprendre que lorsqu'un sous-formulaire est basé sur une requête qui est définie dans le code et non pas dans la feuille de propriétés-onglet données (dans mon cas, je définis le recordset dans l'évenement Form_Open), ce sous-formulaire n'est pas reconnu par access comme un formulaire lié mais indépendant. Faites l'expérience et arrêtez moi si je me trompe. Bug??? D'où pas de reconnaissance des champspères et champsfils.
    Quoiqu'il en soit, il faut simplement éviter de faire comme ça et mettre la requête comme source de données dans la feuille de propriétés. Là le tri du sous-formulaire fonctionne Pour que les champs soient modifiables, il faut bien veiller à choisir comme type de recordset dans la feuille de propriétés onglet données "Feuille rép.dyn.(MAJ globale)". Sinon, le formulaire est en lecture seule. En jouant sur allowEdits, on passe de lecture/éciture à lecture seule.

Discussions similaires

  1. [XL-2003] Cellule = nom variable avec variable définie dans VBA
    Par cailloup dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/08/2011, 14h08
  2. [AC-2007] Gestions des pièces jointes avec RecordSet sous VBA
    Par Oxopor dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/07/2011, 11h59
  3. suppression vba avec recordset
    Par huître dans le forum Access
    Réponses: 1
    Dernier message: 06/02/2011, 22h26
  4. Modifier le texte d'une forme sélectionnée avec VBA
    Par Graphiste Powerpoint dans le forum VBA PowerPoint
    Réponses: 5
    Dernier message: 03/06/2009, 12h11
  5. Réponses: 3
    Dernier message: 07/02/2006, 14h25

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