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

Modélisation Discussion :

Transfert de cles dans les nouveaux enregistrements, etc.


Sujet :

Modélisation

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut Transfert de cles dans les nouveaux enregistrements, etc.
    Bonjour à tous et à toutes,

    Ma base :
    Nom : Tables et liaisons.JPG
Affichages : 168
Taille : 120,6 Ko

    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)

    Nom : Formulaire.JPG
Affichages : 162
Taille : 151,4 Ko

    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.

    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
    2) Comment faire passer les données des clés du sous formulaire par le bouton « nouveau enregistrement » afin que ces champs soient remplis.
    (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
    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] & "'"
    j’obtiens une erreur dans le formulaire photo car aucune donnée n’est passée

    Ou dans Formulaire Photo
    source :
    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]));
    j’obtiens les fenêtres me demandant les valeurs de id_fiche, id_maison et 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

  2. #2
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Vous auriez du gérer les identifiants des lignes avec des numéros autos et l'unicité des tuples avec des index. Là, il est difficile de lire les règles de gestions et vos requêtes vont être très complexes à écrire ne serait ce que pour gérer les jointures.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Citation Envoyé par Tofalu Voir le message
    Vous auriez du gérer les identifiants des lignes avec des numéros autos et l'unicité des tuples avec des index. Là, il est difficile de lire les règles de gestions et vos requêtes vont être très complexes à écrire ne serait ce que pour gérer les jointures.
    Bonsoir,
    je ne comprend pas très bien votre remarque, pourriez-vous, s'il vous plaît, me la préciser, par un exemple ?

    Cordialement

    Dan

    Ps. Merci d'avoir fait la mise en forme je n'ai compris votre message qu'au réveil (la nuit porte conseil) , et j'ai trouvé ce matin que vous l'aviez fait pour moi.

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 321
    Billets dans le blog
    48
    Par défaut
    Bonjour,

    Citation Envoyé par couret3000 Voir le message
    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] & "'"
    Essaie avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Where =" [Photo]![id_fiche] =" & "'" & [Formulaires]![frmFiche]![Gite sous-formulaire].[Formulaire]![id_fiche] & "' AND [Photo]![id_maison]=" & "'" & [Formulaires]![frmFiche]![Gite sous-formulaire].[Formulaire]![id_maison] & "' AND [Photo]![id_gite]=" & "'" & [Formulaires]![frmFiche]![Gite sous-formulaire].[Formulaire]![id_gite] & "'"

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Bonjour et merci pour la réponse,

    j'ai toute fois trouvé une solution en prenant en compte le fait que le formulaire Gite est "dans" le formulaire Maison qui est lui même "dans" le formulaire fichier. Je dois donc en tenir compte et ma commande WHERE devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    WHERE (((Photo.id_fiche)=[Forms]![frmFiche]![Maison sous-formulaire].[Form]![Gite sous-formulaire].[Form].[id_fiche]) _
     AND ((Photo.id_maison)=[Forms]![frmFiche]![Maison sous-formulaire].[Form]![Gite sous-formulaire].[Form].[id_maison]) _
     AND ((Photo.id_gite)=[Forms]![frmFiche]![Maison sous-formulaire].[Form]![Gite sous-formulaire].[Form].[id_gite]))
    ORDER BY Photo.num_photo;
    Du coup toutes mes questions sont réglées

    Comme l'a dit M.Tofalu, les requêtes deviennent difficiles à gérer, mais une fois que c'est fait.

    Cordialement et merci

    Daniel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 30
    Dernier message: 24/10/2011, 19h37
  2. [AC-2007] requete ne prenant pas en charge les nouveaux enregistrements
    Par thebends31 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 26/07/2010, 16h38
  3. Réponses: 7
    Dernier message: 16/03/2009, 11h40
  4. Réponses: 6
    Dernier message: 07/04/2008, 16h24
  5. CTRL + R pour afficher les nouveaux enregistrement
    Par red210 dans le forum Hibernate
    Réponses: 1
    Dernier message: 21/11/2007, 11h23

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