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 02/08/2011, 16h14   #1
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 3
Points : 3
Par défaut Zone de texte en fonction d'une liste déroulante

Salut à tous et toutes !

Alors voila, j'ai un problème avec ma base access (sinon je serais pas venu vous embeter d'ailleurs ).

J'ai une table qui possède plusieurs champs. Le premier s'appelle "Project". Les suivants s'appellent date1, meeting1, date2, meeting2 ... jusque 7

Ce que je souhaiterais avoir, c'est lorsque je sélectionne dans une liste déroulante mon project, il m'affiche dans des zones de texte le contenu de date1, meeting 1, date2 ... correspondant à mon choix fait dans la liste. Je souhaiterais aussi pouvoir les modifier une fois qu'ils sont affichés et ainsi enregistrer les modifications.

Je me suis basé sur ce topic :

http://www.developpez.net/forums/d67...e/#post6132611

J'ai donc inscrit cette formule dans le générateur de code :

Code :
1
2
3
4
5
Private Sub Ma_liste_AfterUpdate()
 
Me.ma_zone = Me.Ma_liste.column(1)
 
End Sub
(en l'adaptant à ma sauce : en changeant les noms de la liste déroulante et des zones de texte)

Mais sans grand résultats :

Première chose qui ne fonctionne pas dans ma première zone de texte (date1). L'info correspondant à mon choix fait dans la liste déroulante s'affiche correctement, par contre je ne peux pas le modifier. Enfin je le modifie mais la modif ne s'enregistre pas dans la table.

Deuxième chose, j'ai donc essayé de faire de même avec les autres champs de ma table. Je créé donc une nouvelle zone de texte, dans le générateur de code j'inscrit les même chose qu'un peu plus haut (en adaptant le numero de colonne ainsi que le nom de ma zone de texte) et il me met alors un message d'erreur :

http://imageshack.us/photo/my-images/836/sansreap.jpg/

Donc la ... je sais pas trop comment procédé.

Sinon je crois savoir qu'il y a moyen de fonctionner avec un sous formulaire, mais j'arrive pas à le mettre en application.

Enfin bref, si jamais quelqu'un comprend ce que je veux faire ou veux plus d'infos, pas de soucay !

Merci d'avance
pikayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 16h33   #2
Membre actif
 
Avatar de SeaWolf601
 
Inscription : août 2006
Messages : 239
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 239
Points : 192
Points : 192
Citation:
Envoyé par pikayo Voir le message
... Première chose qui ne fonctionne pas dans ma première zone de texte (date1). L'info correspondant à mon choix fait dans la liste déroulante s'affiche correctement, par contre je ne peux pas le modifier. Enfin je le modifie mais la modif ne s'enregistre pas dans la table...
Hello,

Alors cela devrait normalement s'enregistrer, essaye un Docmd.Requery sur l'evenement AfterUpdate de ta zone de texte.


Citation:
Envoyé par pikayo Voir le message
Deuxième chose, j'ai donc essayé de faire de même avec les autres champs de ma table. Je créé donc une nouvelle zone de texte, dans le générateur de code j'inscrit les même chose qu'un peu plus haut (en adaptant le numero de colonne ainsi que le nom de ma zone de texte) et il me met alors un message d'erreur :
Ta syntaxe devrait être ceci à peu de chose prés.

Zones de texte : Zone1, Zone2 et Zone3
Liste Déroulante : MaListe

Sur l'evennement aprés mise à jour de ta zone de liste déroulante.

Code :
1
2
3
4
5
6
Private Sub MaListe_AfterUpdate()
Me.Zone1 = MaListe
Me.Zone2 = MaListe.column(1)
Me.Zone3 = MaListe.column(2)
Etc...
End Sub
__________________

La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi !

Albert Einstein
SeaWolf601 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 10h23   #3
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 3
Points : 3
Bonjour,

Tout d'abord merci pour ton aide SeaWolf

Alors, le second problème c'est résolu, tout s'affiche correctement dans les différentes zones de texte. (moi je créais à chaque fois un ensemble End sub ... pour chaque zone de texte alors qu'il fallait tout mettre à la suite) Une fois qu'on le sait, c'ets vrai que ça parait évident

Sinon, le premier soucis toujours pareil, la modification ne s'enregistre pas. En mettant le Docmd.Requery dans l'après MAJ de ma zone de texte il me met un message d'erreur lorsque je modifie la valeur de ma zone et appuie sur entrée. Il me dit que la macro n'est pas enregistrée. Et impossible de créer une macro avec ce nom
pikayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 11h57   #4
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Bonjour,

Vous ne pourrez modifier/enregistrer vos données que si :

- les "Source Contrôle" de vos zones de texte correspondent à vos champs, par exemple Source COntrôle Zone 1 = date1 ...

- si vous enregistrez par le code les valeurs attribuées à ces zones de texte dans les champs de l'enregistrement correspondant.

Bcdt
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 12h31   #5
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 3
Points : 3
Bonjour,

- Je pense ne pas arriver à vous suivre. En effet, dans mes zones de texte je n'ai pas définit de source contrôle. La valeur affichée dans ma zone de texte est basé sur le code inscrit. Il y a peut être quelque chose que j'arrive pas à comprendre, je suis pas un pro dans access

-Je vais essayer de trouver une formule permettant de le faire, thank you !
pikayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 15h13   #6
Membre actif
 
Avatar de SeaWolf601
 
Inscription : août 2006
Messages : 239
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 239
Points : 192
Points : 192
Citation:
Envoyé par pikayo Voir le message
En effet, dans mes zones de texte je n'ai pas définit de source contrôle...
Ben justement, si tu veux qu'elle s'enregistre dans ta table, ta zone de texte ne doit pas être indépendante.
__________________

La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi !

Albert Einstein
SeaWolf601 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 15h14   #7
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Pourquoi ne définissez vous pas la Source Controle de vos zones de texte avec vos champs ? C'est la base d'un formulaire classique dans access : votre liste vous permet de trouver l'enregistrement de votre table correspondant à votre choix dans la liste, affiche les données (champs) de cet enregistrement dans vos zones de texte, ces données pouvant être modifiées à volonté.

Vous pouvez utiliser l'assistant pour la création de la zone de liste qui vous fera presque tout !

Bcdt
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h37   #8
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 3
Points : 3
Aïe aïe aïe, désolé, je suis pas une star, loin de la mais mon chef me demande tout de même de faire des choses sous access. Heuresement que vous êtes là, sinon je n'aurais peut être pas mon salaire ce mois ci

Bon, revenons à mes moutons, j'ai envie d'être payer . Dans le source contrôle de ma zone de texte appellée date1, je clique sur le bouton "...". Je tombe donc dans le générateur d'expression, je vais chercher mon champ dans ma table, j'appuie sur entrée, je valide puis enregistre. Mais quand jexecute le formulaire et choisis un project, ça me met une erreur visual basic :

Erreur d'execution '-4551 ... plein de chiffres'

Impossible d'attribuer une valeur à cette objet.

Les champs de ma table et mes zones de textes possèdent le même nom, ça peut peut être avoir un lien ?
pikayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h45   #9
Membre confirmé
 
Homme
Chercheur
Inscription : juin 2011
Messages : 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Tarn (Midi Pyrénées)

Informations professionnelles :
Activité : Chercheur
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : juin 2011
Messages : 150
Points : 231
Points : 231
Je vous conseille de recréer votre liste avec l'assistant, car si vous ne faites qu'attribuer le Source Contrôle de vos zones de texte, la liste ne permettra pas de trouver l'enregistrement sélectionné et donc vous écraserez vos données avec le code proposé par SeaWolf601 ...

Par ailleurs, il faut que la Source de votre formulaire soit la table concernée : vous n'avez donc pas besoin du générateur d'expression car les champs de cette table vous seront proposés dans la liste du "Source COntrôle".

Bcdt
fbtsra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h56   #10
Membre actif
 
Avatar de SeaWolf601
 
Inscription : août 2006
Messages : 239
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 239
Points : 192
Points : 192
En effet ton formulaire devrait avoir comme source une requête ou la table dans laquelle les enregistrements doiven,t être sauvegardé.

Et comme le dis Fbtsra, soit prudent, fait une copie de ta base, sinon a force de tester, tu vas écraser tes données au fur et à mesure.
__________________

La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi !

Albert Einstein
SeaWolf601 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 10h30   #11
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 3
Points : 3
Citation:
Envoyé par fbtsra Voir le message
Je vous conseille de recréer votre liste avec l'assistant, car si vous ne faites qu'attribuer le Source Contrôle de vos zones de texte, la liste ne permettra pas de trouver l'enregistrement sélectionné et donc vous écraserez vos données avec le code proposé par SeaWolf601 ...

Par ailleurs, il faut que la Source de votre formulaire soit la table concernée : vous n'avez donc pas besoin du générateur d'expression car les champs de cette table vous seront proposés dans la liste du "Source COntrôle".

Bcdt
Ca marche, je suis en train de suivre votre conseil, je recréé un nouveau formulaire à partir de l'assitant, ça m'a l'air pas bien compliqué, juste ma liste déroulante de mon choix project qui ch** un peu dans la colle, je vais essayer de modifier ça (quand je clique sur la flèche bleue, aucune valeur ne s'affiche)

Citation:
Envoyé par SeaWolf601 Voir le message
En effet ton formulaire devrait avoir comme source une requête ou la table dans laquelle les enregistrements doiven,t être sauvegardé.

Et comme le dis Fbtsra, soit prudent, fait une copie de ta base, sinon a force de tester, tu vas écraser tes données au fur et à mesure.
Aïe, j'avais copié un formulaire existant afin d'avoir le même style de présentation

Pas de soucis, je suis deja sur une copie pour bricoler un peu.
pikayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 14h57   #12
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 3
Points : 3
Saluté,

Bon, j'ai toujours pas résolu mon problème avec la liste déroulante. J'ai été fouiller et modifier un peu dans les paramètres de celle-ci sans résultats. Donc j'ai bien en visu ma liste déroulante, lorsque j'ouvre le formulaire celle ci affiche le premier champ de ma table, jusque la tout va bien.

Par contre lorsque je clique sur la petite flèche bleue pour changer d'enregistrement, rien, je peux rien sélectionner car rien ne s'affiche, seule une case blanche sous ma liste apparait . Par contre, avec la molette de ma souris je peux changer d'enregistrement .

A première vue j'ai pas appris access dans le bon sens moi
pikayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 17h53   #13
Membre actif
 
Avatar de SeaWolf601
 
Inscription : août 2006
Messages : 239
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 239
Points : 192
Points : 192
Je pense que la source de ta combobox ne doit pas être correcte, tu peux nous faire une copie de ta base stp.
__________________

La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici nous avons réuni théorie et pratique: Rien ne fonctionne ... et personne ne sait pourquoi !

Albert Einstein
SeaWolf601 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 10h06   #14
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2011
Messages : 16
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 20
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : juillet 2011
Messages : 16
Points : 3
Points : 3
Pas de soucis, je t'ai fait une copie, où j'ai tout supprimé de la base à part ce qui a une relation avec le formulaire (F_Newprojects), du coup tu devrais avoir 2-3 messages d'erreur lors de l'ouverture de la base.

J'espere que tu vas réussir à ouvrir le formulaire, ces temps ci il ne s'ouvre plus qu'une fois sur 5 chez moi, je sais pas pourquoi

EDIT : J'ai changé le fichier joint, apparement il y avait un soucis avec celui-ci
Fichiers attachés
Type de fichier : zip Base vide forum_2011-08-11.zip (186,7 Ko, 4 affichages)
pikayo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h11.


 
 
 
 
Partenaires

Hébergement Web