Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 17h27   #1
Invité régulier
 
Femme
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 8
Points : 8
Par défaut Alimenter table avec zone de texte liée

Bonjour,

Je fais appel à vos lumières car là je coince.

J'ai 2 tables :[Liste_Auteurs][Liste_Livres]

Dans ma table[Liste_Auteurs], j'ai un champs [Nom_Auteur], et un champs [Ref_Auteur] avec numérotation automatique. J'ai également ce même champs dans ma table[Liste_Livres], mais en texte.

J'ai un formulaire [F_Créer_Fiche] dans lequel j'ai plusieurs zones de textes que je remplis, et qui me permettent d'alimenter ma table[Liste_Livres], via un bouton "Sauvegarder".
J'aurais besoin d'avoir une zone de texte [ZDT_Ref_Auteur] qui soit alimentée automatiquement (via la table[Liste_Auteurs] en fonction de la sélection du nom de l'auteur dans une zone de liste. Mais surtout, j'aurais besoin que lorsque je valide mon formulaire, cette référence s'ajoute dans le champs [Ref_Auteur] de ma table[Liste_Livres].

J'arrive bien à afficher ma réf auteur dans ma zone de texte en mettant ceci (=[ZDL_Auteur].[column](1)), ZDL_Auteur correspondant au nom de l'auteur, mais je n'arrive pas à faire le lien avec le champs de ma table pour que l'info s'enregistre dans ma table.

J'espère avoir été claire, car ce n'est pas simple à expliquer.

N'hésitez pas à me demander des précisions, en tenant compte du fait que je suis toute nouvelle sur Access .

Merci par avance.
cilia77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 22h04   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonsoir,
Citation:
Envoyé par cilia77 Voir le message
J'ai également ce même champs dans ma table[Liste_Livres], mais en texte.
Ça c'est pas bon.
Il faudrait que le champ soit du même type (Numérique, Entier Long) dans la table[Liste_Livres].

Ça te permettra par la suite, de construire des requêtes en joignant les deux table par ce champ [Ref_Auteur].

Ça devrait aussi simplifier ton formulaire.
Le champ [Ref_Auteur] de la table[Liste_Livres] (source de ton formulaire) peut être utilisé comme source d'un contrôle zone de liste, ce contrôle zone de liste ayant pour contenu une requête sur la table[Liste_Auteur].
Je pense que ça correspond à ton contrôle ZDL_Auteur, sauf qu'il n'est pas lié (la propriété «source contrôle» est vide).

Au passage, un contrôle dont la source est une expression commençant par égal (=) est indépendant.
Il ne peut pas alimenter un champ de la source du formulaire.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/06/2011, 22h58   #3
Invité régulier
 
Femme
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 8
Points : 8
Bonsoir,

Merci pour ta réponse.

Ce n'est malheureusement encore pas si évident pour moi . Je voyais bien que le format de mon champs [ref_auteur] allait poser problème, mais je ne voyais pas quoi mettre. Déjà un problème de réglé .

Pour le reste, je n'arrive pas à construire une requête qui m'affiche le résultat souhaité dans mon formulaire.

Précision :
Mon contrôle ZDL_Auteur a bien une source, qui est le champs Nom_Auteur de ma table[Liste_Auteurs].

Je me re-pencherai sur la question demain. Tout est mélangé dans ma tête pour le moment.

Merci encore pour la réponse.
cilia77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 17h51   #4
Invité régulier
 
Femme
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 8
Points : 8
Bonjour,

Après avoir passé l'après-midi sur ma base, je reviens vers vous, un peu désespérée...

1/ J'ai bien modifié le format de mon champs [Ref_AUteur] dans ma table[Liste_Livres]

2/ Ce que je voudrais, concrètement, c'est que lorsque je sélectionne un auteur dans ma zone de liste [ZDL_Nom_Auteur], ça m'indique dans une zone de texte la ref de cet auteur. Cette zone de texte serait masquée dans le formulaire. Elle servirait juste à alimenter ma table[Liste_Livres].

J'ai donc mis [Ref_Auteur] en source contrôle de ma [ZDT_Ref_Auteur] pour que le champs de ma table soit alimenté avec cette donnée. Mais je ne sais pas où mettre une requête pour que cette donnée se mette à jour dans ce contrôle.

3/ Led ZeppII m'a dit : "Le champ [Ref_Auteur] de la table[Liste_Livres] (source de ton formulaire) peut être utilisé comme source d'un contrôle zone de liste, ce contrôle zone de liste ayant pour contenu une requête sur la table[Liste_Auteur].
Je pense que ça correspond à ton contrôle ZDL_Auteur, sauf qu'il n'est pas lié (la propriété «source contrôle» est vide)."

--> J'ai donc tenté avec une zone de liste, mais j'ai la liste de toutes mes ref auteur, avec leurs noms qui se met dedans. Elle ne se met pas à jour en fonction de la sélection de mon auteur. Et puis ça ne me plaît pas trop, parce que ça obligerait à sélectionner le n° de la ref qui je pense pourrait se mettre automatiquement avec une zone de texte.

Merci par avance pour vos conseils.
cilia77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 19h15   #5
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Tu n'as pas besoin de stocker le nom de l'auteur dans la table[Liste_Livres].
Il faut juste stocker [Ref_Auteur] dans la table[Liste_Livres].

Les zones de listes permettent de lier un champ et d'en afficher un autre.
Ce que tu peux faire avec ta zone de liste [ZDL_Nom_Auteur] :

Dans l'onglet «Données» ...
Propriété Source contrôle : Ref_Auteur
Propriété contenu : SELECT [Ref_Auteur], [Nom_Auteur] FROM[Liste_Auteurs] ORDER BY [Nom_Auteur]
Propriété Origine Source : Table/Requête
Propriété Colonne liée : 1

Dans l'onglet «Format» ...
Propriété Nbre colonnes : 2
Propriété Largeurs colonnes : 0cm ( largeur première colonne = 0 => elle est masquée)

La colonne 1 est le champ [Ref_Auteur] de la table[Liste_Auteurs].
La colonne liée est la colonne 1. Sa valeur sera donc copiée dans la source du contrôle, c.à.d le champ [Ref_Auteur] de la table[Liste_Livres].
Comme la largeur de la première colonne est définie à 0cm, elle est masquée.
Du coup, le contrôle afficher la colonne suivant, soit le champ [Nom_Auteur].
En résumé, la zone de liste affiche le nom de l'auteur, mais stocke dans la table le numéro de référence (la clé) de l'auteur.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 20h13   #6
Invité régulier
 
Femme
Inscription : juin 2011
Messages : 14
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations forums :
Inscription : juin 2011
Messages : 14
Points : 8
Points : 8
MERCI !!! Ca marche.

Et je crois même avoir compris le raisonnement...
cilia77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2011, 20h24   #7
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 939
Points : 6 278
Points : 6 278


Cette pratique est largement utilisée dans Access.
Y compris dans les tables elle-mêmes.
Par exemple, si tu ouvres ta table Liste_Livres en mode création et que tu te positionnes sur le champ Ref_Auteur,
tu as deux onglets (Général et Liste de choix).
Dans l'onglet liste de choix tu peux définir comment Access affiche le champ lorsque tu ouvres la table en mode feuille de données.
Si tu sélectionnes «Zone de liste déroulante» tu retrouves les propriétés Origine Source, Contenu, Colonne liée, Nbre colonnes et largeur colonnes.
Tu peux appliquer la même chose que ce que tu fais au niveau de la zone de liste de ton formulaire.
C'est à dire, faire afficher le nom de l'auteur dans le champ Ref_Auteur, tout en stockant la valeur Ref_Auteur venant de la table Liste_Auteurs.

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h01.


 
 
 
 
Partenaires

Hébergement Web