Bonjour à tous et à toutes,
Ma base :
Tables principales :
Fiche (id_fiche), Maison (id_fiche, id_maison), Gite (id_fiche, id_maison, id_gite)
Tables secondaires :
Dépendant de maison : Habitant (id_fiche, id_maison, num_habitant)
Viro_Api (id_fiche, id_maison, id_pool_asp)
Dépend de gite : Photo (id_fiche, id_maison, id_gite, num_photo)
Viro_Larve (id_fiche, id_maison, id_gite, id_pool_larve)
J’ai créé un formulaire de saisie composé d’1 formulaire principal (Table Fiche) et d’un sous-formulaire (Table Maison)
Le sous-formulaire (Table Maison) contient :
1 sous-sous-formulaires (Table Habitant)
+ 1 sous-sous-formulaires (Table Gite)
Mes questions :
1) J’ai mis des boutons « enregistrement suivant » dans chaque formulaire et sous-formulaires, comment puis-je bloquer ce bouton pour qu’il ne puisse pas dépasser le dernier enregistrement de la table concernée (éviter une fiche vide) car j’ai ajouté un bouton « nouveau enregistrement »
---- Pour ce point, j'ai trouvé cette solution en créant un bouton indépendant.
2) Comment faire passer les données des clés du sous formulaire par le bouton « nouveau enregistrement » afin que ces champs soient remplis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub Suivant_Click() Dim lng As Long ' Obtient le nombre d'enregistrements lng = Me.RecordsetClone.RecordCount If CurrentRecord <> lng Then DoCmd.GoToRecord , , acNext End If End Sub
(exemple dans le sous-sous-formulaire Habitant, les clés id_fiche, id_maison soient remplis)
3) J’ai des photos des gites et j’ai créé un formulaire « Photo » (le tuto de cafeine) que j’appelle à partir d’un bouton (Ouvrir un formulaire) dans le sous-sous-formulaire Gite mais je n’arrive pas à le bloquer sur les clés 3 d’identifications du gite (id_fiche, id_maison, id_gite)
Mes essais : macro bouton Photo
j’obtiens une erreur dans le formulaire photo car aucune donnée n’est passée
Code : Sélectionner tout - Visualiser dans une fenêtre à part Where =" [Photo]![id_fiche] =" & "'" & [Formulaires]![frmFiche]![Gite sous-formulaire].[Formulaire]![id_fiche] & "'" Et "[Photo]![id_maison]=" & "'" & [Formulaires]![frmFiche]![Gite sous-formulaire].[Formulaire]![id_maison] & "'" Et "[Photo]![id_gite]=" & "'" & [Formulaires]![frmFiche]![Gite sous-formulaire].[Formulaire]![id_gite] & "'"
Ou dans Formulaire Photo
source :
j’obtiens les fenêtres me demandant les valeurs de id_fiche, id_maison et id_gite
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT Photo.id_fiche, Photo.id_maison, Photo.id_gite, Photo.num_photo, Photo.Photo FROM (Fiche INNER JOIN Maison ON Fiche.Id_fiche = Maison.id_fiche) INNER JOIN (Gite INNER JOIN Photo ON (Gite.id_gite = Photo.id_gite) AND (Gite.id_maison = Photo.id_maison) AND (Gite.id_fiche = Photo.id_fiche)) ON (Maison.id_maison = Gite.id_maison) AND (Maison.id_fiche = Gite.id_fiche)WHERE (((Photo.id_fiche)=[Formulaires]![Gite sous-formulaire]![id_fiche]) AND ((Photo.id_maison)=[Formulaires]![Gite sous-formulaire]![id_maison]) AND ((Photo.id_gite)=[Formulaires]![Gite sous-formulaire]![id_gite]));
La première indication pour pouvoir résoudre ces 3 problèmes est de savoir s’il faut que je passe par des requêtes, des macros ou le code VBA, sachant que j’ai un peu de mal avec les expressions dans les macros.
Si j’arrive à régler (grâce à vous) ces problèmes je devrais pouvoir régler ceux concernant les autres tables (Viro_Aspi, Viro_larves, Emmergent….) qui sont basées sur le même modèle.
Merci d'avance pour votre attention et votre aide
Cordialement
Daniel







Répondre avec citation








Partager