Création d'un formulaire de consultation [RESOLU] [Access] - Divers - Programmation
Marsh Posté le 03-03-2003 à 14:37:46
Bon si je comprends tout ...
1) Essaye de faire un formulaire (forms1) qui
contient uniquement une liste modifiable (listmod),
où tu afficheras un champ de ta table à
selectionner
2) Ensuite créé avec l'assistant un formulaire (forms2)
affichant tous les champs de ta table
3) Dans la requête source du forms2 tu conditionnes
par ta selection effectuée dans forms1 (au lieu
de prendre tous les enr.)
select * from matable where nom = forms2!listmod.value
Niveau syntaxe j'ai pas vérifié ...
Marsh Posté le 03-03-2003 à 14:53:59
Euh... pour les deux premieres étapes, je suis ok.
Par contre, la derniere, j'ai du mal a voir et comment je dois renseigner le fait que les infos doivent etre affiché en fonction de l'entrée du premier formulaire.
Il faut creer une requete??
Marsh Posté le 03-03-2003 à 15:05:36
Bon, ca y est, j'ai a peut pres trouvé, mais quand je lance le formulaire 2, il me demande la valeur du champ que j'ai renseigné dans le formulaire 1. C'est pas normal!!
Marsh Posté le 03-03-2003 à 15:18:42
Non ça veut dire que la syntaxe est pas la bonne
t'a mis quoi niveau Where ?
Marsh Posté le 03-03-2003 à 15:27:32
En fait, je ne comprends pas comment ca peut fonctionner comme ca.
Ne vaudrait il pas mieu que je fasse un bouton sur le formulaire 1 qui ouvre le formulaire 2?
Marsh Posté le 03-03-2003 à 15:28:29
vttman2 a écrit : Non ça veut dire que la syntaxe est pas la bonne |
C'est quoi le Where??
Marsh Posté le 03-03-2003 à 15:34:20
Au niveau click de ta liste (malist) de choix de
ton formulaire (form1)
tu ouvres (docmd.openform "form2" )
le 2 ème formulaire (form2)dont la
requête source est
SELECT * FROM matable WHERE
monchamp=[forms]![form1]![malist].value;
Ok ?
Marsh Posté le 03-03-2003 à 15:57:15
A non, moi, j'avais tapé :
Select Machines.* from Machines Order by [Machines].[Nom_Machines]
Marsh Posté le 03-03-2003 à 16:01:17
Au fait, y a pas moyen de faire ca avec un assistant??
Tout de meme au 21eme siecle!!
Marsh Posté le 03-03-2003 à 16:09:59
C'est vraiment pas pour t'embeter et je te remercie d'aileurs du temps que tu passe a m'aider, mais je ne comprends pas du tout ce que je dois faire...
Enfin, si, ne dramatisons pas non plus.
C'est juste le :
"Au niveau click de ta liste (malist) de choix de
ton formulaire (form1)
tu ouvres (docmd.openform "form2" ) "
que j'ai pas compris
Bon, allez, je reprends tout de zero.
Marsh Posté le 03-03-2003 à 16:40:25
ReplyMarsh Posté le 03-03-2003 à 16:42:07
Ok on reprend
ta table :
nom prenom taille
Dup Jean 1,78
Glag gil 1,40
Gro hervé 1,59
Dans ton formulaire form1
tu as une liste : malist
qui contient (on verra plus tard
pour un identifiant unique car
le nom ne l'est sans doute pas ...)
Donc qui contient ...
Dup
Glag
Gro
Dans l'évenement Click de malist
(Procédure évenementielle)
Tu codes Docmd.open "Form2"
Dans ton formulaire Form2 niveau requête
source => tu as (si tu as pris l'assistant) :
le nom de ta table : matable
Tu remplaces matable par
select * from matable where nom = forms!form1!malist.value
Essaye déjà ça, fais gaffe à la syntaxe ...
Niveau assistant, ya peut-être ! mais
moi pas connaitre ... remarque niveau forum
on va peut-être attirer une bête qui va nous
donner une façon de procéder plus classe !
Marsh Posté le 03-03-2003 à 16:42:57
ReplyMarsh Posté le 03-03-2003 à 17:31:26
Ok, ca ca marche!!!
Merci pour ton aide!!!
A demain pour la suite...
Marsh Posté le 04-03-2003 à 08:56:24
Salut.
En fait, hier quand j'ai dis que ca marchais, c'etait vrai dans le cas ou je reprennais exactement a la lettre se que tu m'avais dis de faire.
Puis ensuite, j'ai créé une nouvelle base avec les parametres qui correspondent a mon application, mais toujours en suivent le modele que tu m'as donné.
Et là!! et bien ca marche pas.
=> Quand je choisis mon enregistrement dans le menu déroulant, l'autre formulaire s'ouvre bien mais il n'afficha pas l'enregistrement correspondant, il affich rien du tout. Les champs sont vides.
J'ai pourtant bien rentré la bonne source, enfin je pense :
SELECT * FROM Tmachines WHERE nommachine=[forms]![Fmenu]![modifiable0].value;
Je comprends pas ca marchais pourtant quand j'ai fait l'exemple et là non!!!
Marsh Posté le 04-03-2003 à 09:14:39
Salut
Tu ouvres ton 1er formulaire, tu choisis
une valeur dans la liste et tu laisses le formulaire ouvert
puis tu créé une requête partie requêtes
dont le contenu est
SELECT * FROM Tmachines WHERE nommachine=[forms]![Fmenu]![modifiable0].value;
A priori ça devrait te renvoyer 1 ligne
sinon
tu remplaces [forms]![Fmenu]![modifiable0].value
par la valeur choisie dans ta liste
et tu retestes ta requête ...
tu peux aussi taper en requête
SELECT [forms]![Fmenu]![modifiable0].value FROM Tmachines WHERE nommachine=[forms]![Fmenu]![modifiable0].value;
pour vois ce que tu as dans ce champ ...
Marsh Posté le 04-03-2003 à 10:27:27
Le formulaire reste bien ouvert!!!
Je vais tester les autres solutions que tu me propose.
EDIT:Rien à faire!!!! J'ai tout essayé, se que je ne comprends pas c'est que la premiere base que j'ai créé fonctionne parfaitement!!
Je me demande quels sont les critere qui sont differnets et qui font que ca ne fonctionne pas.
Marsh Posté le 04-03-2003 à 10:39:07
Quand je lance mon formualaire directement sans passé par le formulaire de recherche, il me demande la valeur de forms]![Fmenu]![modifiable0].value, je lui donne et ca ne marche pas non plus...
Marsh Posté le 04-03-2003 à 10:51:59
1) essaye de remplacer
SELECT * FROM Tmachines WHERE nommachine=[forms]![Fmenu]![modifiable0].value;
par
SELECT * FROM Tmachines WHERE nommachine= "'" &[forms]![Fmenu]![modifiable0].value & "'";
2) C pas un prob de minuscule, majuscule ?
Marsh Posté le 04-03-2003 à 12:06:51
J'ai reussi mais, j'ai triché.
Je t'explique ma methode des que j'ai plus de temps.
Marsh Posté le 04-03-2003 à 13:30:32
En faite, j'ai créé un bouton qui a comme evenement :
Private Sub Commande2_Click()
On Error GoTo Err_Commande2_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Fmachines"
stLinkCriteria = "[idmachine]=" & Me![Modifiable0]
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Commande2_Click:
Exit Sub
Err_Commande2_Click:
MsgBox Err.Description
Resume Exit_Commande2_Click
End Sub
Je te rassure, j'ai créé le bouton avec l'assistant.
Ensuite, si je veux me passé du bouton, il suffit de le supprimer et de copier le script dans l'evenement de la liste modifiable.
Dans le formulaire d'affichage, la source est simplement :
SELECT Tmachines.*, * FROM Tmachines;
Voila tout!!
Je te remercie vraiment, encore une fois, du temps que tu as passé a me repondre et de tes reponses qui m'ont fait un peu plus découvrir access.
Merci a toi vttman2
Marsh Posté le 04-03-2003 à 13:53:39
Ah ouhais mais ça c beaucoup plus
propre que ce que je t'ai montré ...
C même ça qu'il faut faire
Marsh Posté le 03-03-2003 à 12:59:44
Bonjour,
Je debute sur la création des formulaires sous Access et voila ce que je voudrais faire :
Créer un formulaire qui aurait pour fonction de consulter et seulement consulter une table. On choisirait dans un menu deroulant rattacher à un champ le nom de l'element à consulter et une fois celui-ci selectionné, toutes les autres infos relatives a cet éléments s'afficheraient dans les champs correspondant.
Pour l'instant, j'ai effectué la mise en page de tous mes champs, mais le probleme c'est que dans mon menu deroulant, je n'ai pas le liste de tous mes élements.
pourquoi??
Merci d'avance pour votre aide.
Message édité par GENIUS999 le 05-03-2003 à 09:01:55