IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Comment refermer et rouvrir un formulaire par code ? [AC-2013]


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 129
    Points : 495
    Points
    495
    Par défaut Comment refermer et rouvrir un formulaire par code ?
    Salut membre du forum !
    Comment pourrait on refermer et rouvrir avec du code un formulaire après l'entrée d'un enregistrement dans une zone de texte ?
    Cordialement !

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonsoir,
    Pourquoi fermer et ouvrir le formulaire ?
    Il y a la méthode "requery" pour actualiser les données d'un formulaire.
    Cordialement

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 814
    Points : 14 902
    Points
    14 902
    Par défaut
    bonsoir madefemere,
    ce post fait suite à celui-ci, mais une solution a été donnée entre-temps

  4. #4
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 129
    Points : 495
    Points
    495
    Par défaut
    Bonjour membres du forum !
    Professeur madefemere, le DSL tee_grandbois a touché la source de la discussion actuelle.

    Néanmoins permettez moi de poursuivre cette discussion "Comment pourrait on refermer et rouvrir avec du code un formulaire selon OpenArgs après l'entrée d'un enregistrement dans une zone de texte".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_Open(Cancel As Integer)
    On Error Resume Next
    Dim strAnnee As String
     
        If Me.OpenArgs = "Nouveau" Then
            DoCmd.GoToRecord , , acNewRec
            Me.ANNEESCOLAIRE = CStr(strAnnee)
    Me.ID_ECOLE = Forms![Tbl_EnteteEmploi_Temps_General_ECOISLAM]![Emploi_Temps_General_ECOISLAM].Form![ID_ECOLE]
    Me.ANNEESCOLAIRE = Forms![Tbl_EnteteEmploi_Temps_General_ECOISLAM]![Emploi_Temps_General_ECOISLAM].Form![ANNEESCOLAIRE]
    Me.ID_OrdreProgrETG = Forms![Tbl_EnteteEmploi_Temps_General_ECOISLAM]![Emploi_Temps_General_ECOISLAM].Form![ID_OrdreProgrETG]
        End If
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub NumEnreg_DblClick(Cancel As Integer)
    AppelEmploi_Temps_General_ECOISLAM_BDialogue
    End Sub
     
    Sub AppelEmploi_Temps_General_ECOISLAM_BDialogue()
    On Error Resume Next
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim rep As Integer
     
    stDocName = "Emploi_Temps_General_ECOISLAM_BDialogue"
     
    rep = MsgBox("QUE VOULEZ-VOUS FAIRE ?" & vbCrLf & "AJOUTER DE NOUVELLES DONNEES ---> OUI" & _
    vbCrLf & "" & vbCrLf & "MODIFIER LES DONNEES EN COURS ---> NON" & vbCrLf & "" & vbCrLf & "QUITTER SANS RIEN FAIRE ---> ANNULER", _
    vbYesNoCancel + vbQuestion, "Choisir un traitement")
    Select Case rep
    Case vbYes
               DoCmd.OpenForm stDocName, , , , , , "Nouveau"
    Case vbNo
        If Me.NewRecord = True Then
           If MsgBox("AUCUN ENREGISTREMENT ACTIF POUR LE MOMENT !!" & vbCrLf & "VOULEZ-VOUS AJOUTER DES ENREGISTREMENTS ?", vbYesNo + vbQuestion, "ENREGISTREMENT") = vbYes Then
               DoCmd.OpenForm stDocName, , , , , , "Nouveau"
           End If
        Else
            stLinkCriteria = "[NumEnreg]=" & Me.NumEnreg
            DoCmd.OpenForm stDocName, , , stLinkCriteria
        End If
    Case vbCancel
    Case Else
    End Select
    End Sub
    Cordialement.

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 814
    Points : 14 902
    Points
    14 902
    Par défaut
    bonjour,
    Comment pourrait on refermer et rouvrir avec du code un formulaire selon OpenArgs
    j'aurai aimé savoir le but de cette demande et pourquoi "selon Openargs" ???
    sinon, on ouvre et on referme un formulaire avec OpenForm, Close et OpenFom:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Docmd.openform "Monform",  windowmode:=acDialog
    ' ou bien
    DoCmd.OpenForm "Monform", , , , , acDialog
    '====>  ici on peut mettre du code à exécuter après la saisie du formulaire "Monform" 
    ' comme, par exemple, rafraichir les données du formulaire appelant, 
    ' car acDialog empêche VBA de continuer les lignes de code suivantes tant que le formulaire n'est pas fermé
    Forms("FormulaireAppelant").Refresh
    Docmd.close acform, "Monform"
    ' réouverture
    Docmd.openform "Monform", windowmode:=acWindowNormal
    ' ou bien
    DoCmd.OpenForm "Monform", , , , , acWindowNormal

  6. #6
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 129
    Points : 495
    Points
    495
    Par défaut
    Bonsoir DSL tee_grandbois!
    Merci d'avance. Je vais tester les codes suggérés.
    A+

  7. #7
    Membre confirmé Avatar de morobaboumar
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2009
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 1 129
    Points : 495
    Points
    495
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonjour,
    j'aurai aimé savoir le but de cette demande et pourquoi "selon Openargs" ???
    [/CODE]
    Bonjour tee_grandbois !
    1°)- L'objet ".Refresh" génère l'erreur dont voici la capture d'écran:
    Nom : CaptureErreurRefresh.PNG
