-----Message d'origine-----
Bonjour,
Un petit casse-tete sous Access 2000 :
Soit 1 formulaire principal "F-Detail-Echantillon" (base
sur la table
T-Echantillon -> cote 1 de la relation) et un sous-
formulaire (base sur la
table T-Suivi -> cote plusieurs de la relation).
Lors de l'ouverture du formulaire principal "F-Detail-
Echantillon" pas de
probleme pour la mise a jour des enregistrements aussi
bien dans le
formulaire que dans le sous-formulaire : Normal.
MAIS :
Lorsque le formulaire "F-Detail-Echantillon" est ouvert a
l'aide d'un bouton
de commande (avec stlinkcriteria = clé primaire) depuis
un autre formulaire
"F-Etat-Actuel" qui lui est base sur le résultat d'une
requete regroupement
(qui contient, entre autre, les tables "T-Echantillon"
et "T-Suivi") alors
"impossible de mettre a jour le recordset".
Le blocage n'est pas systematique (presque) mais des
qu'il apparait il est
impossible ensuite de mettre a jour le recordset. Seule
la fermeture et
reouverture de la base permet un (rarement plusieurs)
mises a jour du
recordset.
Access semble bloquer le recordset avec la requete
regroupement et ne le
libere pas dans le nouveau formulaire ouvert.
J'ai essaye de mettre le type de recordset en instantane
(pour le(s)
formulaire appelant(s)) mais ca ne fonctionne pas mieux.
J'ai aussi essaye de fermer le formulaire appelant en
ouvrant le formulaire
appele mais aucun resultat.
Le moteur MS Jet est a la derniere version a jour.
Le probleme est identique sous Access 2000, XP et 2003
(sans convertir la
base car l'application doit rester sous Access 2000).
Voila, si le probleme n'est pas clair je suis a
disposition.
Un grand MERCI au(x) contributeur(s) doue(s).
Guy
.
-----Message d'origine-----
Bonjour,
Un petit casse-tete sous Access 2000 :
Soit 1 formulaire principal "F-Detail-Echantillon" (base
sur la table
T-Echantillon -> cote 1 de la relation) et un sous-
formulaire (base sur la
table T-Suivi -> cote plusieurs de la relation).
Lors de l'ouverture du formulaire principal "F-Detail-
Echantillon" pas de
probleme pour la mise a jour des enregistrements aussi
bien dans le
formulaire que dans le sous-formulaire : Normal.
MAIS :
Lorsque le formulaire "F-Detail-Echantillon" est ouvert a
l'aide d'un bouton
de commande (avec stlinkcriteria = clé primaire) depuis
un autre formulaire
"F-Etat-Actuel" qui lui est base sur le résultat d'une
requete regroupement
(qui contient, entre autre, les tables "T-Echantillon"
et "T-Suivi") alors
"impossible de mettre a jour le recordset".
Le blocage n'est pas systematique (presque) mais des
qu'il apparait il est
impossible ensuite de mettre a jour le recordset. Seule
la fermeture et
reouverture de la base permet un (rarement plusieurs)
mises a jour du
recordset.
Access semble bloquer le recordset avec la requete
regroupement et ne le
libere pas dans le nouveau formulaire ouvert.
J'ai essaye de mettre le type de recordset en instantane
(pour le(s)
formulaire appelant(s)) mais ca ne fonctionne pas mieux.
J'ai aussi essaye de fermer le formulaire appelant en
ouvrant le formulaire
appele mais aucun resultat.
Le moteur MS Jet est a la derniere version a jour.
Le probleme est identique sous Access 2000, XP et 2003
(sans convertir la
base car l'application doit rester sous Access 2000).
Voila, si le probleme n'est pas clair je suis a
disposition.
Un grand MERCI au(x) contributeur(s) doue(s).
Guy
.
-----Message d'origine-----
Bonjour,
Un petit casse-tete sous Access 2000 :
Soit 1 formulaire principal "F-Detail-Echantillon" (base
sur la table
T-Echantillon -> cote 1 de la relation) et un sous-
formulaire (base sur la
table T-Suivi -> cote plusieurs de la relation).
Lors de l'ouverture du formulaire principal "F-Detail-
Echantillon" pas de
probleme pour la mise a jour des enregistrements aussi
bien dans le
formulaire que dans le sous-formulaire : Normal.
MAIS :
Lorsque le formulaire "F-Detail-Echantillon" est ouvert a
l'aide d'un bouton
de commande (avec stlinkcriteria = clé primaire) depuis
un autre formulaire
"F-Etat-Actuel" qui lui est base sur le résultat d'une
requete regroupement
(qui contient, entre autre, les tables "T-Echantillon"
et "T-Suivi") alors
"impossible de mettre a jour le recordset".
Le blocage n'est pas systematique (presque) mais des
qu'il apparait il est
impossible ensuite de mettre a jour le recordset. Seule
la fermeture et
reouverture de la base permet un (rarement plusieurs)
mises a jour du
recordset.
Access semble bloquer le recordset avec la requete
regroupement et ne le
libere pas dans le nouveau formulaire ouvert.
J'ai essaye de mettre le type de recordset en instantane
(pour le(s)
formulaire appelant(s)) mais ca ne fonctionne pas mieux.
J'ai aussi essaye de fermer le formulaire appelant en
ouvrant le formulaire
appele mais aucun resultat.
Le moteur MS Jet est a la derniere version a jour.
Le probleme est identique sous Access 2000, XP et 2003
(sans convertir la
base car l'application doit rester sous Access 2000).
Voila, si le probleme n'est pas clair je suis a
disposition.
Un grand MERCI au(x) contributeur(s) doue(s).
Guy
.
-----Message d'origine-----
Bonjour,
Un petit casse-tete sous Access 2000 :
Soit 1 formulaire principal "F-Detail-Echantillon" (base
sur la table
T-Echantillon -> cote 1 de la relation) et un sous-
formulaire (base sur la
table T-Suivi -> cote plusieurs de la relation).
Lors de l'ouverture du formulaire principal "F-Detail-
Echantillon" pas de
probleme pour la mise a jour des enregistrements aussi
bien dans le
formulaire que dans le sous-formulaire : Normal.
MAIS :
Lorsque le formulaire "F-Detail-Echantillon" est ouvert a
l'aide d'un bouton
de commande (avec stlinkcriteria = clé primaire) depuis
un autre formulaire
"F-Etat-Actuel" qui lui est base sur le résultat d'une
requete regroupement
(qui contient, entre autre, les tables "T-Echantillon"
et "T-Suivi") alors
"impossible de mettre a jour le recordset".
Le blocage n'est pas systematique (presque) mais des
qu'il apparait il est
impossible ensuite de mettre a jour le recordset. Seule
la fermeture et
reouverture de la base permet un (rarement plusieurs)
mises a jour du
recordset.
Access semble bloquer le recordset avec la requete
regroupement et ne le
libere pas dans le nouveau formulaire ouvert.
J'ai essaye de mettre le type de recordset en instantane
(pour le(s)
formulaire appelant(s)) mais ca ne fonctionne pas mieux.
J'ai aussi essaye de fermer le formulaire appelant en
ouvrant le formulaire
appele mais aucun resultat.
Le moteur MS Jet est a la derniere version a jour.
Le probleme est identique sous Access 2000, XP et 2003
(sans convertir la
base car l'application doit rester sous Access 2000).
Voila, si le probleme n'est pas clair je suis a
disposition.
Un grand MERCI au(x) contributeur(s) doue(s).
Guy
.
-----Message d'origine-----
Bonjour,
Un petit casse-tete sous Access 2000 :
Soit 1 formulaire principal "F-Detail-Echantillon" (base
sur la table
T-Echantillon -> cote 1 de la relation) et un sous-
formulaire (base sur la
table T-Suivi -> cote plusieurs de la relation).
Lors de l'ouverture du formulaire principal "F-Detail-
Echantillon" pas de
probleme pour la mise a jour des enregistrements aussi
bien dans le
formulaire que dans le sous-formulaire : Normal.
MAIS :
Lorsque le formulaire "F-Detail-Echantillon" est ouvert a
l'aide d'un bouton
de commande (avec stlinkcriteria = clé primaire) depuis
un autre formulaire
"F-Etat-Actuel" qui lui est base sur le résultat d'une
requete regroupement
(qui contient, entre autre, les tables "T-Echantillon"
et "T-Suivi") alors
"impossible de mettre a jour le recordset".
Le blocage n'est pas systematique (presque) mais des
qu'il apparait il est
impossible ensuite de mettre a jour le recordset. Seule
la fermeture et
reouverture de la base permet un (rarement plusieurs)
mises a jour du
recordset.
Access semble bloquer le recordset avec la requete
regroupement et ne le
libere pas dans le nouveau formulaire ouvert.
J'ai essaye de mettre le type de recordset en instantane
(pour le(s)
formulaire appelant(s)) mais ca ne fonctionne pas mieux.
J'ai aussi essaye de fermer le formulaire appelant en
ouvrant le formulaire
appele mais aucun resultat.
Le moteur MS Jet est a la derniere version a jour.
Le probleme est identique sous Access 2000, XP et 2003
(sans convertir la
base car l'application doit rester sous Access 2000).
Voila, si le probleme n'est pas clair je suis a
disposition.
Un grand MERCI au(x) contributeur(s) doue(s).
Guy
.
-----Message d'origine-----
Bonjour,
Un petit casse-tete sous Access 2000 :
Soit 1 formulaire principal "F-Detail-Echantillon" (base
sur la table
T-Echantillon -> cote 1 de la relation) et un sous-
formulaire (base sur la
table T-Suivi -> cote plusieurs de la relation).
Lors de l'ouverture du formulaire principal "F-Detail-
Echantillon" pas de
probleme pour la mise a jour des enregistrements aussi
bien dans le
formulaire que dans le sous-formulaire : Normal.
MAIS :
Lorsque le formulaire "F-Detail-Echantillon" est ouvert a
l'aide d'un bouton
de commande (avec stlinkcriteria = clé primaire) depuis
un autre formulaire
"F-Etat-Actuel" qui lui est base sur le résultat d'une
requete regroupement
(qui contient, entre autre, les tables "T-Echantillon"
et "T-Suivi") alors
"impossible de mettre a jour le recordset".
Le blocage n'est pas systematique (presque) mais des
qu'il apparait il est
impossible ensuite de mettre a jour le recordset. Seule
la fermeture et
reouverture de la base permet un (rarement plusieurs)
mises a jour du
recordset.
Access semble bloquer le recordset avec la requete
regroupement et ne le
libere pas dans le nouveau formulaire ouvert.
J'ai essaye de mettre le type de recordset en instantane
(pour le(s)
formulaire appelant(s)) mais ca ne fonctionne pas mieux.
J'ai aussi essaye de fermer le formulaire appelant en
ouvrant le formulaire
appele mais aucun resultat.
Le moteur MS Jet est a la derniere version a jour.
Le probleme est identique sous Access 2000, XP et 2003
(sans convertir la
base car l'application doit rester sous Access 2000).
Voila, si le probleme n'est pas clair je suis a
disposition.
Un grand MERCI au(x) contributeur(s) doue(s).
Guy
.
-----Message d'origine-----
Bonjour Michel,
Merci pour la suggestion mais voici un complément
d'information car je me
suis peut-être mal expliqué.
La seule manière d'accéder à nouveau à un
recordset "déverrouillé" est de
compacter la base de données.
Résumé des tests :
1 Ouverture de la base et compactage
2 Ouverture du formulaire principal "F-Detail-
Echantillon" qui comprend un
sous formulaire "F-Etat-Actuel" (basé lui sur une requête
regroupement donc
recordset verrouillé)
3 Ouverture (depuis le sous formulaire "F-Etat-Actuel"
avec un bouton sur la
ligne de l'enregistrement voulu) du formulaire "F-Detail-
Echantillon"
4 Modification possible des données dans le formulaire
"F-Detail-Echantillon"
5 Fermeture du formulaire "F-Detail-Echantillon" et
retour au formulaire
principal
6 Nouvelle ouverture (point 3) depuis un autre
enregistrement du sous
formulaire : modification possible
7 Fermeture du formulaire "F-Detail-Echantillon" et du
formulaire principal
"F-Detail-Echantillon"
8 Point 2 puis point 3 et là : RECORDSET VERROUILLE
Même en fermant Access et en revenant dans la base le
recordset est toujours
verrouillé. Seul le compactage de la base permet de
rétablir les choses.
Le formulaire principal n'est basé sur aucune table ni
requête; il contient,
outre le sous formulaire "F-Etat-Actuel", deux sous
formulaires qui
affichent chacun le résultat de requêtes DCOUNT. Les 3
sous formulaires
n'ont donc aucun lien ni entre eux (sauf qu'ils utilisent
les mêmes tables)
ni avec le formulaire principal.
Si ça peut aider et que vous avez d'autres suggestions...
Cordialement
Guy
-----Message d'origine-----
Bonjour Michel,
Merci pour la suggestion mais voici un complément
d'information car je me
suis peut-être mal expliqué.
La seule manière d'accéder à nouveau à un
recordset "déverrouillé" est de
compacter la base de données.
Résumé des tests :
1 Ouverture de la base et compactage
2 Ouverture du formulaire principal "F-Detail-
Echantillon" qui comprend un
sous formulaire "F-Etat-Actuel" (basé lui sur une requête
regroupement donc
recordset verrouillé)
3 Ouverture (depuis le sous formulaire "F-Etat-Actuel"
avec un bouton sur la
ligne de l'enregistrement voulu) du formulaire "F-Detail-
Echantillon"
4 Modification possible des données dans le formulaire
"F-Detail-Echantillon"
5 Fermeture du formulaire "F-Detail-Echantillon" et
retour au formulaire
principal
6 Nouvelle ouverture (point 3) depuis un autre
enregistrement du sous
formulaire : modification possible
7 Fermeture du formulaire "F-Detail-Echantillon" et du
formulaire principal
"F-Detail-Echantillon"
8 Point 2 puis point 3 et là : RECORDSET VERROUILLE
Même en fermant Access et en revenant dans la base le
recordset est toujours
verrouillé. Seul le compactage de la base permet de
rétablir les choses.
Le formulaire principal n'est basé sur aucune table ni
requête; il contient,
outre le sous formulaire "F-Etat-Actuel", deux sous
formulaires qui
affichent chacun le résultat de requêtes DCOUNT. Les 3
sous formulaires
n'ont donc aucun lien ni entre eux (sauf qu'ils utilisent
les mêmes tables)
ni avec le formulaire principal.
Si ça peut aider et que vous avez d'autres suggestions...
Cordialement
Guy
-----Message d'origine-----
Bonjour Michel,
Merci pour la suggestion mais voici un complément
d'information car je me
suis peut-être mal expliqué.
La seule manière d'accéder à nouveau à un
recordset "déverrouillé" est de
compacter la base de données.
Résumé des tests :
1 Ouverture de la base et compactage
2 Ouverture du formulaire principal "F-Detail-
Echantillon" qui comprend un
sous formulaire "F-Etat-Actuel" (basé lui sur une requête
regroupement donc
recordset verrouillé)
3 Ouverture (depuis le sous formulaire "F-Etat-Actuel"
avec un bouton sur la
ligne de l'enregistrement voulu) du formulaire "F-Detail-
Echantillon"
4 Modification possible des données dans le formulaire
"F-Detail-Echantillon"
5 Fermeture du formulaire "F-Detail-Echantillon" et
retour au formulaire
principal
6 Nouvelle ouverture (point 3) depuis un autre
enregistrement du sous
formulaire : modification possible
7 Fermeture du formulaire "F-Detail-Echantillon" et du
formulaire principal
"F-Detail-Echantillon"
8 Point 2 puis point 3 et là : RECORDSET VERROUILLE
Même en fermant Access et en revenant dans la base le
recordset est toujours
verrouillé. Seul le compactage de la base permet de
rétablir les choses.
Le formulaire principal n'est basé sur aucune table ni
requête; il contient,
outre le sous formulaire "F-Etat-Actuel", deux sous
formulaires qui
affichent chacun le résultat de requêtes DCOUNT. Les 3
sous formulaires
n'ont donc aucun lien ni entre eux (sauf qu'ils utilisent
les mêmes tables)
ni avec le formulaire principal.
Si ça peut aider et que vous avez d'autres suggestions...
Cordialement
Guy
-----Message d'origine-----
Bonjour ou Bonsoir Michel,
Hier c'est moi qui étais fatigué après un dépannage de
nuit.
Un schéma vaut mieux qu'un long discours
(incompréhensible).
Les tables :
|-------------| |-------| |------------------|
|T-Echantillon|1--N|T-Suivi|---|T-Etat Echantillon|
|-------------| |-------| |------------------|
Les formulaires :
|-----------------------------------|
|F-Principal |----------------| |
| |F-Traité 7 jours| |
| |----------------| |
| |
| |-----------| |
| |F-En retard| |
| |-----------| |
| |
||---------------------------------||
||F-EtatActuel ||
|| ||
||Ligne 1 --- --- --- --- [Bouton] ||
||Ligne 2 --- --- --- --- [Bouton] ||
||Ligne n --- --- --- --- [Bouton] ||
||--- ||
||---------------------------------||
|-----------------------------------|
Le [Bouton] sur formulaire précédent ouvre le formulaire
suivant :
|---------------------|
|F-Détail-Echantillon |
| |
| ------------ |
| -------- |
| ----------- |
| |
||-------------------||
||F-Suivi SF ||
||---- ---- --- --- -||
||---- ---- --- --- -||
||-------------------||
|---------------------|
Source des formulaires :
F-Principal : aucune
---
F-EtatActuel :
SELECT [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon,
Last([T-EtatEchantillon].EtatEchantillon) AS
DernierDeEtatEchantillon
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
WHERE ((([T-EtatEchantillon].Ordre)<>10))
GROUP BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon
HAVING ((([T-Echantillon].Délai)<(Date()+7)))
ORDER BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon;
---
F-Traité 7 jours :
T-Echantillon Requête (1) :
SELECT [T-Suivi].NumAutoEchantillon, Last([T-
EtatEchantillon].Ordre) AS
DernierDeOrdre, [T-Echantillon].Délai
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
GROUP BY [T-Suivi].NumAutoEchantillon, [T-
Echantillon].Délai
HAVING (((Last([T-EtatEchantillon].Ordre))<>10) AND
(([T-Echantillon].Délai)<(Date()+7)))
ORDER BY [T-Echantillon].Délai;
Source formulaire (2) :
SELECT Count([T-Echantillon Requête].NumAutoEchantillon)
AS
CompteDeNumAutoEchantillon
FROM [T-Echantillon Requête];
---
F-En retard :
Rq-Recherche_Retard_Echantillon (1) :
SELECT [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon,
Last([T-EtatEchantillon].EtatEchantillon) AS
DernierDeEtatEchantillon
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
WHERE ((([T-EtatEchantillon].Ordre)<>10))
GROUP BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon
HAVING ((([T-Echantillon].Délai)<Date()))
ORDER BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon;
Source formulaire (2) :
SELECT Count([Rq-
Recherche_Retard_Echantillon].NumAutoEchantillon) AS
CompteDeNumAutoEchantillon1
FROM [Rq-Recherche_Retard_Echantillon];
---
F-Détail-Echantillon :
Table T-Echantillom
---
F-Suivi :
Table T-Suivi
Champ père : NumAutoEchantillon (clé prim. T-Echantillon)
Champ fils : NumAutoEchantillon
---
Voilà pour le détail.
Résumé des tests :
1 Ouverture de la base et compactage
2 Ouverture du formulaire principal "F-Detail-
Echantillon" qui comprend un
sous formulaire "F-Etat-Actuel" (basé lui sur une requête
regroupement donc
recordset verrouillé)
3 Ouverture (depuis le sous formulaire "F-Etat-Actuel"
avec un [bouton] du
formulaire "F-Detail-Echantillon"
4 Modification possible des données dans le formulaire
"F-Detail-Echantillon"
5 Fermeture du formulaire "F-Detail-Echantillon" et
retour au formulaire
principal
6 Nouvelle ouverture (point 3) depuis un autre
enregistrement du sous
formulaire : modification possible
7 Fermeture du formulaire "F-Detail-Echantillon" et du
formulaire principal
"F-Detail-Echantillon"
8 Point 2 puis point 3 et là : RECORDSET VERROUILLE
Même en fermant Access et en revenant dans la base le
recordset est toujours
verrouillé. Seul le compactage de la base permet de
rétablir les choses.
Voilà le résumé de la situation.
Cordialement
Guy
.
-----Message d'origine-----
Bonjour ou Bonsoir Michel,
Hier c'est moi qui étais fatigué après un dépannage de
nuit.
Un schéma vaut mieux qu'un long discours
(incompréhensible).
Les tables :
|-------------| |-------| |------------------|
|T-Echantillon|1--N|T-Suivi|---|T-Etat Echantillon|
|-------------| |-------| |------------------|
Les formulaires :
|-----------------------------------|
|F-Principal |----------------| |
| |F-Traité 7 jours| |
| |----------------| |
| |
| |-----------| |
| |F-En retard| |
| |-----------| |
| |
||---------------------------------||
||F-EtatActuel ||
|| ||
||Ligne 1 --- --- --- --- [Bouton] ||
||Ligne 2 --- --- --- --- [Bouton] ||
||Ligne n --- --- --- --- [Bouton] ||
||--- ||
||---------------------------------||
|-----------------------------------|
Le [Bouton] sur formulaire précédent ouvre le formulaire
suivant :
|---------------------|
|F-Détail-Echantillon |
| |
| ------------ |
| -------- |
| ----------- |
| |
||-------------------||
||F-Suivi SF ||
||---- ---- --- --- -||
||---- ---- --- --- -||
||-------------------||
|---------------------|
Source des formulaires :
F-Principal : aucune
---
F-EtatActuel :
SELECT [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon,
Last([T-EtatEchantillon].EtatEchantillon) AS
DernierDeEtatEchantillon
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
WHERE ((([T-EtatEchantillon].Ordre)<>10))
GROUP BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon
HAVING ((([T-Echantillon].Délai)<(Date()+7)))
ORDER BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon;
---
F-Traité 7 jours :
T-Echantillon Requête (1) :
SELECT [T-Suivi].NumAutoEchantillon, Last([T-
EtatEchantillon].Ordre) AS
DernierDeOrdre, [T-Echantillon].Délai
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
GROUP BY [T-Suivi].NumAutoEchantillon, [T-
Echantillon].Délai
HAVING (((Last([T-EtatEchantillon].Ordre))<>10) AND
(([T-Echantillon].Délai)<(Date()+7)))
ORDER BY [T-Echantillon].Délai;
Source formulaire (2) :
SELECT Count([T-Echantillon Requête].NumAutoEchantillon)
AS
CompteDeNumAutoEchantillon
FROM [T-Echantillon Requête];
---
F-En retard :
Rq-Recherche_Retard_Echantillon (1) :
SELECT [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon,
Last([T-EtatEchantillon].EtatEchantillon) AS
DernierDeEtatEchantillon
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
WHERE ((([T-EtatEchantillon].Ordre)<>10))
GROUP BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon
HAVING ((([T-Echantillon].Délai)<Date()))
ORDER BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon;
Source formulaire (2) :
SELECT Count([Rq-
Recherche_Retard_Echantillon].NumAutoEchantillon) AS
CompteDeNumAutoEchantillon1
FROM [Rq-Recherche_Retard_Echantillon];
---
F-Détail-Echantillon :
Table T-Echantillom
---
F-Suivi :
Table T-Suivi
Champ père : NumAutoEchantillon (clé prim. T-Echantillon)
Champ fils : NumAutoEchantillon
---
Voilà pour le détail.
Résumé des tests :
1 Ouverture de la base et compactage
2 Ouverture du formulaire principal "F-Detail-
Echantillon" qui comprend un
sous formulaire "F-Etat-Actuel" (basé lui sur une requête
regroupement donc
recordset verrouillé)
3 Ouverture (depuis le sous formulaire "F-Etat-Actuel"
avec un [bouton] du
formulaire "F-Detail-Echantillon"
4 Modification possible des données dans le formulaire
"F-Detail-Echantillon"
5 Fermeture du formulaire "F-Detail-Echantillon" et
retour au formulaire
principal
6 Nouvelle ouverture (point 3) depuis un autre
enregistrement du sous
formulaire : modification possible
7 Fermeture du formulaire "F-Detail-Echantillon" et du
formulaire principal
"F-Detail-Echantillon"
8 Point 2 puis point 3 et là : RECORDSET VERROUILLE
Même en fermant Access et en revenant dans la base le
recordset est toujours
verrouillé. Seul le compactage de la base permet de
rétablir les choses.
Voilà le résumé de la situation.
Cordialement
Guy
.
-----Message d'origine-----
Bonjour ou Bonsoir Michel,
Hier c'est moi qui étais fatigué après un dépannage de
nuit.
Un schéma vaut mieux qu'un long discours
(incompréhensible).
Les tables :
|-------------| |-------| |------------------|
|T-Echantillon|1--N|T-Suivi|---|T-Etat Echantillon|
|-------------| |-------| |------------------|
Les formulaires :
|-----------------------------------|
|F-Principal |----------------| |
| |F-Traité 7 jours| |
| |----------------| |
| |
| |-----------| |
| |F-En retard| |
| |-----------| |
| |
||---------------------------------||
||F-EtatActuel ||
|| ||
||Ligne 1 --- --- --- --- [Bouton] ||
||Ligne 2 --- --- --- --- [Bouton] ||
||Ligne n --- --- --- --- [Bouton] ||
||--- ||
||---------------------------------||
|-----------------------------------|
Le [Bouton] sur formulaire précédent ouvre le formulaire
suivant :
|---------------------|
|F-Détail-Echantillon |
| |
| ------------ |
| -------- |
| ----------- |
| |
||-------------------||
||F-Suivi SF ||
||---- ---- --- --- -||
||---- ---- --- --- -||
||-------------------||
|---------------------|
Source des formulaires :
F-Principal : aucune
---
F-EtatActuel :
SELECT [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon,
Last([T-EtatEchantillon].EtatEchantillon) AS
DernierDeEtatEchantillon
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
WHERE ((([T-EtatEchantillon].Ordre)<>10))
GROUP BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon
HAVING ((([T-Echantillon].Délai)<(Date()+7)))
ORDER BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon;
---
F-Traité 7 jours :
T-Echantillon Requête (1) :
SELECT [T-Suivi].NumAutoEchantillon, Last([T-
EtatEchantillon].Ordre) AS
DernierDeOrdre, [T-Echantillon].Délai
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
GROUP BY [T-Suivi].NumAutoEchantillon, [T-
Echantillon].Délai
HAVING (((Last([T-EtatEchantillon].Ordre))<>10) AND
(([T-Echantillon].Délai)<(Date()+7)))
ORDER BY [T-Echantillon].Délai;
Source formulaire (2) :
SELECT Count([T-Echantillon Requête].NumAutoEchantillon)
AS
CompteDeNumAutoEchantillon
FROM [T-Echantillon Requête];
---
F-En retard :
Rq-Recherche_Retard_Echantillon (1) :
SELECT [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon,
Last([T-EtatEchantillon].EtatEchantillon) AS
DernierDeEtatEchantillon
FROM [T-Echantillon] INNER JOIN ([T-EtatEchantillon]
INNER JOIN [T-Suivi] ON
[T-EtatEchantillon].NumAutoEtat = [T-Suivi].[Etat de
l'échantillon]) ON
[T-Echantillon].NumAutoEchantillon = [T-
Suivi].NumAutoEchantillon
WHERE ((([T-EtatEchantillon].Ordre)<>10))
GROUP BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon, [T-Echantillon].Libellé,
[T-Echantillon].NumAutoEchantillon
HAVING ((([T-Echantillon].Délai)<Date()))
ORDER BY [T-Echantillon].Délai, [T-
Echantillon].NumEnregistrement,
[T-Echantillon].NumEchantillon;
Source formulaire (2) :
SELECT Count([Rq-
Recherche_Retard_Echantillon].NumAutoEchantillon) AS
CompteDeNumAutoEchantillon1
FROM [Rq-Recherche_Retard_Echantillon];
---
F-Détail-Echantillon :
Table T-Echantillom
---
F-Suivi :
Table T-Suivi
Champ père : NumAutoEchantillon (clé prim. T-Echantillon)
Champ fils : NumAutoEchantillon
---
Voilà pour le détail.
Résumé des tests :
1 Ouverture de la base et compactage
2 Ouverture du formulaire principal "F-Detail-
Echantillon" qui comprend un
sous formulaire "F-Etat-Actuel" (basé lui sur une requête
regroupement donc
recordset verrouillé)
3 Ouverture (depuis le sous formulaire "F-Etat-Actuel"
avec un [bouton] du
formulaire "F-Detail-Echantillon"
4 Modification possible des données dans le formulaire
"F-Detail-Echantillon"
5 Fermeture du formulaire "F-Detail-Echantillon" et
retour au formulaire
principal
6 Nouvelle ouverture (point 3) depuis un autre
enregistrement du sous
formulaire : modification possible
7 Fermeture du formulaire "F-Detail-Echantillon" et du
formulaire principal
"F-Detail-Echantillon"
8 Point 2 puis point 3 et là : RECORDSET VERROUILLE
Même en fermant Access et en revenant dans la base le
recordset est toujours
verrouillé. Seul le compactage de la base permet de
rétablir les choses.
Voilà le résumé de la situation.
Cordialement
Guy
.