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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
"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.
"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.
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
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
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
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
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
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
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
"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
"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
"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
"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
"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