[ACCESS] ouvrir 2 instance du meme formulaire
santiago69
Messages postés
485
Statut
Membre
-
santiago69 Messages postés 485 Statut Membre -
santiago69 Messages postés 485 Statut Membre -
Salut a tous,
J'ai une base Access avec la table suivante :
J'ai un formulaire fiche avec 4 case (id, nom, prenom, idpere) et un bouton (affichpere).
Je voudrais que le bouton ouvre une autre instance de fiche avec les donnees du pere.
Malheureusement, ca ne marche pas... Aucun formulaire ne s'ouvre et aucune erreur n'est generee.
Pourtant, il est possible d'instancier l'objet formulaire :
Ce code fonctionne. En utilisant le debugage, on voit bien qu'une autre instance du formulaire est ouverte. Mais elle n'est pas persistante et l'objet disparait au moment du End Sub. J'ai essaye de lui donner le focus, de le rendre modal :
Ca ne marche pas mieux, l'objet est cree, affiche et detruit avec la fin de la procedure.
Auriez vous une autre idee ?
Merci d'avance
Santiago
J'ai une base Access avec la table suivante :
matable id NumeroAuto nom String 50 prenom String 50 idpere Long
J'ai un formulaire fiche avec 4 case (id, nom, prenom, idpere) et un bouton (affichpere).
Je voudrais que le bouton ouvre une autre instance de fiche avec les donnees du pere.
Private Sub affichpere_Click()
DoCmd.OpenForm "fiche", , , "id=" & idpere, , acDialog
End Sub
Malheureusement, ca ne marche pas... Aucun formulaire ne s'ouvre et aucune erreur n'est generee.
Pourtant, il est possible d'instancier l'objet formulaire :
Private Sub affichpere_Click()
Dim mafiche As New Form_fiche
mafiche.Visible = True
End Sub
Ce code fonctionne. En utilisant le debugage, on voit bien qu'une autre instance du formulaire est ouverte. Mais elle n'est pas persistante et l'objet disparait au moment du End Sub. J'ai essaye de lui donner le focus, de le rendre modal :
Private Sub affichpere_Click()
Dim mafiche As New Form_fiche
mafiche.Modal = True
mafiche.Visible = True
mafiche.SetFocus
End Sub
Ca ne marche pas mieux, l'objet est cree, affiche et detruit avec la fin de la procedure.
Auriez vous une autre idee ?
Merci d'avance
Santiago
A voir également:
- [ACCESS] ouvrir 2 instance du meme formulaire
- Whatsapp formulaire opposition - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Formulaire de réclamation facebook compte désactivé - Guide
3 réponses
une piste:
Private listForm_fiche As Collection
Public Function Mac_EditReq()
If Application.CurrentObjectType = 1 Then
If listFrm_GetRequete Is Nothing Then Set listForm_fiche = New Collection
Dim f As Form_fiche
Set f = New Form_fiche
f.Visible = True
listForm_fiche .Add f
End If
End Function
Private listForm_fiche As Collection
Public Function Mac_EditReq()
If Application.CurrentObjectType = 1 Then
If listFrm_GetRequete Is Nothing Then Set listForm_fiche = New Collection
Dim f As Form_fiche
Set f = New Form_fiche
f.Visible = True
listForm_fiche .Add f
End If
End Function
j'avais oublié d'enlever mon code perso autour...
le end sub provoque la perte de la fenetre car l'objet mafiche est détruit => le stocker en global
Private listForm_fiche As Collection
Public Function OuvrirFiche()
If listFrm_GetRequete Is Nothing Then Set listForm_fiche = New Collection
Dim mafiche As Form_fiche
Set mafiche = New Form_fiche
mafiche .Visible = True
listForm_fiche.Add mafiche
End Function
inconvenient: par ex en debug, à la moindre modification 'globale' du code (ajout d'une variable gobale, fonction, etc..), on perd la collection (car access = code interpreté sans separation mode design/runtime). mais ds le cas d'un utilisation normale (simple execution), ca fonctionne
le end sub provoque la perte de la fenetre car l'objet mafiche est détruit => le stocker en global
Private listForm_fiche As Collection
Public Function OuvrirFiche()
If listFrm_GetRequete Is Nothing Then Set listForm_fiche = New Collection
Dim mafiche As Form_fiche
Set mafiche = New Form_fiche
mafiche .Visible = True
listForm_fiche.Add mafiche
End Function
inconvenient: par ex en debug, à la moindre modification 'globale' du code (ajout d'une variable gobale, fonction, etc..), on perd la collection (car access = code interpreté sans separation mode design/runtime). mais ds le cas d'un utilisation normale (simple execution), ca fonctionne