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 :

sous formulaire et recordset


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Points : 59
    Points
    59
    Par défaut sous formulaire et recordset
    Bonjour,

    Je souhaiterais affecter le résultat d'une requete stocker dans un recordset à un sous formulaire indépendant.
    J'ai beau cherché dans le forum, les tutos et internet, impossible de trouver de réponse sur le faisabilité et le comment...
    Je pensais utiliser
    Ou Me est le formulaire et NSF le nom du sous formulaire
    Mais il semblerait que cette propriété n'accepte que les tables ou requêtes.
    Puis j'ai été vers l'utilisation de form du sous formulaire
    Mais là j'ai un message m'indiquant que l'objet est fermé ou supprimé.
    Donc je sèche...

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 095
    Points : 5 211
    Points
    5 211
    Par défaut
    Bonsoir,

    Depuis le sous formulaire j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    me.parent.rst!monchamp
    ou
    form_MonForm.rst!monchamp
    Depuis le formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.fille42.mavariable=rst!monchamp
    J'espère que cela marchera dans ton cas
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Points : 59
    Points
    59
    Par défaut
    Je vois pas bien ton exemple...
    Tu affecte un champ au sous formulaire?
    Moi je souhaite affecter un recordset et tous ses champs au sous formulaire.
    Cela afin d'afficher tous les champs dans un controle de type feuille de données inclus dans mon formulaire où il y a d'autres zones de texte qui permettent de changer le contenu du recordset.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    voila un petit exemple, avec un recordset DAO
    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
    Option Compare Database
    Option Explicit
     
    Dim sfmRs As DAO.Recordset
    Const strAltSQL = "SELECT * FROM [Détails commandes] WHERE [n° commande]=-1"
     
    Private Sub lstNumCommande_Click()
    Dim strSQL As String
     
    If Not (sfmRs Is Nothing) Then Set sfmRs = Nothing
     
    If Nz(Me.lstNumCommande, 0) <> 0 Then
       strSQL = "SELECT * FROM [Détails commandes] WHERE [n° commande]=" & Me.lstNumCommande
    Else
       strSQL = strAltSQL
    End If
     
    ' Ouvre recordset
    Set sfmRs = CurrentDb.OpenRecordset(strSQL)
    ' Définit le recordset comme source de données du sous-formumlaire sfmDetCmde
    Set Me.sfmDetCmde.Form.Recordset = sfmRs
     
    End Sub
    Bien sûr, les contrôles de mon sous-formulaire ont pour source, des champs existant dans le recordset.

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Points : 59
    Points
    59
    Par défaut
    Ca, comme indiqué dans mon mail d'origine, j'ai déjà essayé mais j'ai un message:
    "L'expression entrée fait référence à un objet fermé ou supprimé".
    J'ai vu pas mal de forums où il y avait ce genre de problème, mais pas vu de solution.
    Ce que je comprends pas c'est pourquoi ca marche chez toi...
    Pour info, moi j'ai un recordset ADO.

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Ça marche chez moi parce que le recordset est un recordset DAO.

    Avec ADO, il faut mettre la propriété CursorLocation du recordset à adUseClient.
    Cette condition est nécessaire, mais je ne garantie pas qu'elle soit suffisante.

    A+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 72
    Points : 59
    Points
    59
    Par défaut
    Merci mais c'est effectivement pas suffisant... même message m'indiquant que l'objet est fermé ou supprimé.
    J'ai l'impression que cela vient plus du sous-formulaire que du recordset. En effet, même avec "" à la place du recordset j'ai le même message.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2019
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Près de 10 ans après ce post, je rencontre le même problème qui n'est pas résolu... quelqu'un a une idée?

Discussions similaires

  1. Access - vba recordset sous-formulaire
    Par jedi186 dans le forum VBA Access
    Réponses: 17
    Dernier message: 01/06/2008, 13h02
  2. [Sous-Formulaire]Ouverture d'un recordset
    Par Bejarid dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/06/2007, 13h55
  3. [DAO]DAO.Recordset et sous formulaire
    Par caossak dans le forum VBA Access
    Réponses: 9
    Dernier message: 24/04/2007, 12h32
  4. Recordset pour dupliquer un sous-formulaire
    Par fredpeca dans le forum Access
    Réponses: 3
    Dernier message: 05/02/2007, 16h07
  5. Recordset et champ de sous formulaire
    Par Gwenou974 dans le forum Access
    Réponses: 2
    Dernier message: 20/04/2006, 14h44

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