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

IHM Discussion :

Compréhension d'un formulaire


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Almeyric
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut Compréhension d'un formulaire
    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 :

    Nom : Structure Form.png
Affichages : 177
Taille : 60,9 Ko

    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 :

    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
    Ensuite, j'en ai deux autres dans les champs AfterUpdate et OnGotFocus, je ne vois pas a quoi elles servent.

    AfterUpdate :

    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
    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
    '------------------------------------------------------------
    ' 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
    D'avance merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Almeyric
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Personne n'a d'explication ?

  3. #3
    Expert éminent

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

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonsoir,

    Eh ben tout le monde a des explications mais effectivement en voyant le code, ça fait un peu peur .
    Mais il y a une logique.

    Donc, il doit y avoir un champ [Nom de l'Accueilli simple] dans la partie Détail de ton formulaire.
    Et la fonction Nz vérifie s'il est Null ou non, s'il est Null, on met "SANS TITRE". Ce qui fait que quand tu mets la partie Détail en non-visible, il ne retrouve pas le champ [Nom de l'Accueilli simple]. Il y a erreur.

    Pour les codes, je commente le premier :
    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
    42
    Function M_Details_Accueilli_Simple_OnLoad()
    On Error GoTo M_Details_Accueilli_Simple_OnLoad_Err
     
        With CodeContextObject ' On applique le code jusqu'au End With au formulaire en cours
              'le formulaire est ouvert avec des arguments filtres, on vérifie avec Openargs si il y a des arguments ?
            If (IsNull(.OpenArgs)) Then
                Exit Function  'On sort si pas de critère de filtre
            End If
     
            DoCmd.GoToRecord , "", acGoTo  'se déplacer dans le formulaire (ligne inutile à mon avis)
     
            'vérifier si les codes vba sont activés ?
            If (Not CurrentProject.IsTrusted) Then
                Exit Function  'sinon sortir
            End If
            'Rajouter des valeurs temporaires dans "NouvellesDonnées" et "Espace". Je te conseille de faire une recherche avec F1
            TempVars.Add "NouvellesDonnées", Mid(Nz(.OpenArgs), InStr(Nz(.OpenArgs), "=") + 1)
            TempVars.Add "Espace", InStrRev(TempVars!NouvellesDonnées, " ")
     
            On Error Resume Next 'Continuer en cas d'erreur
           'Assigner des valeurs aux champs [Last Name] et [First Name] du formulaire selon les conditions des valeurs temporaires
            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
            'Supprimer les valeurs temporaires du mémoire
            TempVars.Remove "NouvellesDonnées"
            TempVars.Remove "Espace"
        End With
     
    'Gestion d'erreurs
    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
    Tu peux avancer avec cela je pense.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  4. #4
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Almeyric
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Bonjour madefemere,

    Désolé de la réponse plus que tardive à tes explications.

    Merci cela m'aide bien à comprendre tes commentaires. Et comme je suis en plein développement de la nouvelle base depuis une semaine, j'avance à mon rythme et commence à comprendre le VBA du moins les bases.

    Je reviendrai surement pour d'autres questions, d'ailleurs je vais ouvrir 2 nouveaux sujets.

    Encore merci.

Discussions similaires

  1. [2.x] Organisation / Compréhension de formulaire
    Par boosted dans le forum Symfony
    Réponses: 4
    Dernier message: 12/02/2015, 02h06
  2. Réponses: 2
    Dernier message: 19/07/2011, 10h12
  3. Réponses: 3
    Dernier message: 20/02/2009, 07h49
  4. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 15h52
  5. [CR] Tranfert de formulaire a travers une page HTMl
    Par LIEU dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 12/09/2002, 08h37

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