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

VBA Access Discussion :

[DAO]DAO.Recordset et sous formulaire


Sujet :

VBA Access

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut [DAO]DAO.Recordset et sous formulaire
    Bonjour,

    Je suis relativement débutante sous access et VBA, encore plus en DAO.

    Voici mon soucis :
    j'ai un DAO.Recordset qui doit contenir le résultat d'une requête, jusque là tout va bien.
    Je voudrais alimenter un sous-formulaire avec ces données.

    Quelle est la syntaxe exacte que je dois utiliser

    Mon sous formulaire s'appelle SFcumulsCA et mon recordset a été défini

    Dim CaComParTyp As DAO.Recordset

    et voici l'appel de la requête pour alimenter mon recordset
    Set CaComParTyp = CurrentDb.OpenRecordset(RechCaComTyp, dbOpenSnapshot)
    => c'est après que je ne sais plus

    CA doit être tout bête, mais je n'arrive pas à trouver dans les faq etc.

    Merci beaucoup d'avance !

  2. #2
    Membre expérimenté
    Avatar de Mahefasoa
    Homme Profil pro
    Manager IT
    Inscrit en
    Octobre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Manager IT

    Informations forums :
    Inscription : Octobre 2003
    Messages : 835
    Points : 1 664
    Points
    1 664
    Par défaut
    Bonjour,
    C'est assez relativement simple (je crois): mets ta requête comme source de ton sous-formulaire. En mode création, attribue la requête RechCaComTyp à la propriété Source du sous formulaire SFcumulsCA.
    En code, tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Form_SFcumulsCA.RecordSource = "RechCaComTyp"
    Form_SFcumulsCA.Requery 'pour mettre à jour l'affichage
    Je ne sais pas si c'est ce que tu veux.
    Bon courage et @+

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut utiliser mon Dao recordset
    Merci poru ta réponse, mais ce n'est pas ça que je veux.

    Je sais que ça marche comme tu me l'écris, mais je voudrais savoir si on peut directement utiliser le DAO.Recordset pour alimenter mon sous formulaire.
    A l'étape de mon programme (ou je veux alimenter mon SF) j'ai déjà ouvert mon recordset et utilisé les enregistrements retrounés, pour faire divers calculs.

    Merci pour vos réponses.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    La seule maniére que je vois si tu veux utiliser les Recordset c'est de mettre comme source de ton sous-formulaire une table que tu alimentes par ton recordset, et bien sûr un Requery ensuite.

    Mais le mieux est la solution de Mahefasoa, puisque ton Recordset est en sorte l'interprétation de ta requête.

    Starec

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Merci
    Donc si je comprends bien, le DAO.recordset n'est pas l'idéal pour l'utilisation que je veux en faire.
    En fait je débute, j'ai pas encore bien compris les tenants et aboutissants de chacune des méthodes.
    J'ai besoin de balayer le résultat de ma requête et d'alimenter un sous formulaire avec, c'est du très classique. Je devrais donc alimenter mon sf puis pour utiliser son contenu, je devrais faire comment (lire le contenu de la requête ?)

    En tout cas, super forum, je découvre.;-)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut question subsidiaire
    Pouruqoi suis-je catégorisée invité de passage alors que je suis inscrite ?
    Ca fait pas sérieux !

  7. #7
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Les statuts sont fonction du nombre de messages accumulés et ne préjugent de rien.

    Bienvenue parmi nous

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,
    Citation Envoyé par caossak
    Merci poru ta réponse, mais ce n'est pas ça que je veux.

    Je sais que ça marche comme tu me l'écris, mais je voudrais savoir si on peut directement utiliser le DAO.Recordset pour alimenter mon sous formulaire.
    A l'étape de mon programme (ou je veux alimenter mon SF) j'ai déjà ouvert mon recordset et utilisé les enregistrements retrounés, pour faire divers calculs.
    Pour répondre à cette question technique (au-delà de la pertinence de l'usage que tu en feras), dans Access un formulaire possède une propriété Recordset (en lecture/écriture) à laquelle tu peux associer un Recordset que tu auras créé par ailleurs.

    Maintenant la syntaxe est un peu compliquée parce que tu veux accéder au Recordset d'un sous-formulaire.
    Je fais l'hypothèse que ton code VBA s'exécute dans le Module de code du formulaire parent... Tu confirmes ?

    Ici on peut utiliser le mot-clé Me qui permet de représenter l'objet Access dont le module de code contient la procédure en cours d'exécution.
    Utilisé dans une procédure du formulaire parent, Me sert à le référencer implicitement sans avoir besoin de le désigner explicitement (c-à-d pas besoin de donner le nom du formulaire). C'est pratique !

    Dans ce formulaire parent, il existe un contrôle sous-formulaire nommé SFcumulsCA. Ok ?

    Pour référencer le formulaire contenu dans un contrôle sous-formulaire, on utilise la propriété Form (lecture seule) du contrôle sous-formulaire.

    Tout ça mis bout à bout, ça donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim CaComParTyp As DAO.Recordset
     
    Set CaComParTyp = CurrentDb.OpenRecordset(RechCaComTyp, dbOpenSnapshot)
     
    Set Me.SFcumulsCA.Form.Recordset = CaComParTyp

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 22
    Points : 15
    Points
    15
    Par défaut je confirme
    Je confirme tout et ça marche

    j'avais testé forms!me.sfcumulsca.form.recodset = .etc

    et ça marchait pas.
    Super merci !

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Citation Envoyé par caossak
    Je confirme tout et ça marche

    j'avais testé forms!me.sfcumulsca.form.recodset = .etc

    et ça marchait pas.
    Super merci !
    J'en suis ravi !

    Puisque tu viens de nous rejoindre, je me permets de te préciser que tu devrais "tagger" cette conversation pour déclarer que ton problème est résolu.
    Il faut pour cela revenir éditer ton premier message et trouver le bouton [Résolu].
    C'est pratique pour nous permettre de savoir facilement que tu n'as plus besoin d'aide.
    Merci.

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

Discussions similaires

  1. [2005] DAO.Recordset - Access sous SQL Server
    Par PHILIPPE_13_1969 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/09/2014, 12h05
  2. Recordset DAO avec un sous-formulaire
    Par Boid' dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/07/2013, 17h39
  3. [DAO]Récupérer le contenu d'un champ d'un sous-formulaire
    Par DonQuiShoote dans le forum VBA Access
    Réponses: 3
    Dernier message: 16/04/2007, 14h00
  4. Recordset et champ de sous formulaire
    Par Gwenou974 dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 14h44
  5. [VBA] ADO & DAO --> Compréhension Recordset ... Probl
    Par snoopy69 dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/10/2005, 15h27

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