Bonsoir,
Je suis occupé de refaire une BDD, et j'essaye de comprendre la logique et le fonctionnement de l'ancienne. Cela fait quelques heures que je cherche mais là, je ne trouve pas de réponse.
Donc j'ai un formulaire qui est celui-ci :
Je n'arrive pas à comprendre le fonctionnement de la ligne =NZ([Nom de l'Accueilli simple];...
Pas le résultat mais comment il est affiché.
Car lorsque je mets la partie détail en non visible, la ligne NZ ne fonctionne pas. Par contre quand elle est visible celle-ci fonctionne.
Le fonctionnement est le suivant, on sélectionne une personne de la liste déroulante, les informations s'affiche dans les sous-formulaires composant les onglets, et le nom sélectionné s'affiche sur la ligne NZ.
Pourquoi avoir tout mis en tête ?
Au chargement de ce formulaire, j'ai une macro incorporée mais pour moi qui ne sert à rien. En voici le code convertie en VBA :
Ensuite, j'en ai deux autres dans les champs AfterUpdate et OnGotFocus, je ne vois pas a quoi elles servent.
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 Function M_Details_Accueilli_Simple_OnLoad() On Error GoTo M_Details_Accueilli_Simple_OnLoad_Err With CodeContextObject If (IsNull(.OpenArgs)) Then Exit Function End If DoCmd.GoToRecord , "", acGoTo If (Not CurrentProject.IsTrusted) Then Exit Function End If TempVars.Add "NouvellesDonnées", Mid(Nz(.OpenArgs), InStr(Nz(.OpenArgs), "=") + 1) TempVars.Add "Espace", InStrRev(TempVars!NouvellesDonnées, " ") On Error Resume Next If (TempVars!Espace = 0 And TempVars!NouvellesDonnées <> "") Then .[Last Name] = TempVars!NouvellesDonnées End If If (TempVars!Espace > 0) Then .[First Name] = Left(TempVars!NouvellesDonnées, TempVars!Espace - 1) .[Last Name] = Mid(TempVars!NouvellesDonnées, TempVars!Espace + 1) End If TempVars.Remove "NouvellesDonnées" TempVars.Remove "Espace" End With M_Details_Accueilli_Simple_OnLoad_Exit: Exit Function M_Details_Accueilli_Simple_OnLoad_Err: MsgBox Error$ Resume M_Details_Accueilli_Simple_OnLoad_Exit End Function
AfterUpdate :
Et OnGotFocus :
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
40
41 '------------------------------------------------------------ ' Macro7 ' '------------------------------------------------------------ Function Macro7() On Error GoTo Macro7_Err With CodeContextObject If (IsNull(Screen.ActiveControl)) Then Exit Function End If On Error Resume Next If (.Form.Dirty) Then DoCmd.RunCommand acCmdSaveRecord End If If (.MacroError.Number <> 0) Then Beep MsgBox .MacroError.Description, vbOKOnly, "" Exit Function End If On Error GoTo 0 TempVars.Add "ValeurContrôleActif", Screen.ActiveControl If (CurrentProject.IsTrusted) Then Screen.ActiveControl = Null End If If (.Form.FilterOn) Then DoCmd.RunCommand acCmdRemoveFilterSort End If DoCmd.SearchForRecord , "", acFirst, "[ID]=" & TempVars!ValeurContrôleActif TempVars.Remove "ValeurContrôleActif" End With Macro7_Exit: Exit Function Macro7_Err: MsgBox Error$ Resume Macro7_Exit End Function
D'avance merci
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 '------------------------------------------------------------ ' Macro9 ' '------------------------------------------------------------ Function Macro9() On Error GoTo Macro9_Err With CodeContextObject On Error Resume Next If (Screen.ActiveForm.Name = .Form.Name) Then DoCmd.Requery Screen.ActiveControl.Name End If On Error Resume Next If (Screen.ActiveForm.Name = .Form.Name) Then DoCmd.Requery Screen.ActiveControl.Name End If End With Macro9_Exit: Exit Function Macro9_Err: MsgBox Error$ Resume Macro9_Exit End Function
Partager