Affichages : 106
Taille : 31,5 Ko
    par contre l'objet ".Requery" fonctionne avec le code.
    2°)- Je souhaiterais qu'au moment de la réouverture du formulaire "MonForm" qui est "Emploi_Temps_General_ECOISLAM_BDialogue" s'ouvre sur l'enregistrement en cours selon le code
    d'appel du formulaire appelant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Private Sub NumEnreg_DblClick(Cancel As Integer)
    AppelEmploi_Temps_General_ECOISLAM_BDialogue
    End Sub
     
    Sub AppelEmploi_Temps_General_ECOISLAM_BDialogue()
    On Error Resume Next
    Dim stDocName As String
    Dim stLinkCriteria As String
    Dim rep As Integer
     
    stDocName = "Emploi_Temps_General_ECOISLAM_BDialogue"
     
    rep = MsgBox("QUE VOULEZ-VOUS FAIRE ?" & vbCrLf & "AJOUTER DE NOUVELLES DONNEES ---> OUI" & _
    vbCrLf & "" & vbCrLf & "MODIFIER LES DONNEES EN COURS ---> NON" & vbCrLf & "" & vbCrLf & "QUITTER SANS RIEN FAIRE ---> ANNULER", _
    vbYesNoCancel + vbQuestion, "Choisir un traitement")
    Select Case rep
    Case vbYes
               DoCmd.OpenForm stDocName, , , , , , "Nouveau"
    Case vbNo
        If Me.NewRecord = True Then
           If MsgBox("AUCUN ENREGISTREMENT ACTIF POUR LE MOMENT !!" & vbCrLf & "VOULEZ-VOUS AJOUTER DES ENREGISTREMENTS ?", vbYesNo + vbQuestion, "ENREGISTREMENT") = vbYes Then
               DoCmd.OpenForm stDocName, , , , , , "Nouveau"
           End If
        Else
            stLinkCriteria = "[NumEnreg]=" & Me.NumEnreg
            DoCmd.OpenForm stDocName, , , stLinkCriteria
        End If
    Case vbCancel
    Case Else
    End Select
    End Sub
    '
    Voici le code du formulaire "MonForm" qui est "Emploi_Temps_General_ECOISLAM_BDialogue"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_Open(Cancel As Integer)
    On Error Resume Next
    Dim strAnnee As String
     
        If Me.OpenArgs = "Nouveau" Then
            DoCmd.GoToRecord , , acNewRec
            Me.ANNEESCOLAIRE = CStr(strAnnee)
    Me.ID_ECOLE = Forms![Tbl_EnteteEmploi_Temps_General_ECOISLAM]![Emploi_Temps_General_ECOISLAM].Form![ID_ECOLE]
    Me.ANNEESCOLAIRE = Forms![Tbl_EnteteEmploi_Temps_General_ECOISLAM]![Emploi_Temps_General_ECOISLAM].Form![ANNEESCOLAIRE]
    Me.ID_OrdreProgrETG = Forms![Tbl_EnteteEmploi_Temps_General_ECOISLAM]![Emploi_Temps_General_ECOISLAM].Form![ID_OrdreProgrETG]
        End If
    End Sub
    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/04/2013, 14h48
  2. Réponses: 2
    Dernier message: 01/01/2007, 22h01
  3. Réponses: 6
    Dernier message: 03/11/2006, 09h59
  4. Réponses: 4
    Dernier message: 05/06/2006, 11h34
  5. [VBA-E]ajouter un textbox sur un formulaire par code?
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 22/03/2006, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo