Ajout de sous-formulaire dynamique (Recordsets)

Fermé
RnREvack Messages postés 1 Date d'inscription mardi 15 septembre 2015 Statut Membre Dernière intervention 15 septembre 2015 - 15 sept. 2015 à 09:52
 Tessel75 - 17 sept. 2015 à 00:13
Bonjour !

Je travaille actuellement sur une bdd visant à générer (et surtout garder la trace) des devis envoyés à mes clients.

Chaque devis est constitué de tâches et de tarifs associés à ses tâches.
Le problème c'est que ces tâches sont de natures diverses (tarifées et décomptées de manières différentes) et les listes de résultats n'offrent pas les possibilités de mise en page qu'il me faut...
J'ai donc crée un sous-formulaire « template » pour chaque type de tâche, que je veux ajouter en dessous du formulaire représentant les données générales du devis (contact client, délais, bon de commande etc.).

L'idée est la suivante : après avoir défini chaque tâche du devis, je clique sur un bouton, il ouvre le formulaire général. Je récupère en coulisse chaque type de tâches associé au devis dans des recordsets distincts, et j'ajoute un sous-formulaire correspondant pour chaque entrée du recordset (avec les valeurs associées). Je clique sur « exporter en PDF » et voilà ! :)

Pour l'instant j'ai quelque chose comme ça :

Dim rs1, rs2 as DAO.Recordset
Dim sql1, sql2 as String

`sql1 et 2 sont générées dynamiquement ailleurs, pas de souci de ce coté...
Set rs1 = db.OpenRecordset(sql1)
Set rs2 = db.OpenRecordset(sql2)

`exemple avec rs1 :
If rs1.RecordCount > 0 Then
While not rs1.EOF
'LE PROBLEME: Ajouter un sous-formulaire avec les données qu'il faut

rs1.MoveNext
Wend
End If

'Meme chose avec rs2 etc...

Comment faire pour ajouter un sous-formulaire et faire en sorte que son contenu reflète le bon recordset ? J'ai cherché partout en vain...
Merci d'avance pour votre aide !

Cordialement,

1 réponse

Bonjour,
Pour autant que je comprenne exactement ce que tu veux faire, il me semble que la solution la plus simple est d'entrer, à la création, TOUS tes sous-formulaires avec la propriété "AutoRéductible = oui" et "AutoExtensible = oui", de la sorte, s'il y a des données valides pour ton s/s formulaire, il apparaitra, sinon il restera invisible ou à tout le moins, réduit. Pour être plus sûr tu peux écrire un petit bout de code VBA dans "Au Chargement" ou "A l'activation" qui précise les s/s-formulaires à rendre visibles selon la valeur d'une donné-clé.
Tu peux éventuellement te référer à cette réponse faite.

Bonne suite
0