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 :

Créer un nouvel enregistrement en reprenant les données du champ actif d'un formulaire [AC-2013]


Sujet :

IHM

  1. #1
    Membre à l'essai Avatar de tuxdiver
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 19
    Points
    19
    Par défaut Créer un nouvel enregistrement en reprenant les données du champ actif d'un formulaire
    Bonjour,

    Est-il possible de créer un bouton dans un formulaire de type "feuille de réponse dynamique" qui créerait un nouvel enregistrement en reprenant certains champs de l'enregistrement actif du formulaire.

    Dans mon cas, il s'agit de renseigner un planning de formation. Un champs date extrait le jour de la semaine et l'équipe concernée puis on renseigne les type et thème de formation.
    Cependant il peut y avoir plusieurs formation le même jour. or, la création d'un nouvel enregistrement renvoie en pied de formulaire et présente des champs vides.

    Mon souhait serait d'avoir un bouton qui créerait un nouvel enregistrement qui reprendrait automatiquement les champs date, équipe et jour et qui se positionnerait aussitôt sous le champs actif afin de faciliter le travail du formateur qui renseigne le planning.

    merci d'avance

  2. #2
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    Tuxdiver,

    Un sujet traité il y a peu, avec quelques règles à modifier dans ton cas.

    Mais celui-ci répond en tout point à ta demande :

    - Saisie des informations sur une zone du formulaire,
    - Ajout des informations sur un formulaire continu et tris décroissants..

    Bonne lecture

    http://www.developpez.net/forums/d15...able-publique/

    Jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  3. #3
    Membre à l'essai Avatar de tuxdiver
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 19
    Points
    19
    Par défaut
    Bonjour Jimbolion,

    Merci pour ta réponse et le "tutoriel" réponse joint
    cela semble correspondre à mes besoins et j'ai donc entrepris de recopier et d'adapter ton code à ma situation

    et là ça se complique !!

    je décris à nouveau la situation :
    Je suis Sapeur-Pompier et l'objectif de cette base est de gérer le planning de formation des agents et de suivre ensuite leur temps de présence à ces formations.
    Il y a 3 équipes de garde A,B,C qui se suivent par cycles de 24 heures tout au long de l'année.
    Il y a plusieurs formations par jour, hormis le dimanche, minimum deux, maximum variant puisque le groupe peut être scindé et suivre différents formations.
    Le temps de formation du planning est indicatif, le formateur l'adaptera en fonction de la manœuvre et surtout les départs en intervention interrompent la formation et chaque agent aura donc une durée différente.

    le premier objectif est de fournir un outil aux formateurs qui prévoient le planning pour le mois suivant. ils insèrent une ou plusieurs formations et séances de sport par jour. j'extrairai ensuite dans un etat en groupant par mois
    le deuxième objectif sera de renseigner chaque jour à l'issu des formations le nom des agents et leur temps de présence afin d'établir un suivi de formation

    j'ai donc pris JouForm en point de départ en lieu et place de ID_Consultant; j'ai relu, remplacé, adapté... dans la limite de ma compréhension et cela semble prometteur !! dans la forme...
    mais dans le fond, il ya beaucoup de choses que je ne saisi pas !!

    Comment puis-je adapter la table T_Parametre à ma situation ? je saisi que pour insérer ou mettre à jour j'en ai besoin mais ...

    J'ai un bug de "nombre de valeurs de la requête qui doit correspondre au nombre de champs destination " avec le bouton valider
    je pense que ça concerne le champs "FMPA" sans trouver pourquoi. FMPA signifie "Formation Maintien et Perfectionnement des Acquis" et indique si la formation fait partie du programme départemental obligatoire pour l'année. ce n'est qu'une indication pour le formateur qui en fera une priorité en début d'année et passera à autre chose une fois l'ensemble du personnel validé pour l'année.
    ce champs est donc automatique et n'attend pas d'être renseigné.

    ci joint un extrait de la base : Test_Formation.zip

    j'ai beaucoup appris en l'espace d'une semaine à lire et relire tes explications. si j'abouti, et je ne doute pas d'y arriver, je vous en devrai une bonne à vous les sachants !! ce forum est une véritable bouée de sauvetage de partage de connaissances.
    merci

  4. #4
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    tuxdiver,

    Oui une bonne approche de la problématique et je te félicite. J'ai donc corrigé une partie du code en appliquant les modifications nécessaires.

    Dans mon billet blog, tu verras quelles sont les erreurs fréquentes en matière de conception d'une requête SQL en VBA. L'utilisation du débogueur te permettra de corriger tes erreurs.

    Concernant le champ FMPA il est attendu un id et non pas une valeur booleenne, c'est donc l'id de theme qui doit être intégré dans la requête et non pas la valeur Oui/Non. Si tu regardes bien dans le sous formulaire la liste déroulante est basée sur 2 colonnes (la première masquée correspond bien à l'Id).

    Pour le champ heure j'ai crée une fonction permettant de convertir en format heure le contenu de ton champ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function Convert_Time(laDate As Date) As String
      ' courtoisie JimboLion
      ' Formate la date passée en argument en date US.
        Convert_Time = Chr(35) & Format(laDate, "hh:MM:ss") & Chr(35)   ' Date au format us
    End Function
    ton code sur la partie Update devient donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
          R_Sql = "UPDATE [t_formation] SET [t_formation].JourForm = " & Convert_DateUS_Short(Nz(Me.JourForm, Date)) & _
            ", [t_formation].Famille = " & Nz(Famille, "") & _
            ", [t_formation].Theme = " & Nz(Theme, "") & _
            ", [t_formation].NumForm = '" & Nz(NumForm, "") & "' " & _
            ", [t_formation].DureeForm = " & Convert_Time(Nz(DureeForm, "00:00:00")) & _
            ", [t_formation].FMPA = " & Nz(Theme, 0) & _
            ", [t_formation].Formateur = " & Nz(Formateur, "") & _
            ", [t_formation].Observation = '" & Protected_Quote(Nz(Observation, "")) & "' "
            R_Sql = R_Sql & "WHERE ((([t_formation].ID_Formation)=" & Nz(Me.ID_Formation, 0) & "));"
    Concernant l'utilisation de T_parametres, cette table se substitue aux variables globales. Tu peux mettre à jour une valeur précédemment stockée (dans un autre module, un autre formulaire...) et l'utiliser ainsi durant toute la durée de vie de ton programme. J'ai refait cette partie dans mon blog.

    Il te reste encore quelques petites choses à revoir, je te laisse donc voir comment réinitialiser les champs après modification...

    Je ne sais pas si l'insert est intéressant dans ton cas, il me semble que ta table T_formations est déjà préremplie.

    Ci-joint la mise à jour de ton projet.

    Cordialement

    Jimbolion
    Fichiers attachés Fichiers attachés
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  5. #5
    Membre à l'essai Avatar de tuxdiver
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 19
    Points
    19
    Par défaut
    bonjour Jimbolion,

    impec, après correction tout fonctionne, merci

    je tente maintenant d'améliorer la forme et je bloque sur certains points :

    je souhaite transformer les listes déroulantes en listes à choix multiple; par exemple thème et formateur afin de pouvoir sélectionner plusieurs themes / formateurs pour une même formation etc, et là ... comme les champs ne sont plus basés sur une table je ne peux pas choisir "à choix multiple" et je ne trouve rien dans les propriétés qui s'en rapproche.
    sur les forums ils précisent que seules les zones de listes peuvent prendre la propriété " sélection multiple" mais ça ne va pas et ça m'étonnes !!
    une idée ?

    j'ai modifié mon sous formulaire pour le baser sur une requête afin de filtrer davantage de choses. j'ai créé un filtre sur le mois ce qui me contraint à mettre le formulaire en mode continu plutôt que feuille de donnée sinon le filtre disparait. or, en mode feuille de donnée les flèches des listes déroulantes n'apparaissent pas. est il possible de les faire disparaitre en mode continu ?
    en repassant en zone texte le contenu pointe sur l'id et non plus sur la deuxième colonne sans modif possible ...

    merci d'avance
    cordialement

  6. #6
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    tuxdiver

    sur les forums ils précisent que seules les zones de listes peuvent prendre la propriété " sélection multiple" mais ça ne va pas et ça m'étonnes !!
    une idée ?
    Malheureusement oui !

    'ai modifié mon sous formulaire pour le baser sur une requête afin de filtrer davantage de choses. j'ai créé un filtre sur le mois ce qui me contraint à mettre le formulaire en mode continu plutôt que feuille de donnée sinon le filtre disparait. or, en mode feuille de donnée les flèches des listes déroulantes n'apparaissent pas. est il possible de les faire disparaitre en mode continu ?
    En affichant Sélecteur à Non dans les propriétés de ton formulaire

    jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  7. #7
    Membre à l'essai Avatar de tuxdiver
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 19
    Points
    19
    Par défaut
    Jimbolion

    du coup je tente une autre approche !!
    j'ai basé le formulaire sur la table formation et intégrer theme et formateur dans la requête du formulaire
    j'ai mis theme et formateur en choix multiple dans leur table respective

    ca fonctionne dans la forme mais le code bug

    je fais fausse route ou y a t'il moyen de moyenner ?

    test.zip

  8. #8
    Membre à l'essai Avatar de tuxdiver
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 19
    Points
    19
    Par défaut
    grrr

    a priori, pas de choix multiple dans une requete upload ou delete...

    ca se complique

  9. #9
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    TuxDiver,

    Je reprends ton post et je lis ceci :

    je souhaite transformer les listes déroulantes en listes à choix multiple; par exemple thème et formateur afin de pouvoir sélectionner plusieurs themes / formateurs pour une même formation etc, et là ... comme les champs ne sont plus basés sur une table je ne peux pas choisir "à choix multiple" et je ne trouve rien dans les propriétés qui s'en rapproche.
    sur les forums ils précisent que seules les zones de listes peuvent prendre la propriété " sélection multiple" mais ça ne va pas et ça m'étonnes !!
    une idée ?
    Cette technique me semble la bonne, il te suffit d'avoir en en tête 2 listes box contenant l'ensemble des thèmes et des formateurs. Lors de la validation (uniquement en insert) tu effectues une boucle sur la liste des éléments pointés et applique la requête insert. Dans le cadre du update (Me.ID_Formation <>0), les informations de modification seront alors pour les valeurs thème et formateur remontés dans la boîte liste), il faudra uniquement jouer sur les propriétés visibles pour ne pas perturber l'utilisateur.

    En pratiquant une double boucle sur tes deux listes tu pourrais donc injecter directement les valeurs sélectionnées dans ta table t_formations

    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
    Function insert()
    If Me.ZL_Themes.ListIndex >= 0 Then
        For i = 0 To Me.ZL_Themes.ListCount - 1
            If Me.ZL_Themes.Selected(i) Then
            '
            Me.ZL_Themes.Selected(i) = False
            For j = 0 To Me.ZL_Formateurs.ListCount - 1
                If Me.ZL_Formateurs.Selected(i) Then
                    Me.ZL_Formateurs.Selected(i) = False
                    '
                    ' ici ton insert Me.ZL_Themes.Column(0, i) et Me.ZL_Formateurs.Column(0, i)
                    '
                End If
            Next
            End If
        Next i
    End Function
    L'idée est peut être là, mais faut creuser un peu...

    Jimbolion
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

  10. #10
    Membre à l'essai Avatar de tuxdiver
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2015
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2015
    Messages : 39
    Points : 19
    Points
    19
    Par défaut
    bonjour,

    pour conclure ce post, voici le code qui m'a permis d'aboutir

    la liste déroulante devient liste à sélection multiple simple "Formateur"
    un champs texte "Formateurs" qui affiche les plusieurs formateurs

    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
    ' Formateurs Sélection multiple
      If Me.Formateur.ItemsSelected.Count <> 0 Then
        Me.Formateurs = ""
        For i = 0 To Me.Formateur.ListCount - 1
          If Me.Formateur.Selected(i) Then
            Me.Formateurs = Me.Formateurs + IIf(Me.Formateurs = "", Me.Formateur.Column(1, i), " / " & Me.Formateur.Column(1, i))
            Me.Formateur.Selected(i) = False
          End If
        Next i
      ElseIf Me.Formateurs = "" Then
        ' Vérif Formateurs
        Reponse = MsgBox("Vous devez désigner un formateur", vbCritical + vbOKOnly, "Erreur Formateur")
        Me.Formateur.SetFocus
        Exit Sub
      End If
    après réflexion, j'ai abandonné l'idée de sélection multiple sur "thème" mais la méthode est la même et fonctionne
    les thèmes abordés sont précisés dans le formulaire de saisie temps par agent

    voilou
    merci encore pour le temps passé
    cordialement
    à bientôt

  11. #11
    Expert éminent
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Points : 7 001
    Points
    7 001
    Billets dans le blog
    2
    Par défaut
    tuxdiver

    En reprenant les pistes données, tu revisites, tu adaptes le code à ta problématique donc je dis

    bonne continuation

    jm
    N'oubliez pas le Tag si la réponse donnée vous a été utile et pour une réponse pertinente.
    Retrouvez-moi sur le chat en salon base de données

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

Discussions similaires

  1. [SP-2007] Créer un nouvel Affichage pour toutes les bibliothèques
    Par indemix dans le forum SharePoint
    Réponses: 5
    Dernier message: 09/04/2009, 15h00
  2. [A-07] Créer un nouvel enregistrement en VBA
    Par Alain7751 dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/02/2009, 07h03
  3. Réponses: 1
    Dernier message: 10/10/2008, 23h29
  4. Réponses: 3
    Dernier message: 04/07/2008, 16h10
  5. Réponses: 1
    Dernier message: 13/06/2006, 09h23

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