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éation formulaire entrées choix multiples


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut création formulaire entrées choix multiples
    Bonjour,
    je souhaiterais créer un formulaire qui permet de saisir les données ci dessous. Comme je suis novice en access il m'est difficile de chercher et trouver des infos sur la manière de s'y prendre. Je connais les basiques, mais pour l'instant je galérais car je m'étais entêté de le faire d'une manière spécifique, mais vous allez peut être me donner des clés.

    Je schématise ma situation réelle comme suit.
    Supposons qu'on a une table Tpays avec une liste de pays (une cinquantaine disons) ; une table Tville avec une liste de villes avec un champ nomville, un champ pays et un champ rang qui est un entier et qui classe les villles d'un pays donné par ordre de grandeur (1 la plus grosse, etc).


    Supposons que chaque mois, on obtient pour chaque ville 2 températures (une max et une min).
    Je veux construire un formulaire avec une liste déroulante à choix multiples qui permet de choisir un pays. Puis ayant choisi un pays, s'affiche dans "un tableau" (ce peut être des zones de texte ou autre) toutes les villes de ce pays par ordre décroissant de grandeur. Ce tableau se prolongerait avec la possibilité de saisir les 2 températures pour chaque ville du pays. Par exemple pour la France et ces 5 plus grandes villes,

    Pièce jointe 645392

    Je veux ensuite stocker les données saisie dans une table Tjournal avec un champ date (du relevé de température), un champ ville, et deux champs températures pour la max et la min.
    merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Coordinateur service technique
    Inscrit en
    Novembre 2021
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Coordinateur service technique

    Informations forums :
    Inscription : Novembre 2021
    Messages : 153
    Points : 143
    Points
    143
    Par défaut
    Bonjour,

    une piste:

    1: sur votre formulaire de choix de pays un bouton de validation qui:
    1.1: crée une table temporaire (ville_id, date, temperaturemini, temperaturemax)
    1.2: insère dans cette table temporaire les villes dont le pays_id est celui selectionné
    1.3: ouvre un sous formulaire en mode feuille de données sourcé sur la table temporaire

    2: l'utilisateur rempli le sous formulaire

    3: un bouton "valider les données saisies" qui:
    3.1: va copier les données de la table temporaire vers la table "journal"
    3.2: supprimer la table temporaire
    3.3: fermeture du formulaire

    A quel point êtes vous novice? Tout va se passer avec le vba. Il va falloir que vous mettiez le nez dans les recordset, les boucles...

    Pour l'instant je ne vois pas plus simple.

  3. #3
    Expert éminent Avatar de hyperion13
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 274
    Points : 6 583
    Points
    6 583
    Par défaut
    Salut,
    Pourquoi créer des tbl temporaires et évoquer le vba ?
    Dans notre cas, il faut 3 tbl avec 2 relations binaires.
    tbl_pays (id_pays, lib_pays)
    tbl_ville (id_ville, lib_ville, id_pays_fk)
    tbl_journal (id_jrl, id_ville_fk, date_jrl, temp_min, temp_max)

    Un frm principal + 2 sfrm devraient suffire pour saisir au fil du temps les températures.

    Une qry analyse croisée permettra de lire les données comme le modèle de tableau en exemple Post#1

    Le plus grosse en quoi ? Diamètre ? Longueur ? Peut-être densité de pop. ?
    Citation Envoyé par bluewhale17 Voir le message
    ... qui classe les villles d'un pays donné par ordre de grandeur (1 la plus grosse, etc).

  4. #4
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par hyperion13 Voir le message
    Une qry analyse croisée permettra de lire les données comme le modèle de tableau en exemple Post#1
    Je voudrais que le visuel de la SAISIE sur le formulaire principal soit le plus proche du tableau excel ci dessus, et que la saisie ne soit pas faite d'un paquet de sous-formulaires, un pour chaque ville. En effet à l'enregistrement des données, et son stockage dans Tjournal, je veux que ça crée une ligne par ville (vu la structure de Tjournal).

    Citation Envoyé par hyperion13 Voir le message
    Le plus grosse en quoi ? Diamètre ? Longueur ? Peut-être densité de pop. ?
    La plus grosse en population disons, ça n'a pas d'importance, je veux juste un classement (j'ai abstrait ma situation réelle dans cet exemple pour simplifier). J'ai oublié de préciser que le nombre de villes par pays peut être entre 1 et 7, pas forcément toujours le même.

  5. #5
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17, hyperion13, gui_li_aume,

    La structure que vous propose hyperion13 est la bonne. Il faudrait ajouter un champ pour l'ordre d'importance des villes ce qui permettra l'affichage dans un ordre choisi.

    Pour afficher votre formulaire de saisie tel que vous le désirez, il vous faudra un peu de VBA. Dans votre exemple post #1 il manque la notion de se déplacer dans le temps. Voici un exemple:
    Nom : bluewhale.png
Affichages : 161
Taille : 14,2 Ko

    Je vous joints le fichier Access.


    Bonne journée
    Fichiers attachés Fichiers attachés

  6. #6
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Merci beaucoup Robert1957, c'est bien ce que je cherchais et votre proposition me permet d'apprendre. Il y a juste plusieurs choses que je n'arrive pas à saisir.

    La première est ce qu'il se passe avec la date, j'ai l'impression qu'il y a une erreur dans la date dans F_Journal_SF, car on ne peut pas la sélectionner pour une saisie. Aussi je vois que dans R_Journal_base elle est fixé sur 21/10/2023 ?

    A quoi servent les deux requêtes au juste ? je ne vois pas où vous les utilisez.

    Comment avez vous construit F_Journal_SF ?

    Comment se met à jour la liste de ville dans F_Journal ? je ne vois pas de procédure sur maj.

    Merci d'avance

  7. #7
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17,

    j'ai l'impression qu'il y a une erreur dans la date dans F_Journal_SF, car on ne peut pas la sélectionner pour une saisie.
    C'est voulu, on se déplace à l'aide du champ "Indiquer une date". La date de ce champ est reportée de manière automatique dans le sous-formulaire. Il serait imprudent de pouvoir saisir une autre date que celle choisie dans le formulaire principal. Il y aurait probablement lieu de mettre une contrainte d'unicité sur la combinaison "Ville/Date", ce que je n'ai pas fait dans ce que je vous ai présenté. Cette date est mise à jour dans le sous formulaire avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub MaJDate_Jour()
    On Error GoTo gestion_err
     
        If IsNull(Me.Date_Jour) Then: Me.Date_Jour = Me.Parent.Date_Journal
     
    Sortie:
    Exit Sub
    gestion_err:
        fuErr_Handler "MaJDate_Jour", "F_Journal_SF"
        Resume Sortie
    End Sub
    Aussi je vois que dans R_Journal_base elle est fixé sur 21/10/2023 ?
    Cette date ainsi que toute la requête est mise à jour à l'aide de la procédure suivante qui est lancée à l'ouverture du formulaire et à la mise à jour du champ ci-haut mentionné:
    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
    Private Sub MaJR_Journal_FK(DateJour As String)
    On Error GoTo gestion_err
     
        Dim qdf As DAO.QueryDef: Set qdf = db.QueryDefs("R_Journal_Base")
        Dim strSQL As String
     
        strSQL = "SELECT T_Journal.* FROM T_Journal " _
        & "WHERE T_Journal.Date_Jour=" & DateJour
     
        qdf.SQL = strSQL
        Set qdf = Nothing
        Me.F_Journal_SF.Form.RecordSource = "R_Journal_SF"
     
    Sortie:
    Exit Sub
    gestion_err:
        fuErr_Handler "MaJR_Journal_FK", "F_Journal"
        Resume Sortie
    End Sub
    A quoi servent les deux requêtes au juste ? je ne vois pas où vous les utilisez.
    La requête "R_Journal_SF" est la source du sous-formulaire "F_Journal_SF". La requête "R_Journal_Base" est comme son nom l'inquide la base de la requête "R_Journal_SF", ce qui permet de saisir des données. Une seule requête plus complexe est souvent mis en lecture par Access et il serait alors impossible de faire ce que vous désirez.
    Comment avez vous construit F_Journal_SF ?
    C'est un formulaire avec affichage par défaut = Feuilles de données. Sa source contrôle est la requête "R_Journal_SF".
    Comment se met à jour la liste de ville dans F_Journal ?
    C'est le principe du formulaire père/fils qui est basé sur champ père: "cmbPays" et champ fils: "ID_PAYS_FK". Access se charge du reste.

    Bonne journée

  8. #8
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonjour Robert1957,

    désolé de la réponse tardive, mais je ne travaille que sporadiquement sur ce projet de bdd, malheureusement.

    J'ai une première question sur votre fichier (merci encore pour celui ci, ça m'est bien utile pour apprendre). Cela me sera peut-être utile pour construire mon premier formulaire dans la bdd.

    Dans F_Journal, après choix d'une date dans Date_Journal, la colonne du champ Date_Jour (de F_Journal_SF) reste vide lorsqu'on saisit des températures d'une ville. Serait-il possible de la supprimer complétement (le choix de Date_Journal suffirait) ? ou alors de lui faire afficher la date choisie dans Date_Journal ? J'ai l'impression que cette zone de texte est vérouillée car affichée en grisée en mode création. J'ai essayé de le changer la propriété "visible" entre oui/non mais ça ne change rien, ni dans F_Journal ni dans F_Journal_SF.

    J'ai une deuxième question plus générale sur la stratégie à adopter. Je souhaite donc construire une bdd et cet exemple de formulaire de saisie de températures en est la toute première étape. Y a t-il un avantage particulier ou une certaine praticité (outre la rapidité) à construire ce premier formulaire à l'aide d'un sous-formulaire (créé avec une requête) et la fonction champ père/fils ? En effet qu'en serait-il de ne travailler qu'avec des zones de texte indépendantes, qui pourraient afficher l'ensemble des villes d'un pays sélectionné grâce à la fonction RechDom, et de récupérer les températures saisies grâce à une requête ajout vers la table T_Journal ? Je n'arrive toujours pas à réaliser cette deuxième option, ni à faire fonctionner la fonction rechdom (sic).... mais j'y vois l'avantage d'une plus grande liberté en terme de mise en page, le visuel du sous formulaire F_Journal_SF est fixé d'avance dans la première option, et aussi de pouvoir travailler avec moins de code VBA (ça ne me déplait pas du tout, mais étant novice, déjà de comprendre celui de votre fichier ne sera pas une mince affaire...).

    merci d'avance, bonne journée

  9. #9
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17,

    Dans F_Journal, après choix d'une date dans Date_Journal, la colonne du champ Date_Jour (de F_Journal_SF) reste vide lorsqu'on saisit des températures d'une ville.
    Est-ce que vous avez activé le code. Quand on importe un fichier Access a partir d'internet, celui-ci est verrouillé.

    Nom : Débloquer.png
