[Resolu][VBA]pointeur sur une sous-feuille dans un sous formulaire

pointeur sur une sous-feuille dans un sous formulaire [Resolu][VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 09-12-2014 à 18:41:11    

Bonjour,
 
Ma question n'est pas évidente du moins pour moi.
 
J'ai fait une requête sur deux tables qui sont liées entre elles. Le résultat permet de faire des catégories qui lorsqu'on appuie sur les petits "+" sur le coté va dérouler tous les produits qui appartiennent à cette catégorie. Et compter le nombre de produits dans chaque catégorie. Mettons qu'il y ait "épices" "sucré" "salé" une table genre et une table aliment
Ca nous donne un  
+ épices 10
+ sucré 5
+ salé 10
Donc quand on clique sur épices par exemple j'ai la liste des épices qui se déroule.  
Dans cette requête j'ai sorti les champs de genre, et j'ai juste sorti pour compter le champ genre contenu via une valeur numérique dans la table aliments.
Pour avoir la sous-feuille qui se déroule avec chaque genre j'ai utilisé la propriété "sous-feuilles données nom" de la requête et mis dans champ pères IDgenre et dans champ fils "genre"  
 
 
Au niveau de mon formulaire, j'ai un sous formulaire qui va afficher cette requête.
 
Comme j'aimerai pouvoir éditer chaque entrée via un formulaire j'ai mis un petit bouton édition en haut au dessus du sous formulaire pour qu'en pointant sur un aliment j'obtienne par exemple l'id de l'aliment.  
Et c'est là que ca coince.
 
J'arrive très bien à récupérer n'importe quel champ venant directement du sous formulaire mais rien de la sous-feuille du sous-formulaire.  
Je peux récupérer l'idgenre, le genre, avec Me.Form![SSFAli].Form![Idgenre].Value (si je veux la clé primaire du genre)
 
mais je ne récupérerais pas le titre une fois que je pointe quelque part dans les aliments sous la catégorie.  
 
Merci d'avance pour votre aide, j'ai lancé des recherches et j'ai lu des pages et des pages, je ne trouve des informations que pour ce qui concerne le 1er sous-formulaire mais rien concernant la sous-feuille du sous formulaire, d'autant que je ne vois pas du tout comment elle peut s'appeler, comme sa table, avec un préfix, avec un nom générique.... y'a til un endroit ou l'on peut récupérer tous les noms des controles existants... ?


Message édité par daerlnaxe le 10-12-2014 à 10:10:04
Reply

Marsh Posté le 09-12-2014 à 18:41:11   

Reply

Marsh Posté le 09-12-2014 à 21:16:38    

il ne 'suffit' pas de rajouter un étage?  
genre :
Me.Form![SSFAli].Form![Idgenre].Form![tonchamp].value


---------------
il s'appel le ronge me doute
Reply

Marsh Posté le 09-12-2014 à 23:51:53    

hélas ca me sort une erreur 438
En même temps il manquerait après l'idgenre le nom surtout du control qui contient toutes ces sous données, mais je ne vois pas ou je peux récupérer le nom de la sous-feuille de sous-formulaire.
Merci en tout cas.


Message édité par daerlnaxe le 09-12-2014 à 23:57:15
Reply

Marsh Posté le 10-12-2014 à 10:05:36    

Ok, je me réponds tout seul histoire que cela serve à quelqu'un d'autre selon.  
 
Je n'ai pas trouvé, et je ne suis même pas sur que cela soit possible de récupérer le pointeur sur la subdatasheet d'un subform dans un form. Je ne vois pas ou est le nom du subdatasheet, je ne sais même pas si ca en a un, et s'il y a un nom d'objet je ne trouve pas. Cette méthode des subdatasheets me parait sympa et tentante pour le débutant, ce que je suis sur access, ca ne m'étonnerait pas qu'elle ne propose rien en profondeur en revanche.  
 
Par contre j'ai fini par procéder autrement pour obtenir un résultat similaire, voire même avec le bénéfice d'une puissance plus importante, puisqu'on peut avoir 7 niveaux alors que les subdatasheets sont beaucoup plus limitées, via les formulaires imbriqués que doivent connaitre ceux plus avancés.  
 
Lien MSDN: [url] https://support.office.com/fr-fr/ar [...] edsubforms[/url]
 
 
J'ai utilisé le lien ci dessus et en suivant cette procédure simple, j'ai obtenu immédiatement le résultat similaire. Du coup comme ca me permettait de nommer mon sous formulaire, et donc simple à appeler.
 
Du coup je récupère mon pointeur facilement et sans soucis via  
 
Me.Form![subform1].Form![subform2].Form![field].Value
 
Donc ma solution aura été de contourner le problème ne disposant pas des connaissances suffisantes.


Message édité par daerlnaxe le 10-12-2014 à 10:09:20
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed