[RESOLU] [Access] Création d'un formulaire de consultation

Création d'un formulaire de consultation [RESOLU] [Access] - Divers - Programmation

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.   :hello:


Message édité par GENIUS999 le 05-03-2003 à 09:01:55
Reply

Marsh Posté le 03-03-2003 à 12:59:44   

Reply

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é ...  :)  
 
 
 
 
 
 
 
 
 

Reply

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??


Message édité par GENIUS999 le 03-03-2003 à 14:54:18
Reply

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!!

Reply

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 ?

Reply

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?

Reply

Marsh Posté le 03-03-2003 à 15:28:29    

vttman2 a écrit :

Non ça veut dire que la syntaxe est pas la bonne
t'a mis quoi niveau Where ?


 
 
C'est quoi le Where??

Reply

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 ?

Reply

Marsh Posté le 03-03-2003 à 15:57:15    

A non, moi, j'avais tapé :  
Select Machines.* from Machines Order by [Machines].[Nom_Machines]

Reply

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!! ;)

Reply

Marsh Posté le 03-03-2003 à 16:01:17   

Reply

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  :sweat:
 
 
Bon, allez, je reprends tout de zero.


Message édité par GENIUS999 le 03-03-2003 à 16:11:20
Reply

Marsh Posté le 03-03-2003 à 16:40:25    

vttman2 a écrit :

docmd.openform "form2"


 
Quel est le role de cette ligne??

Reply

Marsh 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 !  ;)  
 

Reply

Marsh Posté le 03-03-2003 à 16:42:57    

genius999 a écrit :


 
Quel est le role de cette ligne??


 
ça ouvre le formulaire form2

Reply

Marsh Posté le 03-03-2003 à 16:56:43    

A 2 mains !
 :hello:

Reply

Marsh Posté le 03-03-2003 à 17:31:26    

Ok, ca ca marche!!!
Merci pour ton aide!!!
A demain pour la suite...  :D

Reply

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  :cry:  ca marchais pourtant quand j'ai fait l'exemple et là non!!! :fou:

Reply

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 ...
 

Reply

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.


Message édité par GENIUS999 le 04-03-2003 à 10:36:33
Reply

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... :??:

Reply

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 ?
 
 :??:  

Reply

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.

Reply

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  :jap:  

Reply

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  :jap:  
 
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed