OVH Cloud OVH Cloud

Qualificateur incorrect

6 réponses
Avatar
Paul Florent
Bonjour à tous
Sous Access 2003,
J'ai des formulaires (formulaires appelants) à partir des quels je peux
ouvrir un formulaire "F_Dossier_Détail"
Lorsque F_Dossier_Détail s'ouvre, je ferme le formulaire appelant pour ne
pas avoir trop de bases ouvertes
et lorsque je ferme F_Dossier_Détail, je souhaite ouvrir le formulaire
appelant
avec le focus situé sur l'enregistrement précédemment sélectionné,
qui est aussi l'enregistrement filtré sur F_Dossier_Détail

Pour réaliser cette opération :
j'ai une variable publique :
Public MonFormulaire As String

Je ferme le formulaire appelant avec le code suivant
MonFormulaire = Me.Name
DoCmd.Close
DoCmd.OpenForm "F_Dossier_Détail", , , "CléP_Dossier =" Me!CléP_Dossier

A la fermeture de F_Dossier_Détail
j'essai de retrouver mon formulaire appelant avec le code suivant :
Private Sub Fermer_Click()
Dim CléPDossier As Variant
CléPDossier = Me!CléP_Dossier
DoCmd.Close
If IsNull(MonFormulaire) Then Exit Sub
DoCmd.OpenForm MonFormulaire

Jusque là tout va bien ...

Dim RS As Object
Set RS = MonFormulaire.Recordset.Clone
RS.Findfirst "[CléP_Dossier] = " & CléPDossier
If Not RS.EOF Then MonFormulaire.Bookmark = RS.Bookmark

Là, ça ne marche plus, j'obtins le message d'erreur sur "MonFormulaire" :
"Erreur de compilation : Qualificateur incorrect"
mais si je place le nom du formulaire, ça marche très bien :

Set RS = Form_F_Dossiers_Liste.Recordset.Clone
RS.Findfirst "[CléP_Dossier] = " & CléPDossier
If Not RS.EOF Then Form_F_Dossiers_Liste.Bookmark = RS.Bookmark

Pourriez vous m'aider à régler ce problème
Cordiales salutations

Paul

6 réponses

Avatar
3stone
Salut,

"Paul Florent"
[...]
| Lorsque F_Dossier_Détail s'ouvre, je ferme le formulaire appelant pour ne
| pas avoir trop de bases ouvertes


Pour quelle raison ?
Il serait bien plus simple (et économique) de le laisser ouvert
ou à la rigueur, caché !



|
| Dim RS As Object
| Set RS = MonFormulaire.Recordset.Clone
| RS.Findfirst "[CléP_Dossier] = " & CléPDossier
| If Not RS.EOF Then MonFormulaire.Bookmark = RS.Bookmark
|
| Là, ça ne marche plus, j'obtins le message d'erreur sur "MonFormulaire" :
| "Erreur de compilation : Qualificateur incorrect"


normal !
bookmark n'est pas une propriété d'une variable...


| mais si je place le nom du formulaire, ça marche très bien :
|
| Set RS = Form_F_Dossiers_Liste.Recordset.Clone
| RS.Findfirst "[CléP_Dossier] = " & CléPDossier
| If Not RS.EOF Then Form_F_Dossiers_Liste.Bookmark = RS.Bookmark

soit Me.Bookmark soit Forms(MonFormulaire).bookmark
mais il me semble que ce sont beaucoup de manipulations inutiles
pour une mauvaise raison.

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Paul Florent
Pour quelle raison ?
parceque j'obtien rapidement un message :
"impossible d'ouvrir plus de bases de données"
et qu je pensis quen fermant des formulaires ça réglerais le problème.
Hélas grâce à tes indications ça marche bien,
mais j'obtiens tpoujours le message "impossible d'ouvrir plus de bases de
données"

Que puis-je faire pour éviter cet écueil
merci
Paul
Avatar
Paul Florent
Pierre
parceque j'obtiens un message d'erreur
"Impossible d'ouvrir plus de bases de données. (Erreur 3048)"
Pourtant, il ne me semble pas avoir lancé trop de bases !
Comnbien de bases puis-je lancer ?
Comment compter les bases lancées
Comment réduire le nombre de bases lancées ?
Merci par avance pour ton aide

Paul
Avatar
3stone
Salut,

"Paul Florent"
| Pour quelle raison ?
| parceque j'obtien rapidement un message :
| "impossible d'ouvrir plus de bases de données"
| et qu je pensis quen fermant des formulaires ça réglerais le problème.
| Hélas grâce à tes indications ça marche bien,
| mais j'obtiens tpoujours le message "impossible d'ouvrir plus de bases de
| données"


Ce ne sont pas deux ou trois formulaires qui produisent cela...
(sauf si tu ouvre un recordset à chaque ligne...)

Plus important est de bien libérer les objets :
tout ce qui est créé par une Set chose = objet...
faire un chose.Close suivit d'un chose=Nothing



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
3stone
re,

"Paul Florent"
| parceque j'obtiens un message d'erreur
| "Impossible d'ouvrir plus de bases de données. (Erreur 3048)"
| Pourtant, il ne me semble pas avoir lancé trop de bases !
| Comnbien de bases puis-je lancer ?
| Comment compter les bases lancées
| Comment réduire le nombre de bases lancées ?


comme dit dans le message précédent...

et regarde ceci :
http://support.microsoft.com/kb/165272/en-us


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Paul Florent
Merci pour ton aide
qui m'a permis de régler mon problème
Bon dimanche
Paul