Affichages : 131
Taille : 41,2 Ko

    Idéalement il faut mettre ce fichier dans un endroit approuvé pour que vous n'ayez pas le message à chaque ouverture de la base.

    Nom : Débloquer2.png
Affichages : 123
Taille : 32,0 Ko

    Si vous cliquez "Activez le contenu" le code va fonctionner et la date sera inscrite automatiquement selon la date dans le formulaire principal.

    Serait-il possible de la supprimer complétement (le choix de Date_Journal suffirait) ? ou alors de lui faire afficher la date choisie dans Date_Journal ?
    Il ne faut pas supprimer la date, c'est la base du système. Parce que vous vouliez un affichage genre "Excel" et pas de formulaire/sous-formulaire il a fallu jouer un peu avec les requêtes pour que celles-ci affichent la liste de toutes les villes associées à un pays pour une date choisi. Cependant si vous regardez dans la table "T_Journal" vous remarquez que seul les villes qui ont une date et une température apparaissent. Ainsi pour le 2023-10-20 il y a seulement Marseille de saisi même si dans le formulaire on voit les autres villes. La date dans le formulaire principale n'existe pas, elle est là juste pour filtrer le sous formulaire. Si vous regarder la table "T_Journal" chaque ligne de cette table doit avoir au minimum le champ [ID_JOUR], [ID_VILLE_FK] et [Date_Jour] de saisie, les nulls sont interdits et c'est voulu.

    Le code suivant se charge d'inscrire la date dans le champ [Date_Jour]:
    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
    Option Compare Database
    Option Explicit
     
    Private Sub MaJDate_Jour()
    On Error GoTo gestion_err
     
        If IsNull(Me.Date_Jour) Then: Me.Date_Jour = Me.Parent.Date_Journal
     
    Sortie:
    Exit Sub
    gestion_err:
        fuErr_Handler "MaJDate_Jour", "F_Journal_SF"
        Resume Sortie
    End Sub
    Private Sub Temp_Max_AfterUpdate()
    MaJDate_Jour
    End Sub
    Private Sub Temp_Min_AfterUpdate()
    MaJDate_Jour
    End Sub
    Y a t-il un avantage particulier ou une certaine praticité (outre la rapidité) à construire ce premier formulaire à l'aide d'un sous-formulaire (créé avec une requête) et la fonction champ père/fils ?
    Oui tout un avantage, c'est Access qui fait tout le travail de liaison entre le formulaire père et le formulaire fils. De plus les données sont automatiquement enregistrées dans la table concernée sans aucune intervention de votre part.

    En effet qu'en serait-il de ne travailler qu'avec des zones de texte indépendantes, qui pourraient afficher l'ensemble des villes d'un pays sélectionné grâce à la fonction RechDom
    Vous vous répondez vous même en disant que vous êtes novice en VBA. Un tel formulaire doit être alimenté 100% en VBA. Une zone de texte indépendantes comme son nom l'indique est indépendante.

    et de récupérer les températures saisies grâce à une requête ajout vers la table T_Journal
    Une fois que vous avez alimenté vos zones de texte, qui soit dit en passant seront fixes (si vous augmentez le nombre de villes vous devrez modifier le formulaire), vous devrez récupérer l'information de ces zones pour les inscrire dans la table. Comme vos zones sont indépendantes, ça ne se fait pas tout seul.

    mais j'y vois l'avantage d'une plus grande liberté en terme de mise en page, le visuel du sous formulaire F_Journal_SF est fixé d'avance dans la première option
    Ici je ne suis pas certain de comprendre cette remarque. Le sous-formulaire va afficher le nombre de lignes nécessaires pour le nombre de villes du pays sélectionné.

    et aussi de pouvoir travailler avec moins de code VBA
    Ici c'est tout l'inverse, vous allez avoir beaucoup plus de code puisque vous devrez remplacer les automations d'Access.

    Bonne journée

  10. #10
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    Citation Envoyé par Robert1957 Voir le message
    Si vous cliquez "Activez le contenu" le code va fonctionner et la date sera inscrite automatiquement selon la date dans le formulaire principal.
    En effet je pense avoir déjà activé le code et enregistré une copie locale. Dans "F_Journal", Je constate que la date du sous-formulaire s'affiche (="Date_Journal") seulement quand on a saisi une première température. Est ce bien le fonctionnement normal de votre code ? Si oui, peut-on faire en sorte que la date du sous-formulaire s'affiche directement après sélection d'une date dans "Date_Journal" ? avant d'avoir saisi une première temp ?

    Je ne comprends pas pourquoi le champ "Date_Jour" du sous-formulaire doit obligatoirement être affiché. Ne peut-on pas faire un champ père="Date_Journal"/ champ fils ="Date_Jour" et supprimer l'affichage de Date_Jour dans le SF ?
    Le champ "ID_PAYS_FK" lui est bien masqué dans le SF. D'ailleurs je ne comprends pas comment il est masqué car dans ses propriétés on lit Visible=oui. Et pourquoi il s'affiche en zone de texte dans le SF en mode création ? et non pas liste déroulante.

    Citation Envoyé par Robert1957 Voir le message
    Oui tout un avantage, c'est Access qui fait tout le travail de liaison entre le formulaire père et le formulaire fils. De plus les données sont automatiquement enregistrées dans la table concernée sans aucune intervention de votre part.
    Okay, je comprends bien l'avantage y compris en terme d'économie de code.


    Autre question : peut-on dans "F_Journal" insérer un bouton "Enregistrer" qui commande l'enregistrement des données saisies (si celles ci sont valides) dans "T_Journal" ? de façon à ce que ce ne soit pas seulement commander par la pression de Tab.

  11. #11
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17,

    Je constate que la date du sous-formulaire s'affiche (="Date_Journal") seulement quand on a saisi une première température. Est ce bien le fonctionnement normal de votre code ?
    Oui c'est le fonctionnement normal.

    Si oui, peut-on faire en sorte que la date du sous-formulaire s'affiche directement après sélection d'une date dans "Date_Journal" ? avant d'avoir saisi une première temp ?
    Non, cela créerait des lignes vides dans la table dans le cas où il n'y aurait pas de saisi de température. Une base de données n'est pas un fichier Excel, il n'y a pas lieu d'avoir des enregistrements vides. Si on inscrit la date vous allez vous retrouver avec, comme dans l'exemple, 5 lignes pour les villes de France pour chaque date sélectionnée avec des lignes qui on des températures ou pas, ce qui n'est pas nécessaire.

    Je ne comprends pas pourquoi le champ "Date_Jour" du sous-formulaire doit obligatoirement être affiché. Ne peut-on pas faire un champ père="Date_Journal"/ champ fils ="Date_Jour" et supprimer l'affichage de Date_Jour dans le SF ?
    Si on agissait ainsi, le sous-formulaire afficherait selon le pays choisi seulement les villes ayant un "ID_PAYS_FK" égale au pays sélectionné dans la liste déroulante ainsi qu'une date égale à la date choisi dans le formulaire père. On pourrait mettre le champ "Date_Jour" invisible si c'est que vous voulez mais on ne peut le supprimer.

    Autre question : peut-on dans "F_Journal" insérer un bouton "Enregistrer" qui commande l'enregistrement des données saisies (si celles ci sont valides) dans "T_Journal" ? de façon à ce que ce ne soit pas seulement commander par la pression de Tab.
    Non l'enregistrement se fait automatiquement. Ce qui est un énorme plus d'Access est aussi un moins. Dès que vous avez un formulaire ou sous-formulaire lié à une table ou une requête et que vous avez au sein de ce formulaire des champs liés (non indépendant) dès que vous saisissez des données au moment de quitter le champ elles sont automatiquement enregistrées dans la table.

    Bonne journée

  12. #12
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Oui en effet à propos de "Date_Jour" je souhaiterais seulement le masquer (et non pas le supprimer, sans quoi cela ne fonctionnerait point).

    A propos d'un bouton enregistrement, je comprends que ce qui est saisit est directement enregistrer dans la table. Le cas échéant ne peut on pas mettre un bouton qui "valide" fictivement la saisie en effaçant par exemple le SF pour pouvoir saisir les températures d'un autre pays ? Ce serait dans le but de rendre la saisie un peu plus claire à des gens qui ont l'habitude de travailler sous Excel. Car dans F_Journal en l'état, une fois saisies les temp d'un pays, c'est pas intuitif pour un novice de comprendre que la saisie est bien effective. Bien sûr cela peut s'expliquer, mais je préfèrerait marquer la fin de la saisie par un bouton qui efface le SF.

    Dans F_Journal, dans le sous formulaire, apparait le champ "ID_PAYS_FK". Pourquoi est ce une zone de texte et non pas une liste déroulante comme cela est le cas dans la requête R_Journal_SF ? Et pourquoi est il masqué alors que sa propriété Visible est sur oui ?

    Merci

  13. #13
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17,

    c'est pas intuitif pour un novice de comprendre que la saisie est bien effective. Bien sûr cela peut s'expliquer, mais je préfèrerait marquer la fin de la saisie par un bouton qui efface le SF.
    Vous réalisez qu'en faisant cela vous induisez votre utilisateur en erreur. Si celui-ci saisi des températures pour une mauvaise date il va aller changer la date sans cliquer sur le bouton "Enregistrement" et de ce fait conclure que les températures n'auront pas été enregistrées avec la mauvaise date ce qui est totalement faux. Une explication avec les utilisateurs est de beaucoup supérieur comme politique.

    Dans F_Journal, dans le sous formulaire, apparait le champ "ID_PAYS_FK". Pourquoi est ce une zone de texte et non pas une liste déroulante comme cela est le cas dans la requête R_Journal_SF ?
    Je ne vois pas de liste déroulante dans la requête R_Journal_SF. Il n'est pas nécessaire et contre productif d'afficher une liste déroulante ici. Ce champ est utilisé seulement pour faire le lien avec le pays. Inutile pour l'utilisateur.

    Et pourquoi est il masqué alors que sa propriété Visible est sur oui ?
    Parce que le formulaire est en mode "Feuille de données" et que la colonne est masqué.

    Bonne journée

  14. #14
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17,

    Voici un exemple qui tient compte de vos commentaires dans les posts précédents et qui fonctionne avec un formulaire indépendant populé uniquement par du code. Vous allez constatez qu'il faut beaucoup plus de code que dans mon premier exemple, il est cependant plus proche de vos désirs...

    Comme précédemment il faut activer le code.

    Bonne journée
    Fichiers attachés Fichiers attachés

  15. #15
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonjour Robert1957,

    merci pour ce nouveau fichier, c'est exactement ce que je cherchais. Effectivement le code est plus compliqué, je ne sais pas si je choisirai cette option... en tout cas ça marche super bien.

    une question concernant la date : quand je faisais une saisie de températures au 1 Novembre 2023, ça m'enregistrait au 11 Janvier 2023. En modifiant le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Compare Database
    Option Explicit
    
    Public Function FormatDateUs(ByVal vDate As Date) As String
        FormatDateUs = "#" & Format(vDate, "dd-mm-yyyy") & "#"
    End Function
    ça marche comme il faut. Pourquoi avez vous inséré ce code concernant la date ?

    Peux t on adapter des boutons similaires (enregistrer et annuler) sur le premier ficher (avec le sous formulaire) ?

    Merci

  16. #16
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17,

    une question concernant la date : quand je faisais une saisie de températures au 1 Novembre 2023, ça m'enregistrait au 11 Janvier 2023. En modifiant le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        FormatDateUs = "#" & Format(vDate, "dd-mm-yyyy") & "#"
    ça marche comme il faut. Pourquoi avez vous inséré ce code concernant la date ?
    Vous avez l'impression que ça fonctionne, mais ça ne fonctionne pas du tout. À chaque fois qu'on utilise une instruction SQL en VBA il faut présenter la date au format US qui est mois/jour/année. La partie du code qui causait l'erreur était dans la sub ModifierOuAjouterInfoDansTable dans le rst.AddNew qui lui n'est pas une instruction SQL. Cependant à chaque fois que vous allez sur une date qui possède déjà des enregistrements vous remarquerez que les enregistrements ne sont pas affichés et c'est causé par votre modification.

    Je vous joints le fichier corrigé.

    Peux t on adapter des boutons similaires (enregistrer et annuler) sur le premier ficher (avec le sous formulaire) ?
    Non ce n'est pas possible, comme expliqué dans le post # 11 l'enregistrement se fait automatiquement.

    Bonne journée
    Fichiers attachés Fichiers attachés

  17. #17
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonjour Robert,
    merci pour la v2 qui m'a l'air de fonctionner très bien.
    Je suis dans le doute quand à choisir l'option 1 avec sous formulaire et moins de code ou l'option 2 avec plus de code... sachant que ce sera pour un usage professionel et que je vais devoir construire encore pas mal d'objets autour de ça. Donc je devrais bien maitriser tout ce que j'utilise. D'un côté je me dis que quitte à mettre le nez dans le code de l'option 1, autant pousser pour comprendre le code de l'option 2 et avoir un visuel plus attrayant...
    Avez vous des conseils sur des tutos/cours particuliers pour apprendre le VBA Access, comme VBA Access for dummies ?

    Quand on affiche les Relations dans ModifierPrésentationVBA_V2, quels sont ces tables ou requetes qui commencent par MSysNavPaneGroup ? A quoi servent elles en court ?

    Dans ModifierPrésentationVBA_V2 l'affichage de la bdd est par fenêtre et non pas par onglets comme dans vos fichiers précédents, comment modifie t on cet affichage ?

    Merci

  18. #18
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17,

    Avez vous des conseils sur des tutos/cours particuliers pour apprendre le VBA Access, comme VBA Access for dummies ?
    Vous avez cela juste ICI et aussi ICI. Il y en a beaucoup sur le web et si vous comprenez l'anglais il y en a encore plus.

    Quand on affiche les Relations dans ModifierPrésentationVBA_V2, quels sont ces tables ou requetes qui commencent par MSysNavPaneGroup ? A quoi servent elles en court ?
    Ce sont des tables systèmes d'Access.

    Dans ModifierPrésentationVBA_V2 l'affichage de la bdd est par fenêtre et non pas par onglets comme dans vos fichiers précédents, comment modifie t on cet affichage ?
    Dans Fichier/Options/Base de données active/Option de la fenêtre de document

    Bonne journée

  19. #19
    Membre à l'essai
    Homme Profil pro
    agent
    Inscrit en
    Septembre 2023
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : agent

    Informations forums :
    Inscription : Septembre 2023
    Messages : 24
    Points : 11
    Points
    11
    Par défaut
    Bonjour Robert,

    merci pour ces infos.
    J'ai suivi pour l'instant l'option 1 basé sur votre fichier "ModifierPrésentation".
    J'ai un problème avec mon formulaire que je n'arrive vraiment pas à solutionner : j'ai tout construit comme dans votre fichier, mais quand mon curseur arrive sur le sous-formulaire : impossible de rentrer une donnée de température, le clavier n'a aucun effet. Pourtant tous les paramètres des objets du fichier semblent être les mêmes... j'ai aussi adapté le code VBA à mes noms d'objets.

    Merci d'avance

  20. #20
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 874
    Points : 3 461
    Points
    3 461
    Par défaut
    Bonjour bluewhale17,

    Sans avoir votre fichier, vous donner une réponse serait de la "voyance" puisque vous dites
    j'ai tout construit comme dans votre fichier,
    et mon fichier fonctionne...

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Formulaire a choix multiples avec radioboutons et 1 listbox
    Par lcoulon dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 02/05/2012, 16h20
  2. [AC-2010] formulaire et choix multiple
    Par Sierra dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/11/2010, 23h19
  3. formulaire latex: choix multiple
    Par resaju dans le forum Programmation (La)TeX avancée
    Réponses: 0
    Dernier message: 31/05/2010, 09h41
  4. formulaire a choix multiple
    Par CyoEad dans le forum IHM
    Réponses: 2
    Dernier message: 20/03/2008, 08h51
  5. création formulaire , quel choix ?
    Par pat1545 dans le forum Access
    Réponses: 15
    Dernier message: 24/07/2006, 19h20

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