Bonjour à tous,
ça fait un moment que je ne suis pas passé, étant plongé dans l'entrée de données. Cette étape franchie avec succès, grâce à vos aides successives, j'ai souhaité porter quelques améliorations à l'ensemble, et me voila confronté à un nouveau problème...
Avant la fermeture/réouverture d'un formulaire, je cherche à actualiser une liste d'un autre formulaire, ayant pour source d'origine une liste de valeurs créée à partir de ce code, présent dans le formulaire à actualiser :
Dans mes recherches réflectives, j'envisageais deux solutions :
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
32
33
34
35
36
37
38
39 Private Sub Contrat() Dim rst1 As DAO.Recordset Dim rst2 As DAO.Recordset Dim laref As Integer Dim lasigna As Date Dim lechean As Date Dim lesspe As String Dim lstcontrat As String Set rst1 = CurrentDb.OpenRecordset("SELECT [TblRefContrat].[ContratRef], [TblRefContrat].[debut], [TblRefContrat].[fin] FROM TblRefContrat WHERE [TblRefContrat].[Société] = '" & Me.txtSociété & "'") While Not rst1.EOF laref = rst1("ContratRef") lasigna = rst1("debut") lechean = rst1("fin") Set rst2 = CurrentDb.OpenRecordset("SELECT [TblSpeContrat].[Spécialité] FROM TblSpeContrat WHERE [TblSpeContrat].[ContratRef] = " & laref & "") While Not rst2.EOF lesspe = rst2("Spécialité") & ", " & lesspe rst2.MoveNext Wend rst2.Close Set rst2 = Nothing lesspe = Left(lesspe, (Len(lesspe) - 2)) lstcontrat = laref & ";" & lasigna & ";" & lechean & ";" & lesspe & ";" & lstcontrat lesspe = "" rst1.MoveNext Wend rst1.Close Set rst1 = Nothing lstcontrat = StrConv(lstcontrat, vbLowerCase) Me.lstContrats.RowSource = lstcontrat Me.lstContrats.Requery End Sub
1) Appeler la Sub du formulaire à actualiser.
Problème : je n'y arrive pas.
Il serait possible de créer un bouton invisible, sur le formulaire à actualiser, et de simuler un évènement sur celui-ci. Je n'ai pas trouvé comment, mais ça doit pouvoir se faire, non ?
2) fermer et ré-ouvrir le formulaire à actualiser par ce code, avant de fermer/ouvrir le formulaire lançant l'actualisation :
Là encore, quelques soucis : le formulaire FrmDetails se ferme bien, mais il ne s'ouvre plus après. Le formulaire FrmContrat, lui, ne bouge pas d'un pixel...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DoCmd.Close acForm, "FrmDetails" DoCmd.OpenForm "FrmDetails", acNormal, , "[Société] = '" & Me.txtSociété.Value & "'" DoCmd.Close DoCmd.OpenForm "FrmContrat", acNormal, , , acFormAdd
J'ai envisagé une troisième solution, que je n'utiliserai qu'en dernier recours, du fait de sa lourdeur/laideur : copier le code de la Sub dans le formulaire lançant l'actualisation, en pensant à remplacer les Me. par Forms!FrmDetails.
Voila, voila, si quelqu'un avait un début de piste pour me guider un peu dans mes recherche, ce serait sympathique de la partager !
Partager