Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Access 2007 problème de focus ??

2 réponses
Avatar
Mike
Bonjour à tous,

J'ai un problème depuis la conversion de mon application en Access 2007,
j'utilise ce genre de code (voir plus bas) un peu partout dans mon
application afin d'ouvrir un formulaire sur double clic à partir d'un autre
(ex: formulaire de facturation, sur double clic d'un produit, j'ouvre la
fiche produit), ce code fonctionne parfaitement depuis la version 97, mais
voilà qu'avec 2007, après ouverture du formulaire il revient toujours sur le
focus du formulaire appelant, par conséquent l'usager se perd dans les
écrans superposés.

N.B. J'ai essayé d'autres méthodes au lieu du Bookmark, mais le problème est
toujours le même, la seule façon que j'ai trouvée pour palier c'est de
mettre une pause de 5 secs entre le .bookmark et le setfocus du formulaire
(j'ai essayé aussi le docmd.selectobject acform...), et même dans les bases
exemple de Microsoft (si ont enlève à l'ouverture du formulaire le modale)
le problème est simmilaire.

Merci de votre aide, car actuellement j'en perds mon latin :-(

Mike

Voici le code:

Private Sub CodeProd_DblClick(Cancel As Integer)
Dim Rep As String
Rep = Me!CodeProd
DoCmd.OpenForm "frmProduits"

With Forms!frmProduits.RecordsetClone
.FindFirst "[NO_PRODUIT] = '" & Rep & "'"
If .EOF Then
MsgBox "Code de produits introuvable !", vbInformation, "Recherche"
Else
Forms!frmProduits.Bookmark = .Bookmark
Forms!Produits.SetFocus
End If
End With
End Sub

2 réponses

Avatar
3stone
Salut,

"Mike"
| J'ai un problème depuis la conversion de mon application en Access 2007,
| j'utilise ce genre de code (voir plus bas) un peu partout dans mon
| application afin d'ouvrir un formulaire sur double clic à partir d'un autre
| (ex: formulaire de facturation, sur double clic d'un produit, j'ouvre la
| fiche produit), ce code fonctionne parfaitement depuis la version 97, mais
| voilà qu'avec 2007, après ouverture du formulaire il revient toujours sur le
| focus du formulaire appelant, par conséquent l'usager se perd dans les
| écrans superposés.
|
| N.B. J'ai essayé d'autres méthodes au lieu du Bookmark, mais le problème est
| toujours le même, la seule façon que j'ai trouvée pour palier c'est de
| mettre une pause de 5 secs entre le .bookmark et le setfocus du formulaire
| (j'ai essayé aussi le docmd.selectobject acform...), et même dans les bases
| exemple de Microsoft (si ont enlève à l'ouverture du formulaire le modale)
| le problème est simmilaire.
|
| Merci de votre aide, car actuellement j'en perds mon latin :-(
|
| Mike
|
| Voici le code:
|
| Private Sub CodeProd_DblClick(Cancel As Integer)
| Dim Rep As String
| Rep = Me!CodeProd
| DoCmd.OpenForm "frmProduits"
|
| With Forms!frmProduits.RecordsetClone
| .FindFirst "[NO_PRODUIT] = '" & Rep & "'"
| If .EOF Then
| MsgBox "Code de produits introuvable !", vbInformation, "Recherche"
| Else
| Forms!frmProduits.Bookmark = .Bookmark
| Forms!Produits.SetFocus
| End If
| End With
| End Sub


Je ne vois pas bien ce que le Focus du formulaire a de commun
avec le Bookmark ?

Tu devrais aussi utiliser .NoMatch à la place de .EOF qui est
mal utilisé ici...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Avatar
Mike
Bonjour,

Le .Eof revient au même que le .Nomatch dans une recherche avec le
Findfirst, mais bon le problème ne se situe pas à cet endroit, car ce code
fonctionne déjà depuis des lustres, le problème est qu'avec Access 2007 si
ont essais d'ouvrir un formulaire à partir d'un sous-formulaire, Access 2007
ouvre le formulaire en question, mais revient sur le premier formulaire
après s'être positionné sur l'enregistrement rechercher.

Merci de ton aide



"3stone" a écrit dans le message de
news:
Salut,

"Mike"
| J'ai un problème depuis la conversion de mon application en Access 2007,
| j'utilise ce genre de code (voir plus bas) un peu partout dans mon
| application afin d'ouvrir un formulaire sur double clic à partir d'un
autre
| (ex: formulaire de facturation, sur double clic d'un produit, j'ouvre la
| fiche produit), ce code fonctionne parfaitement depuis la version 97,
mais
| voilà qu'avec 2007, après ouverture du formulaire il revient toujours
sur le
| focus du formulaire appelant, par conséquent l'usager se perd dans les
| écrans superposés.
|
| N.B. J'ai essayé d'autres méthodes au lieu du Bookmark, mais le problème
est
| toujours le même, la seule façon que j'ai trouvée pour palier c'est de
| mettre une pause de 5 secs entre le .bookmark et le setfocus du
formulaire
| (j'ai essayé aussi le docmd.selectobject acform...), et même dans les
bases
| exemple de Microsoft (si ont enlève à l'ouverture du formulaire le
modale)
| le problème est simmilaire.
|
| Merci de votre aide, car actuellement j'en perds mon latin :-(
|
| Mike
|
| Voici le code:
|
| Private Sub CodeProd_DblClick(Cancel As Integer)
| Dim Rep As String
| Rep = Me!CodeProd
| DoCmd.OpenForm "frmProduits"
|
| With Forms!frmProduits.RecordsetClone
| .FindFirst "[NO_PRODUIT] = '" & Rep & "'"
| If .EOF Then
| MsgBox "Code de produits introuvable !", vbInformation, "Recherche"
| Else
| Forms!frmProduits.Bookmark = .Bookmark
| Forms!Produits.SetFocus
| End If
| End With
| End Sub


Je ne vois pas bien ce que le Focus du formulaire a de commun
avec le Bookmark ?

Tu devrais aussi utiliser .NoMatch à la place de .EOF qui est
mal utilisé ici...

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)