{Access} Macro qui ne fonctionne pas

Fermé
Clicou Messages postés 8 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 13 mars 2010 - 8 déc. 2009 à 09:37
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 - 11 déc. 2009 à 06:27
Bonjour,

Je cherche à créer un évènement sur clic qui me permette d'ouvrir un formulaire sur l'enregistrement dont le numéro correspond à celui sur lequel je clique, dans un autre formulaire. J'ai trouvé la méthode dans le guide de Microsoft application. Ça ressemble beaucoup à ce que je faisais avec Access 2003, sauf que ça ne marche pas. L'action échoue à tous les coups et j'ai le message suivant "vous avez essayé de verrouiller la table...pendant son ouverture mais elle ne peut pas être verrouillée car elle est en cours d'utilisation. Je ne vois pas à quoi ce message peut correspondre.
Si quelqu'un connait ce problème, et en plus si il a la solution...merci d'avance.
A voir également:

6 réponses

Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
8 déc. 2009 à 10:08
Bonjour Clicou,

La cération d'un bouton en mode assistance permet d'obtenir ce que vous recherchez.
- Passer le formulaire en mode création
- Appeler la boite à outils
- Activer le bouton de création approprié
- Choisir [Ouvrir un formulaire] dans la liste proposée
- Désigner le formulaire à ouvrir
- Cocher [Ouvrir pour trouver des informations spécifiques]

La suite est bien commentée en Pas à Pas...

Cordialement
0
Clicou Messages postés 8 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 13 mars 2010
9 déc. 2009 à 11:32
Bonjour Jean_Jacques et merci de votre réponse mais je pense que j'ai mal expliqué mon problème car je ne parviens pas à créer de bouton en mode formulaire et si je fais des essais dans un autre mode, j'ai quand même un message me disant que la table est déjà ouverte.

Voilà donc plus précisément mon problème :

J'ai une table de film et une table de réalisateur.

J'ai un formulaire qui me permet de choisir un réalisateur et qui comprend un sous-formulaire où apparaissent les films de ce réalisateur. Ce sous-formulaire est en mode feuille de données. Je voudrais, en double cliquant sur le code du film que la fiche détaillée du film s'ouvre.

J'ai déjà ce système pour les livres que j'ai lu. J'ai la liste en feuille de données et, quand je clique sur le code du livre, ça m'ouvre la fiche détaillée du livre.
J'avais écrit ceci :
Option Compare Database

Private Sub N°AUTO_DblClick(Cancel As Integer)
Dim DocName As String
Dim LinkCriteria As String
DocName = "VOIR UNE FICHE"
LinkCriteria = "[N°AUTO]=Forms![MA LISTE]![N°AUTO]"
DoCmd.OpenForm DocName, , , LinkCriteria

End Sub

Ca marche mais c'était une autre version d'access (97, je crois, que j'avais fait suivre en 2002 et qui tourne en ce moment en 2007)
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
9 déc. 2009 à 12:28
Bonjour Clicou,

Vous vous êtes bien expliqué. C'est moi qui ai mal lu.

Je n'ai pas testé, mais la bonne syntaxe est probablement la suivante :

Dim DocName As String
Dim LinkCriteria As String
DocName = "VOIR UNE FICHE"
Rem Création du lien entre le formulaire actif et le formulaire à ouvrir
LinkCriteriA = "[N°AUTO]=" & Me![N°AUTO]
Rem Ouverture du formulaire "VOIR UNE FICHE" en utilisant la relation créée à l'étape précédente
DoCmd.OpenForm DocName, , , LinkCriteria


Cordialement
0
Clicou Messages postés 8 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 13 mars 2010
9 déc. 2009 à 14:47
C'est bien sympathique de suivre mon problème mais je ne suis pas très à l'aise dans le vocabulaire de programmation!

Que signifie "Rem"?

D'autre part, voilà la syntaxe qui s'est créée quand j'ai tenté de créer mon évènement sur double cliic :
Dim stDocName As String
Dim stLinkCriteria As String

stDocName = "FVOIRUNEFICHE"

stLinkCriteria = "[CodeFilm]=" & Me![CodeFilm]
DoCmd.OpenForm stDocName, , , stLinkCriteria
Par rapport à ce que vous m'indiquez, je n'ai pas les 2 lignes qui commencent par Rem, et j'ai "st" devant LinkCriteria.

Question suivante : peut-on ouvrir un formulaire en mode feuille de données à l'aide d'un bouton?

merci beaucoup.
Cordialement
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
9 déc. 2009 à 16:35
Clicou,

Dans un programme [Rem] précède une information texte destinée au programmeur. C'est un aide mémoire
- REM est la forme abrégée de l'anglais [Remember].

"Linkcriteria" est une variable mémoire qui prend une valeur prévue par le programmeur.
Par exemple = "[CodeFilm]=" & Me![CodeFilm

Mais linkcriteria est une convention. Vous pouvez très bien écrire :
Choucroute = "[CodeFilm]=" & Me![CodeFilm

NB : La variable mémoire doit toujours la même orthographe. Que ce soit avec "st" devant ou pas.


Pour ouvrir un formulaire en mode Feuille de données. Pour davantage d'information, activer la touche F1 de
l'aide en ligne et saisir : Mode Feuille de données ; dans le champ aide intuitive de la boîte de dialogue.

Cordialement
La science ne fait que trouver ce qui existe depuis toujours.
REEVES Hubert.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Clicou Messages postés 8 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 13 mars 2010
10 déc. 2009 à 18:12
Bonjour, j'ai fait beaucoup de tentatives et vous me confirmez que ma syntaxe est correcte. Cependant, j'ai toujours ce message : "vous avez essayé de verrouiller la table...pendant son ouverture mais elle ne peut pas être verrouillée car elle est en cours d'utilisation." et ça ne fonctionne pas.
Je ne sais plus bien de quel côté chercher. Si vous avez des idées...
Merci.
0
Jean_Jacques Messages postés 1040 Date d'inscription mercredi 30 avril 2008 Statut Membre Dernière intervention 1 août 2014 112
11 déc. 2009 à 06:27
Bonjour Clicou,

Par acquis de conscience, un petit compactage ne saurait nuire..
- Menu Outils
- Utilitaire etc....
- Compacter Base de données

Ensuite :
Adaptez votre code et ouvrez un formulaire différent de celui qui bloque.
Si l'incident persiste, compressez votre Base ACCESS et déposez là sur ci-joint.com et créez une nouvelle
fiche sur CCM, sans omettre de fournir le lien de téléchargement du dossier compressé.

J'en suis resté à ACCESS 2000 et ne suis donc malheureusement pas en mesure de manipuler votre base
ACCESS 2007. Ce qui permettrait à d'autres intervenants de visualiser votre incident.

Cordialement
0