Problème d'utilisation de la procédure Form_Load en VBA / Access [Résolu/Fermé]

Signaler
Messages postés
1175
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
20 novembre 2019
-
Messages postés
15155
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
8 avril 2020
-
Bonjour, je travail depuis sur une base de donnée en access. Pour cela j'ai voulu utilisé la procédure Form_Load dans VBA, pour un affichage automatique de certaines données mémorisées. Je crois avoir respecté la syntaxe, mais celui ci ne marche pas, il affiche une erreur lorsque je l'exécute: "erreur de compilation projet ou bibliothèque introuvable" ; je ne comprends pas pourquoi. Voici le code :
Private Sub Form_Load()
'Affiche automatique la catégorie grâce à l'identifiant mémorisé
    If X_CategId <> "" Then
       Z_CategId.SetFocus
       DoCmd.FindRecord X_CategId
    End If
End Sub


En faite, je voudrai que lorsqu'on utilise le formulaire F_Categorie_Maj, qu'on stocke avant de fermer le formulaire l'identifiant de la dernière catégorie visualisée. Puis lorsqu'on rouvrira ce formulaire, on pourra recupérer le contenu de cette variable et afficher automatiquement la catégorie correspondante. L'utilisateur aura donc l'impression d'être revenu au point où il était.
Pour cela, j'ai créé une variable globale X_CategId pour stocker l'identifiant de la table catégorie que je voudrai après utiliser avec la procédure Form_load. Mais ça ne marche pas alors que la syntaxe semble correcte

3 réponses

Bonjour,
Je n'ai pas bien compris ton enchaînement, mais si j'ai compris qqch alors tu peux toujours appeler un autre formulaire B, alors ton formulaire A sera automatiquement masqué, sauf s'il s'agit d'une fenêtre modale ou indépendante, mais que tu peux masquer par la commande DoCmd.Minimize() et ensuite DoCmd.Restaure().
Tu as aussi la possibilité d'ouvrir ton formulaire en mode masqué puis de le faire apparaitre avec DoCmd.Select()
Bonne suite
Messages postés
1175
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
20 novembre 2019
20
Merci, mais Non ce n'est pas cela mon problème désolé! voici le lien du fichier access, tu peux l'uploader : https://www.zeta-uploader.com/2063179950 et puis exécuter le formulaire F_Categorie_Maj et si possible me dire pourquoi ça marque "erreur de compilation", car je comprends pas.
Cordialement
kabrice01
Messages postés
15155
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
8 avril 2020
1 251
Bonjour a vous deux,

"erreur de compilation", car je comprends pas. Y a pas de control dans le formulaire avec ce nom

fichier modifie pour sauvegarde valeur du champ CategID et petite modif pour le docmd.findrecord : https://www.cjoint.com/c/EDDsUiggg75
Re-...,
"si possible me dire pourquoi ça marque "erreur de compilation""
Pour la simple raison que tu lui dis d'aller sur "Z_CategId.SetFocus" sans lui indiquer ce que c'est.
Il faut écrire : "Me.Z_CategId.SetFocus", le préfixe "Me." indique qu'il faut prendre le formulaire courant.
Mais ATTENTION: Me ne peut être utiliser qu'avec les modules de classe, les procédures intégrées dans les formulaires ou les états. Sinon il faut utiliser le nom complet. Et idem pour tes autres procédures.
Et aussi, il faut faire attention au fait que les paramètres à l'intérieur aux procédures sont effacer à la fin de chaque procédure sauf si ce sont des paramètres publics
Messages postés
15155
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
8 avril 2020
1 251
Bonjour Tessel75,
lisez ce que j'ai mis ici:
f894009 29 avril 2015 à 18:31
Salut F89....
Je n'avais pas vu et pas pu voir ton poste parce que j'étais en train de chercher le problème et la réponse quasiment en même temps que toi, d'autant que je répondais à une autre demande en même temps.
Cela dit, si nous avons vu la même faute, tant mieux. Mais il me semble que la syntaxe est plutôt : DoCmd.FindRecord X_CategId, , , acSearchAll, , acCurrent
Bonne suite à tous les deux.
Messages postés
15155
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
8 avril 2020
1 251 > Tessel75
Bonjour,

DoCmd.FindRecord X_CategId, , , acSearchAll, , acCurrent 
Ces argument sont par defaut
voir:
https://docs.microsoft.com/fr-fr/office/vba/api/access.docmd.findrecord?redirectedfrom=MSDN
Messages postés
1175
Date d'inscription
dimanche 21 décembre 2008
Statut
Membre
Dernière intervention
20 novembre 2019
20
Désolé de répondre si tardivement. Mais maintenant c'est plus clair. Merci beacoup à vous