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 !
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 !
Bonsoir,
Pourquoi fermer et ouvrir le formulaire ?
Il y a la méthode "requery" pour actualiser les données d'un formulaire.
Cordialement
bonsoir madefemere,
ce post fait suite à celui-ci, mais une solution a été donnée entre-temps
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 SubCordialement.
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
bonjour,
j'aurai aimé savoir le but de cette demande et pourquoi "selon Openargs" ???Comment pourrait on refermer et rouvrir avec du code un formulaire 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
Bonsoir DSL tee_grandbois!
Merci d'avance. Je vais tester les codes suggérés.
A+
DSL ? Qu'est-ce que c'est ?Bonsoir DSL tee_grandbois!
Bonsoir tee_grandbois !
Désolé ! C'est une erreur de frappe de ma part.
Toutes mes excuses.
Cordialement.
Bonjour tee_grandbois !
1°)- L'objet ".Refresh" génère l'erreur dont voici la capture d'écran:
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"
Cordialement.
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager