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 :

transmission variable formulaire access


Sujet :

IHM

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut transmission variable formulaire access
    Bonjour à toutes et tous,

    j'ai donc créer mes tables, établi les relations, réussi à importer les données depuis excel et me retrouve donc avec un ensemble de données mais n'en reste pas moins débutant sous access
    j'ai commencé à créer un formulaire sous access d'affichage qui va me récupérer une liste dans la base

    a coté celle -ci j'ai mis un bouton qui lance un autre formulaire toujours sous access mais je voudrais savoir comment procéder afin que la valeur sélectionnée serve de référence pour l'autre formulaire..
    en gros comment transmettre la variable entre userform d'access...


    merci par avance

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    bonjour,
    2 possibilités:
    - le formulaire appelant reste ouvert, les données restent accessibles, il suffit de faire référence au contrôle du formulaire par cette syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaVariable = Forms.NomduFormulaire.NomduControle
    - le formulaire appelant est fermé après l'ouverture du formulaire appelé, il suffit de passer la valeur du contrôle par le paramètre OpenArgs de la commande OpenForm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm FormName:="NomduFormulaire", OpenArgs:=Me.Controle.Value
    :
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    merci à vous pour votre retour.

    je viens de tester:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Consult_click()
    Dim Acronym As String
    DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Dashboard.Acronym.Value
    End Sub

    cela me donne néanmoins un code erreur:
    Objet requis..

    si j'utilise l'autre code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Consult_click()
    Dim Acronym As String
    Acronym = Forms.Dashboard.Acronym
    'DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Dashboard.Acronym.Value
    End Sub

    ca me dit utilisation incorrecte de null


    j'ai un formulaire dénommé Dashboard dans laquel j'ai une liste déroulante récupérant via un select les noms des projets d'une base projets
    a coté ce cette liste j'ai un bouton sur lequel je clic pouvoir accéder à cette macro

    j'ai donc également le 2ème formulaire affichant dans une première page les détails des projets
    je voudrais donc que le 2ème formulaire puisse ensuite m'afficher le détail propre à la sélection.

    ps: cette liste déroulante s'appelle bien Acronym et dans le 2ème formulaire il y a bien un champ acronym également mais ne sait pas comment lier les deux..

    sous excel je ferais simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub UserForm_Activate()
     
    Acronym = Sheets("DashBoard").Range("blabla")

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 345
    Points : 23 805
    Points
    23 805
    Par défaut
    Bonjour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Acronym = Nz(Forms.Dashboard.Acronym, "")
    Quand tu es en VBA et que tu as défini un type spécifique, VBA vérifie que les données correspondent au type.
    Dans une cellule Excel, il n'y a pas vraiment de type donc il accepte n'importe quoi, c'est pratique mais cela a aussi des défauts.
    Note que tu peux obtenir le même résultat avec le type Variant même si il est recommandé de limiter le Type Variant au minimum.
    Si tu sais ce que tu attends comme type, tu définis la variable dans ce type et tu mets du code pour gérer la conversion.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    je viens de tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Consult_click()
    Dim Acronym As String
    DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Dashboard.Acronym.Value
    cela me donne néanmoins un code erreur:
    Objet requis..
    si tu avais au moins respecté la syntaxe, cela aurait évité l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'DoCmd.OpenForm FormName:="NomduFormulaire", OpenArgs:=Me.Controle.Value
    ' cela donne:
    DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Me.Acronym.Value
    ' ou encore celles-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Forms.Dashboard.Acronym.Value
     
    DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Form_Dashboard.Acronym.Value
     
    DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Forms.[Dashboard].Acronym.Value
     
    DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Forms("Dashboard").Acronym.Value
    'etc ... parce que Value n'est pas indispensable puisque c'est la propriété par défaut:
    DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Me.Acronym
    si j'utilise l'autre code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Consult_click()
    Dim Acronym As String
    Acronym = Forms.Dashboard.Acronym
    'DoCmd.OpenForm FormName:="ConsultandUpdate", OpenArgs:=Dashboard.Acronym.Value
    End Sub
    ca me dit utilisation incorrecte de null
    Cela voudrait dire que Forms.Dashboard.Acronym n'est pas valorisé, d'où le message d'erreur puisqu'une variable de type String ne peut pas contenir de nul (voir l'explication de marot_r). Mais j'aurais peut-être dû préciser que ce code est un exemple et est à utiliser dans le formulaire appelé (ConsultandUpdate).
    je voudrais donc que le 2ème formulaire puisse ensuite m'afficher le détail propre à la sélection.
    si c'est pour ouvrir le formulaire sur un code précis, il faut utiliser le paramètre WhereCondition qui va filtrer la sélection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Acronym='" & Me.Acronym & "'"
    mais auparavant il faudrait connaitre la raison pour laquelle Acronym renvoie une valeur nulle ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    Merci à vous deux pour toutes ces précisions
    je dois bien avouer me sentir un peu couillon sur ce coup!


    j'ai beau tester mais n'y arrives pas. Aussi je vais essayer de détailler car pas sur d'avoir bien exposé mon soucis

    j'ai une base projets contenant un id , acronyme (format texte court) et d'autres champs.

    dans le formulaire dashboard j'ai un champ indépendent dénommé Acronym dont le contenu est un select
    le select récupère bien les acronymes des projets ainsi que l'id.
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Projects].[Id_Project], [Projects].[Acronym] FROM Projects ORDER BY [Acronym];

    aussi le champ n'est pas vide quand je lance la macro.
    mais peut etre que la variable à transférer n'est pas acronyme mais id au passage... mais sachant que le select récupère les deux id et acronyme on devrait avoir l'information comme en php...

    dans mon autre formulaire et dans le premier onglet (page1) je souhaiterais afficher le détail propre à chaque projet. (formulaire généré par access lui même jusqu'ici.
    ce formulaire en mode création me montre bien qu'il récupère les informations des différents projets car les listes correctement dans les bons champs et qui plus est je peux changer de projets

    mon objectif étant de lister uniquement les informations du projet portant l'acronyme ou plus spécifiquement l'id lui étant propre (sait on jamais si a terme deux projets pouvant avoir le même acronyme)

    cependant je ne sais pas du tout comment access procède. faut il lui renseigner l'id pour afficher le reste ? ou un autre champ lui suffit
    ca se trouve je fais fausse route depuis le début et ma demande est erronée auquel cas j'en suis désolé.

    merci à vous de me soutenir dans mes premiers pas sous access

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    j'ai une base projets contenant un id , acronyme (format texte court) et d'autres champs.
    on parle de table pas de base, une base contient un ensemble d'objets dont des tables. Tu n'as qu'une seule table ?
    aussi le champ n'est pas vide quand je lance la macro.
    mais peut etre que la variable à transférer n'est pas acronyme mais id au passage... mais sachant que le select récupère les deux id et acronyme on devrait avoir l'information comme en php...
    Le champ peut être vide si tu n'as pas fait de sélection, d'ailleurs, plutôt qu'utiliser un bouton, il est d'usage de lancer l'ouverture d'un formulaire directement sur l'évènement clic (ou après mise à jour) d'une liste déroulante, cela évite les erreurs liées à une valeur nulle puisqu'une sélection est forcément faite.
    Si le formulaire à ouvrir est basé sur la même table, il faut utiliser Id:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Id=" & Me.Acronym
    Si c'est Acronym, il faut utiliser la colonne 2 de la liste déroulante (qui est numéroté 1 puisque l'index démarre à 0):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Acronym='" & Me.Acronym.column(1) & "'"
    cependant je ne sais pas du tout comment access procède. faut il lui renseigner l'id pour afficher le reste ? ou un autre champ lui suffit
    l'informatique est une science exacte: si tu as stocké Id, tu filtres avec Id et pas avec autre chose ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    Bonjour tee_grandbois,

    on parle de table pas de base, une base contient un ensemble d'objets dont des tables. Tu n'as qu'une seule table ?
    Oui bonne remarque, erreur de langage. J'ai effectivement plusieurs tables mais la pire c'est qu'ici tout lié à la même

    Nom : Capture.JPG
Affichages : 848
Taille : 64,2 Ko
    voici une copie d'écran de mes tables à ce jour même si tout n'est pas encore finalisé


    Le champ peut être vide si tu n'as pas fait de sélection,
    oui c'est juste mais
    1) le select récupère la liste et je n'ai pas prevu de champ vide... donc un projet est toujours sélectionné
    2) lors de tous mes tests, il est bien évident que je sélectionnais un projet dans tous les cas

    il est d'usage de lancer l'ouverture d'un formulaire directement sur l'évènement clic
    ok mais dans ce cas il me faudrait ajouter un vide avant le select

    Si le formulaire à ouvrir est basé sur la même table, il faut utiliser Id:
    c'est bien ce que je commençais à me rendre compte hier et assez logique, un peu bête de ma part...
    Si c'est Acronym, il faut utiliser la colonne 2 de la liste déroulante (qui est numéroté 1 puisque l'index démarre à 0):
    c'était donc bien un array comme je pensais hier merci pour la confirmation
    je confirme par ailleurs que c'est bien la même table (voir fichier capture joint)

    je regarde bien vos codes et a priori c'est votre deuxième code à tester
    en effet id= n'est pas égale a acronyme

    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Acronym='" & Me.Acronym.column(1) & "'"
    j'ai donc testé et ca lance le formulaire mais tout le form est à 0 et rien n'est rempli...
    j'ai donc tenté autre chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Id='" & Me.Acronym.Column(0) & "'"
    car id = array du select en premier critère mais alors ca le sort une fenetre demandant de specifier l'id

    mais un truc m'inquiète si je fais un simple: MsgBox (Acronym), ça me rend un truc vide...
    c'est comme si cela n'envoyait tout simplement rien

    mais progrès si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Acronym_AfterUpdate()
    MsgBox (Acronym)
    End Sub
    ca m'envoit bien l'id

    Dans tous les cas merci à vous pour votre aide, grandement appréciable

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    bonjour,
    le select récupère la liste et je n'ai pas prevu de champ vide... donc un projet est toujours sélectionné
    il est d'usage de lancer l'ouverture d'un formulaire directement sur l'évènement clic
    ok mais dans ce cas il me faudrait ajouter un vide avant le select

    mais un truc m'inquiete si je fais un simple: MsgBox (Acronym). ca me rend un truc vide...
    c'est comme si cela n'envoyait tout simplement rien
    je crois que tu n'as pas compris ce que je voulais dire: une liste déroulante est vide si on n'a pas encore fait de choix (une sélection avec un clic) à l'ouverture du formulaire, c'est la valeur qui est vide pas la liste (propriété Contenu, avec la requête Select ...)
    Comme c'est sur l'évènement Consult_click() que le formulaire ConsultandUpdate sera ouvert: cela veut dire qu'il faut faire un choix au préalable dans la liste déroulante Acronym.

    j'ai donc tenté autre chose: DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Id='" & Me.Acronym.Column(0) & "'"
    car id = array du select en premier critère
    solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Id=" & Me.Acronym.Column(0) 
    'ou 
    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Id=" & Me.Acronym
    c'est pareil du moment qu'on enlève les apostrophes puisque Id est numérique (cf mon post #7)
    mais alors ca le sort une fenetre demandant de specifier l'id
    est-ce que champ Id est bien présent dans le formulaire ConsultandUpdate ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    merci pour votre retour

    effectivement je n'avais pas saisi la nuance mais dans tous les cas je faisais bien une sélection au préalable

    concernant votre dernière question, le formulaire à été généré automatiquement par access et il n’apparaît pas!!! bien que je pense qu'access l'a en compte afin d'afficher les données..

    Nom : Capture2.JPG
Affichages : 805
Taille : 70,2 Ko

    mais à la vue de votre question j'ai peur que cela ne soit pas le cas. aussi est ce la valeur acronyme à transférer et non l'id???

    merci à vous pour ce problème basique de débutant sous access

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    concernant votre dernière question, le formulaire à été généré automatiquement par access et il n’apparaît pas!!! bien que je pense qu'access l'a en compte afin d'afficher les données..
    est-ce que Id fait au moins partie de la liste des champs ? Vérifier en cliquant sur l'icône du ruban "Ajouter des champs existants" :
    Nom : frm_ListeChamps.JPG
Affichages : 816
Taille : 17,6 Ko
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    merci à nouveau pour votre retour.
    En effet je découvre ce bouton et vois que l'id ne figure pas dans la liste.

    aussi me faut il simplement ajouter un champ id que je cacherai??

    car l'id de base est bien transmis car si je test un simple msgbox d'acronyme cela me retourne bien l'id...

    si j'utilisais l'acronyme ici cela ne me suffirait pas à l'avenir du fait que c'est l'id du projet qui fera les liaisons avec autres tables.

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    En effet je découvre ce bouton et vois que l'id ne figure pas dans la liste.
    la source du formulaire est-elle une requête ou une table ?
    Si c'est une table, c'est gênant car cela veut dire que le champ n'existe pas. Si c'est une requête, on peut ajouter le champ.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    En ce qui concerne le formulaire lui même je ne sais pas comment Access procède.
    A priori le formulaire généré se base sur la table mais l'id est bien dans la table en question. et cet id est un champ automatique par ailleurs
    En effet quand je suis sur le formulaire en mode création aucun select n'est visible comme source de données.

    je viens d'ajouter le champ id manuellement car non ajouté automatiquement par Access
    Nom : Capture3.JPG
Affichages : 785
Taille : 25,9 Ko


    mais je dois bien avouer tout en rond
    Me.Acronym.Column(0) me renvoie bien l'id du projet de l'autre form quand je clic sur le projet
    mais quand ça tente d'ouvrir j'ai désormais un autre soucis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Id_Project='" & Me.Acronym.Column(0) & "'"
    type de données incompatible dans l'expression du critère


    mais au delà de ça je me demande désormais comment Access va comprendre d'aller chercher le reste des ces données via cet id
    ne faudrait il tout simplement pas que je génère tout le formulaire à la main plus que laisser faire Access?

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    bonjour,
    DoCmd.OpenForm FormName:="ConsultandUpdate", WhereCondition:="Id_Project='" & Me.Acronym.Column(0) & "'"
    type de données incompatible dans l'expression du critère
    j'ai déjà répondu 2 fois pour ce souci: il faut enlever les apostrophes puisque Id est numérique (posts #7 et #9)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     WhereCondition:="Id_Project=" & Me.Acronym.Column(0)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    Merci pour votre réactivité

    je vous prie de m'excusez par deux fois dans ce cas, je tournais tellement en rond que je n'avais pas pris le temps de relire avant.

    cela semble fonctionner désormais.


    mais pour bien comprendre la distinction avec le bouton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub consult_click()
    MsgBox (Form_Dashboard.Acronym.Value)
    End Sub
    pourquoi ce code ne renvoi-t-il pas la valeur associée au champ?


    par ailleurs autre demande concernant cette fois-ci mon deuxième onglet pour lister les Work-packages
    de base le champ a un select comme ceci

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Work-Packages].[Id_WP], [Work-Packages].[WP_Nb], [Work-Packages].[Id_Project], [Work-Packages].[WP_PM], [Work-Packages].[WP_Start_Month], [Work-Packages].[WP_Start_Date], [Work-Packages].[WP_End_Month], [Work-Packages].[WP_End_Date], [Work-Packages].[Status] FROM [Work-Packages]

    il est donc normal de me renvoyer tous les WP sans distinction de projets

    j'ai donc modifié comme ceci afin d'ajouter un where indiquant le projet concerné mais cela continue de tout m'afficher

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Work-Packages].[Id_WP], [Work-Packages].[WP_Nb], [Work-Packages].[Id_Project], [Work-Packages].[WP_PM], [Work-Packages].[WP_Start_Month], [Work-Packages].[WP_Start_Date], [Work-Packages].[WP_End_Month], [Work-Packages].[WP_End_Date], [Work-Packages].[Status] FROM [Work-Packages] WHERE [Work-Packages].[Id_Project] = Id_Project;

    grand merci à vous.

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    mais pour bien comprendre la distinction avec le bouton
    Private Sub consult_click()
    MsgBox (Form_Dashboard.Acronym.Value)
    End Sub

    pourquoi ce code ne renvoi-t-il pas la valeur associée au champ?
    encore une fois, cela ne renvoie une valeur seulement que si on a sélectionné une valeur dans la liste déroulante Acronym
    j'ai donc modifer comme ceci afin d'ajouter un where indquant le projet concerné mais cela continue de tout m'afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Work-Packages].[Id_WP], [Work-Packages].[WP_Nb], [Work-Packages].[Id_Project], [Work-Packages].[WP_PM], [Work-Packages].[WP_Start_Month], [Work-Packages].[WP_Start_Date], [Work-Packages].[WP_End_Month], [Work-Packages].[WP_End_Date], [Work-Packages].[Status] FROM [Work-Packages] WHERE [Work-Packages].[Id_Project] = Id_Project;
    WHERE [Work-Packages].[Id_Project] = Id_Project; la comparaison n'a aucun sens puisque des 2 cotés c'est le même champ donc même valeur.
    Normal, donc, que cela renvoie tous les enregistrements.
    Il faut suffixer le Id_Project de gauche avec le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE [Work-Packages].[Id_Project] = Forms![NomduFormulaire].Id_Project
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    bonjour,

    de nouveau merci à vous pour cette aide.
    cela fonctionne.

    le tableau affiche bien les données mais le tout en colonne pas très esthétique.
    je vais désormais devoir chercher comment pouvoir en changer l'affichage.

    je me rensds compte que si je change de projets sur dashboard uniquement la page 1 du form consult se met à jour
    la deuxieme page ne se remet pas à jour.
    n'est il pas possible que cette 2ème page soit lié à la premiere de sorte a ce que l'id du projet soit le même partout?

    mais j'ai ajouté le même code que précédemment
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Work-Packages].[WP_Nb], [Work-Packages].[WP_Title], [Work-Packages].[WP_PM], [Work-Packages].[WP_Start_Month], [Work-Packages].[WP_Start_Date], [Work-Packages].[WP_End_Month], [Work-Packages].[WP_End_Date], [Work-Packages].[Status] FROM [Work-Packages] WHERE [Work-Packages].[Id_Project] = Forms![ConsultandUpdate].Id_Project;

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 759
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 759
    Points : 14 793
    Points
    14 793
    Par défaut
    trop complexe à expliquer d'autant plus sans connaitre le fonctionnement du formulaire.
    Peux-tu poster une copie de ta base (au format zip) avec 1 enregistrement par table et les données anonymisées ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  20. #20
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Octobre 2014
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Octobre 2014
    Messages : 163
    Points : 39
    Points
    39
    Par défaut
    avec un peu de honte de transmettre cette version encore trop basique du fait de mon expertise dans le logiciel, voici le fichier avec la base dont j'ai retiré toutes les parties trop confidentielles

    j'ai même tenté de transformer ce tableau de Work-packages afin de faire une liste des titres pour ensuite afficher suivant la sélection mais ça bug aussi

    donc merci par avance pour votre indulgence ainsi que pour votre aide
    base test.zip

    ps: je ne suis pas non plus sur des relations de mes tables au demeurant!

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/06/2008, 20h55
  2. Transmission variable vers formulaire
    Par Mat67 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 06/02/2008, 13h55
  3. Transmission variables entre Excel et Access
    Par bybelos33 dans le forum VBA Access
    Réponses: 2
    Dernier message: 19/06/2007, 15h00
  4. Réponses: 8
    Dernier message: 12/07/2006, 17h28
  5. pb transmission de variables formulaire
    Par clairette dans le forum Langage
    Réponses: 6
    Dernier message: 02/06/2006, 08h34

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