Ajout de sous-formulaire dynamique (Recordsets)
RnREvack
Messages postés
1
Statut
Membre
-
Tessel75 -
Tessel75 -
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,
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,
A voir également:
- Ajout de sous-formulaire dynamique (Recordsets)
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Tableau croisé dynamique - Guide
- Formulaire de reclamation instagram - Guide
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
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
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