VBA Intéger le dernier Id_parent d'une table dans un formulaire

[Résolu/Fermé]
Signaler
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018
-
 Utilisateur anonyme -
Bonjour à tous,

Je suis débutant sous access et je recherche la façon la plus adéquate de lier mes formulaires afin d'éviter des erreurs lors de la tabulation de mes enquêtes (un acteur fait plusieurs processus qui sont constitués chacun de plusieurs activités).

Je cherche donc à récupérer le dernier Id_acteur (clé primaire) créé grâce a un formulaire dans ma table acteur afin que celui-ci s'inscrive automatiquement comme Id_acteur pour les enregistrements queje vais créé dans mon formulaire processus.

Mon objectif est de compléter tous les processus d'un seul acteur avant de passé au suivant. (de même avec les activités).

J'ai essayer de créer un module VBA en ouverture de formulaire pour résoudre mon problème mais une erreur m’apparaît (voir image jointe).

Je vous joins mon code

___________________________
Option Compare Database

Dim db As Database
Dim rs As Recordset

Private Sub Form_Open()

Set db = CurrentDb
Set rs = db.OpenRecordset.FindLast("table")

Me.Id_actor.Application rs([1 Actores]![Id_actor])

End Sub
__________________________

Sauriez vous pourquoi ca bug? Comment puis-je corriger mon problème? Auriez vous un conseil sur comment solutionner mon problème par un autre moyen que ce module?

Bien cordialement,
Juju

10 réponses


Bonjour,

je ne comprends pas trop ce que tu veux faire, et l'image jointe n'est pas présente.

J'ai l'impression que des sous-form pourraient répondre à ton souci, mais rien de certain, tant que la problématique n'est pas clairement définie.

Si tu veux, mets ta base sur un lien Smash et copies le lien ici :
https://www.commentcamarche.net/faq/47439-utiliser-smash-pour-vos-envois-de-fichiers

A+
Messages postés
16799
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 septembre 2021
900
bonsoir, moi je ferais une recherche pour obtenir Id_actor de l'enregistrement que je viens de créer, en cherchant dans quel enregistrement sont les données que je viens d'insérer.
Mais c'est réinventer la roue ! Un sous-form ferait l'affaire, ou alors je n'ai rien pigé à la question...

a+

Si j'ai bien compris (Juju, confirmes stp) :
Un acteur --> x processus.
Un processus --> x activités

Mais peut-on retrouver un même processus (proc1 par exemple) pour x acteurs différents ? De même une même activité (ativité 1 par exemple) pour x proc différents ??

Pour simplifier, imaginons une table (acteur, proc, act)

Est-il possible d'avoir :
(1, 1, 1)
(1, 1, 2)
(1, 1, 3)
(1, 2, 1)
(2, 1, 1)
(2, 3, 4)

?

A+



Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018

Bonsoir à tous ou bon matin,

Merci pour vos réponses et vos questions!!

En faite le sous formulaire ne me permet que des relations père/fils, si j'ai bien compris, alors que j'ai besoin de relation pouvoir rentrer de façon continue une donnée père qui serait un acteur, qui effectue plusieurs procesus (donnée id_fils), chaque processus contenant plusieurs activités (autre formulaire lié _ id_petit fils) qui contiennent elles même plusieurs intrant (autre formulaire lié id_arrière petit fils).

La solution de rechercher le dernier enregistrement réalisé pourrait être intéressant dans ce cas.? Comment je pourrais faire pour l'automatiser? Est-ce bien la bonne solution?

Je vous mets le liens de ma base de donnée. Je suis encore débutant sous Access et je travail en espagnol j'espère que ce ne sera pas un problème, sinon je suis dispo pour toute vos questions.
http://fs.ht/2fd4adad-0f78-11e7-b8d9-06b226fed341

Bien cordialement
Juju
Utilisateur anonyme
Hello,

quel est le form concerné ?? J'ai téléchargé la base, mais j'ai un peu de mal avec le spanish...

A+
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018
> Utilisateur anonyme
Bonjour HDU,

Le Formulaire est "+F3 Materia prima" dans celui-ci il faut que le "Id_actor" soit récupéré du dernier enregistrement de "Id_actor" de la table "actor".

Ensuite le lien du sous formulaire, pere/fils devrait permettre que les enregistrements du sous form récupèrent automatiquement le "Id_proceso_productivo" en cours d'édition.

Est ce que tu serais comment faire?

Merci pour ton aide!
Juju
Utilisateur anonyme >
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018

tu n'as pas possibilité de mettre cela en French ????

J'ai franchement du mal là.

En + il y a une erreur au chargement du form.

Au pire donnes la traduction de chaque form, et lequel contient l'autre...
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018

Bonjour HDU,

Je viens de faire une base de donnée simplifiée pour expliquer ce que je veux faire avec mes formulaires en Français.

Je te joins le lien.
http://fs.ht/dd003984-1333-11e7-b8d9-06b226fed341

Mon objectif étant:
De partir du formulaire F1 acteur le remplir et utiliser le bouton pour créer un nouveau processus productif pour cette acteur.
Lorsque je clique sur le bouton je voudrais que immédiatement le Id_Acteur créé lors de l'enregistrement s'affiche dans l'Id_Acteur du processus productif.
De même une fois créé le processus productif je voudrais qu'en cliquant sur le bouton créer une activité à réaliser le Id_processus productif récemment enregistrer s'affiche dans l'Id_processus productif du formulaire suivant pour tout les enregistrement que je vais réaliser.

Une fois réussi cette étape je voudrais créer une requête pour permettre d'afficher toutes les informations de l'enregistrement récemment créé de processus productif avec une table où apparaisse toutes les activités à réaliser qu'il implique, contenant le calcul du coût total des produits intermédiaires qu'il requiert.

Comment puis-je faire tout ca?

Bonjour,

j'y vois + clair !

Tiens la base, dis moi si cela convient.

Restera la dernière partie, que je n'ai pas trop comprise.

http://fs.ht/a79ce61d-13d6-11e7-b8d9-06b226fed341

Dis moi si ok pour le moment.
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018

Bonjour HDU,

Un grand merci pour le coup de main, c'est une solution plutôt pratique que tu m'as donnée. Et le fait de la mettre en liaison avec une case texte evite mon premier bug quand je mettais l'action en ouverture de formulaire. Elle permet de récupérer le Id_acteur du formulaire ouvert "acteur, si j'ai bien compris le module?

Quel serait le code pour récupérer le dernier Id_Acteur enregistré dans la table acteur plutôt que dans le formulaire? ou max Id_Acteur table? En gardant la même configuration de formulaire?

Bien cordialement
Juju
Utilisateur anonyme >
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018

Comme tu veux faire ne permettra plus de rajouter des enregistrements pour les acteurs précédents, cela ne posera pas de pb ???

Là comme j'ai fait, tu te positionnes sur l'acteur souhaité. Rien n'empêche d'ouvrir le form acteur sur le dernier... Mais cela me semble bizarre : tu ne pourras jamais créer de nouveau "processus" à un acteur si tu en as créé un ensuite. C'est voulu ?

A+
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018

Je pense créer un autre formulaire sur la base que tu m'as donné, spéciale pour modifier les infos et créer de nouveau attribut au acteur.

Mais pour l'instant j'ai besoin de créer ma base en remplissant acteur par acteur sans possibilité de me tromper.

C'est pour cela que je recherche ce code. Sais-tu comment faire?

Je te remercie grandement pour ton aide.
Bien cordialement
Juju

Ce que tu dis, c'est que tu ouvres le form acteur uniquement en mode "ajout", c'est cela ? Donc si tu ne cliques pas sur le bouton "nouveau processus", la fiche est "perdue" ???

C'est cela ??

Il suffit alors de mettre le form acteur en mode ajout...


Tiens,

cela convient-il ?
http://fs.ht/2f217916-13e6-11e7-b8d9-06b226fed341

A+

En relisant,

je pense avoir répondu à ton pb.

Mais si *vraiment* tu veux aller chercher le dernier acteur (ta méthode),

voici la base.
http://fs.ht/7e7a43df-13e9-11e7-b8d9-06b226fed341

Regardes le code, tu as les 2 solutions.

A+

J'veux pas gâcher ta fête
Tu vas trouver ça bête
Mais j'étais sur le net
J'ai vu ta mère sur Chatroulette

J'ai appuyé sur next -->
J'ai flashé sur sa tête,
J'ai vu ta mère sur Chatroulette 
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018

Bonjour HDU,

Je te remercie grandement pour ton aide, tu as effectivement résolu mon problème et je vais enfin pouvoir créer ma base de données!!

Un grand merci à toi! Plein de bonnes ondes!!
Juju
Utilisateur anonyme >
Messages postés
25
Date d'inscription
mardi 14 mars 2017
Statut
Membre
Dernière intervention
21 août 2018

J'ai marqué résolu.

Si tu as besoin, n'hésites pas.

Bon dév !

A+