ACCESS choix dans une liste trié par requete

ACCESS choix dans une liste trié par requete - Logiciels - Windows & Software

Marsh Posté le 24-04-2007 à 13:10:20    

bonjour, je souhaiterai pouvoir choisir dans un formulaire pas le bais d'une liste dé roulante une occurrence de la liste, est que cette occurrence ne soit plus accessible tend que pas libérer.
Je m'explqiue :
 
- j'ai une liste Personnel
- J'ai une liste Voiture
 
Je souhaiterai Que le personnel puisse choisir par une liste le véhicule qu'il prenne.
Si une seconde personne accède a la base de donnée, le véhicule précédent n'apparaisse plus dans la liste.
 
j'ai donc essai de faire une liste voiture ou il y a deux colonne, Voiture(string) et utiliser(bool).
j'ai mis dans le formulaire,  une liste qui est générer par une requête qui ressort seulement les voitures qui ne sont pas utiliser.
 
Donc premières question comme faire pour que lorsque je sélectionne un véhicule, le champ utiliser soit mit a jour  ( C'est lui qui me permet de trier les véhicules restant )
Deuxième question lorsque je Vé retourner par le formulaire sur la personne qui a choisi le véhicule.
comment faire pour que le véhicule qu'il a choisi apparaisse, puis que la requête va effacer tout les véhicule non disponible
Troisieme question, comment faire pour qu'un champ et un seul soit dans cette liste selectionnable plusieur fois
( pour pouvoir tout simplement dire que la personne na pas de véhicule )
 
Je ne C'est pas si j'utilise la bonne méthode pour arriver au résultat espéré.
Je suis ouvert a toute vision autre sur le problème

Reply

Marsh Posté le 24-04-2007 à 13:10:20   

Reply

Marsh Posté le 24-04-2007 à 13:37:17    

Bonjour
 
Une table associative entre Personnel et Voiture.
Ta liste met a jour ta table associative.
Dans la requete de la pioche tu fais un left join de ta table voiture vers la table associative.
 
Cordialement
 
[edit]
Envoie ta base qu'on zieute
 
Ca a un rapport avec notre ancien post ? http://forum.hardware.fr/hfr/Windo [...] 2607_1.htm
Où je n'ai pas de reponse d'ailleurs... ;)
[/edit]


Message édité par SuppotDeSaTante le 24-04-2007 à 13:43:10

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 24-04-2007 à 14:06:44    

si sa a voir avec l'autre post, mais je ne le retrouvais pue, la comme je suis l'auteur, j'ai facile de le retrouver avec une recherche.
comment pui-je mettre a disposition ma base de donné?

Reply

Marsh Posté le 24-04-2007 à 14:09:23    

Soit avec mon mail dans mon profil et je la partage ici, soit si tu as une page perso ou autre.
 
Regarde ce que je viens de faire vite fait et si ca repond a tes attentes.
http://dje69r.free.fr/mdtdamien1-2.mdb
Lance le formulaire nommé : Affectation voiture/personnel + saisie
 
Cordialement
 
PS : fais un effort sur l'orthographe...
 
[edit]
Pour retrouver les sujets auquels tu as participé il suffit de te mettre par exemple sur Windows & Software et de cliquer sur le petit bouton avec les drapeaux.
[/edit]


Message édité par SuppotDeSaTante le 24-04-2007 à 14:11:25

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 24-04-2007 à 14:35:56    

Je vient de voir tes deux bases de données, la mdtdamien1-2.mdb correspond a se que je cherche, je suis actuellement entrain de voir comment tu a fait.
Je crois savoir pourquoi je n'est pas d'image dans mon cadre, et que ton fichier été si gros lol.
access ne peut que afficher des images BMP :(
Cela limite fortement les possibilités.
 
Merci pour ton aide, si tu a une solution pour les photos autres que bmp ;)

Reply

Marsh Posté le 24-04-2007 à 14:50:09    

mdtdamien1 a écrit :

Je crois savoir pourquoi je n'est pas d'image dans mon cadre, et que ton fichier été si gros lol.
access ne peut que afficher des images BMP :(


 
Non, dans ma base j'ai integré des Jpg... Apres pour l'incorporation ou l'affichage c'est Access qui met/transforme ca en BMP, mais ca ne gene pas de mettre du JPG...
Apres la taille, avec les machines de maintenant je ne vois pas trop le souci...
 
Cordialement
 
[edit]
je n'ai pas de photo d'adriana en bmp ;)
[/edit]


Message édité par SuppotDeSaTante le 24-04-2007 à 14:52:24

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 24-04-2007 à 15:05:13    

lorsque j'ouvre la table1 de mdtdamien1, j'ai après avoir choisi mon image, Package dans la colonne Image, alors que toi tu a Image bitmap.
 
Mon souci doit venir de ma façon dans je procède pour allez chercher l'image.
Pour ma part, a partir du formulaire, j'ai fait
clic droit Insérer un objet
A partir d'un fichier
Je choisi le fichier est valide
a se moment la, sa modifie la colonne Image comme je te l'indiquer au dessus

Reply

Marsh Posté le 24-04-2007 à 15:07:37    

Click droit
Inserer un objet
Image BitMap
Edition
Coller a partir de
Aller chercher le fichier image quel qu'il soit...
 
C'est une des possibilités
 
Lis ca :  
http://www.ybet.be/access/13-formulaire.htm
http://cafeine.developpez.com/access/tutoriel/photos/
 
Cordialement


Message édité par SuppotDeSaTante le 24-04-2007 à 15:12:07

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 24-04-2007 à 15:31:11    

merci,
J'ai suivi les leçons présent sur se site.
Je n'arrive pas a obtenir le même résultat que lui.
car si je comprend bien, il arrive a partir d'un cadre dépend, d'afficher une image en ayant fait "a partir de"
chose que je n'arrive pas a faire.
La méthode que tu ma présenter fonctionne très bien
mais j'ai peur que mon parton et DRH trouve sa trop lourd comme manipulation.
 
pour se qui de la seconde mdb je suis preneur de quelque explication, je ne connais pas "met a jour ta table associative."
Comment cela fonctionne tyle ?
 
cordialement


Message édité par mdtdamien1 le 24-04-2007 à 15:41:40
Reply

Marsh Posté le 24-04-2007 à 15:58:23    

Tu as  
 

  • 4 formulaires


       - "SaisiePersonnel" : permet de saisir le personnel en liste. Il est repris en sous formulaire dans le formulaire "Affectation voiture/personnel + saisie"
   
       - "SaisieVoiture" : pareil que "SaisiePersonnel" mais pour les voitures
 
       - "Voiture/Personnel" : Permet de lier une voiture à un personnel. il a comme source de données les 3 tables liées. Il aurait pu n'avoir que la table associative, mais comme on veut faire apparaitre des infos (comme le nom du personnel ou de la voiture) il faut que les autres tables soient presentes.
 
       - "Affectation voiture/personnel + saisie" : reprend les 3 formulaires precedents en sous formulaire. Histoire d'avoir qu'un formulaire pour saisir le personnel, les voitures et l'association d'une voite à un personnel.
      il possede aussi un bouton et deux pioches.
 
           * Les pioches ont comme source de données les deux tables respectives, avec une specificité pour celle des voitures. En effet apparait dans la pioche que celles qui ne sont pas encore affectées a un personnel. En fait on prend toutes les valeurs de la table Voiture où n'apparaissent pas les voitures qui sont dans la table associative. C'est le Left Join et le critere "est nul" pour la table associative si tu regardes la source de données de la pioche.
Elles ont aussi un evenement qui fait que qd tu pointes dessus elle s'actualisent. Elles ont en evenement les macros "personnel" et "voiture" de la macro "macro1" respectivement.
 
           * Le bouton quant a lui lance la macro "Affecte" se situant dans la macro "macro1"
 
 

  • Une macro "macro1" contenant 3 'sous-macro' nommées "personnel", "voiture" et "affecte"


       - "personnel": permet d'actualiser la pioche du personnel quand tu click dedans
 
       - "voiture" : pareil mais pour la pioche des voitures
 
       - "affecte" : elle lance la requete  nommée "requete1"
 
NB : une sous macro s'atteind comme cela : Nom_de_la_macro.nom_de_la_sous-macro donc si tu regardes la pioche personnel, dans l'evenemment "sur reception focus" tu as "Macro1.personnel"
 
 

  • Une requete nommée "requete1" qui est une "requete ajout" car elle va ajouter des infos. Notament ici, dans la table associative.

Elle ajoute dans la table associative le n° du personnel piochée dans la pioche personnel au N°Personnel de la table associative. Pareil pour le numéro de la voiture. Et elle met la date du jour ( fonction date() ) dans le champs [DatePossession]


Message édité par SuppotDeSaTante le 24-04-2007 à 16:01:20

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 24-04-2007 à 15:58:23   

Reply

Marsh Posté le 24-04-2007 à 16:32:52    

Expr2: Formulaires![Affectation voiture/personnel + saisie]!N°Voiture // Expr2x veut dire que se qu'il suit est une une formule ?
 
j'ai essaier de reproduire ton exemple.
je ne parvient pas a réaliser la jointure avec le left join et null
 

Code :
  1. SELECT Voiture.N°Voiture, Voiture.Voiture, [Voiture/Personnel].N°Voiture
  2. FROM Voiture LEFT JOIN [Voiture/Personnel]
  3. ON Voiture.N°Voiture=[Voiture/Personnel].N°Voiture
  4. WHERE ((([Voiture/Personnel].N°Voiture) Is Null));


je ne parvient cas un affichage classique avec le code suivant

Code :
  1. SELECT Voiture.N°Voiture, Voiture.Voiture FROM Voiture ORDER BY [Voiture];


peut tu me dire comment tu parvient a sa ?

Reply

Marsh Posté le 24-04-2007 à 16:59:51    

mdtdamien1 a écrit :

Expr2: Formulaires![Affectation voiture/personnel + saisie]!N°Voiture // Expr2x veut dire que se qu'il suit est une une formule ?
C'est dans la requete ca ? Ca veut dire qu'il va chercher la valeur du champs [N°Voiture] dans le formulaire [Affectation voiture/personnel]. Et le champ [N°Voiture] c'est la pioche
 
j'ai essaier de reproduire ton exemple.
je ne parvient pas a réaliser la jointure avec le left join et null
 

Code :
  1. SELECT Voiture.N°Voiture, Voiture.Voiture, [Voiture/Personnel].N°Voiture
  2. FROM Voiture LEFT JOIN [Voiture/Personnel]
  3. ON Voiture.N°Voiture=[Voiture/Personnel].N°Voiture
  4. WHERE ((([Voiture/Personnel].N°Voiture) Is Null));


 
Bah avec Access tu te met en mode creation, tu double click sur la jointure et tu mets le 2 de memoire, et ca te fait un left join...
 
je ne parvient cas un affichage classique avec le code suivant

Code :
  1. SELECT Voiture.N°Voiture, Voiture.Voiture FROM Voiture ORDER BY [Voiture];


peut tu me dire comment tu parvient a sa ?
Rien compris



---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 24-04-2007 à 17:22:05    

Lorsque je suis sur le formulaire Affectation voiture/personnel + saisie
je sélectionne le champ N°Voiture
propriété
Contenu ( c'est la requête effectuer pour avoir le contenu du champ N°Voiture)

Reply

Marsh Posté le 24-04-2007 à 18:53:57    

Avec le mode creation, clique sur les 3 petit point au fond de la ligne "contenu" des propriétés


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 25-04-2007 à 16:46:15    

Je n'y parvient pas, j'ai essayer dans tout les sens.
Si je pose dans contenu le code là qui est le tiens sa marche
 
 
     

Code :
  1. SELECT Voiture.N°Voiture, Voiture.Voiture, [Voiture/Personnel].N°Voiture
  2.       FROM Voiture LEFT JOIN [Voiture/Personnel]
  3.       ON Voiture.N°Voiture=[Voiture/Personnel].N°Voiture
  4.       WHERE ((([Voiture/Personnel].N°Voiture) Is Null));


 
si j'essaie de le créé manuellement
- j'ouvre avec les 3 ....
- puis j'ouvre les tables  
- je mes les trois champ
- je réalise un LEFT JOIN
- puis un IS NUL
 
j'obtient un message d'erreur "Instruction SQL non exécuter, des jointures externes ambigüe"
 
Remarque : si il n'y a pas de LEFT JOIN, je n'est pas cette erreur mais mon champ est vide.

Reply

Marsh Posté le 25-04-2007 à 18:34:20    

Envois moi ce que tu as fait que je zieute...


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 26-04-2007 à 14:12:17    

Bonjour
 
Euh c'est un peu normal que ca ne marche pas... Tu créés 5 fois la lisaison entre [Voiture].[N°Voiture] et [Voiture/Personnel].[N°voiture] :

ON (Voiture.N°Voiture = [Voiture/Personnel].N°voiture) AND (Voiture.N°Voiture = [Voiture/Personnel].N°voiture) AND (Voiture.N°Voiture = [Voiture/Personnel].N°voiture) AND (Voiture.N°Voiture = [Voiture/Personnel].N°voiture) AND (Voiture.N°Voiture = [Voiture/Personnel].N°voiture)


Si en plus par dessus tu rajoutes un left join...
 
De plus ton modèle de données n'etait meme pas construit... Donc pas d'integrité referentielle, mais ca c'est peut etre par choix
 
Fichier avec une requete propre


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 09-05-2007 à 12:16:20    

Code :
  1. De plus ton modèle de données n'etait meme pas construit


 
Je n'est pas compris se que cela veut dire.
Ces coi un model de donner, ces la ou en fait les lien ?
je vient de finir de rentrer les données ( c'est pour cela que j'ete absent du forum )
 
J'ai on se moment, un formulaire, avec tout un ta de champ,
je voudrai pouvoir faire une recherche a partir du formulaire, par exemple sur le NOM
puis renvoyer le résultat de la recherche sur le formulaire.
j'ai pense a un bouton qui effectuerai une requête sur le champ voulu avec une boite de dialogue pour saisir le nom, mais comme ré introduire le résultat
dans le formulaire ? Merci .
ou alors faut t'il crée une table qui contiendra le résultat de la recherche. avec l'ouverture d'un nouveau formulaire.
Merci de vos info
Je penser aussi a une liste déroulant, avec une recherche dynamique en fonction de la recherche pour faire le choix en cas de doublons,  
Mais je n'est aucune idée sur la façon de la faire, et si c'est réalisable

Reply

Marsh Posté le 09-05-2007 à 20:08:32    

Bonjour
 

mdtdamien1 a écrit :

Code :
  1. De plus ton modèle de données n'etait meme pas construit


 
Je n'est pas compris se que cela veut dire.
Ces coi un model de donner, ces la ou en fait les lien ?


Oui
 
Tu as un exemple de la base ?
 
Ou alors oui tu filtre par la requete sous jacente au formulaire avec un evenement qui actualise ton formulaire apres modif de ta zone de recherche.
 
Cordialement


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 10-05-2007 à 10:37:18    

Je vient de t'envoyer par email, la base de donné, tu y trouvera les détail sur mon projet a l'état actuel

Reply

Marsh Posté le 10-05-2007 à 11:06:39    

Bonjour
 
Si j'ai bien compris, tu veux que dans ton formulaire "Saisie de tout les champs" tu puisses directement affecter une voiture.
D'ailleurs avec le modele que tu as fait, tu pourrais meme affecter deux voitures a une seule personne, ou vice versa. Mais la n'est pas la question.
 
En fait c'est assez simple, il te suffit de créer un formulaire, qui sera un sous formulaire dans ton formulaire "Saisie de tout les champs" et de faire un lien champ pere/fils avec les champs de la table associative.
 
Pour ce qui est du filtre il y avait beaucoup plus simple :

SuppotDeSaTante a écrit :

Ou alors oui tu filtre par la requete sous jacente au formulaire avec un evenement qui actualise ton formulaire apres modif de ta zone de recherche.


 
Je te fais les deux trucs et je repost.
En attendant regarde dans l'aide la gestion des sous formulaire et la notion de champ pere/champ fils
 
Cordialement
 
[edit]
 
http://dje69r.free.fr/bd6.mdb
 
[/edit]


Message édité par SuppotDeSaTante le 10-05-2007 à 11:17:24

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 10-05-2007 à 13:14:06    

Ou lala !!
Je ne c'est pas comment tu fait tout sa mais sa ressemble beaucoup a se que je voudrai faire.
J'ai regarder ta macro, rien, j'ai regarder le bouton recherche, rien, le champ indépendant, rien
ou et comment fait tu pour choisir sur quel élément ton filtre s'applique et avec quel critère.
 
J'ai beau chercher je n'est pas trouver de lien père/fils :(
Les liaison dans la table liaison_voiture_personnel, me semble arriver par magie !
Les sélection de source pour Tes formulaires, me sont impossible a reproduire.
 
tu fait les choses avec faciliter ( pas de code ambigue ou autre ) mais une faciliter que je n'arrive pas a reproduire et a comprendre.

Reply

Marsh Posté le 10-05-2007 à 14:43:21    

Bonjour
 
Le code j'aime bien, mais si je peux m'en passer... Donc tant que je peux faire sans, je fais. Et access le permet, donc... Et j'avoue que les macro excel 4 me manquent :d
Pis avec les becanes dont on dispose une nanoseconde de calcul en plus ou en moins je m'en fou un peu.
 
Alors pour le filtre, c'est tout con. Tu vas dans la requete source du formulaire. Tu te mets en mode creation, propriété du formulaire, source et tu clicks sur les 3 petits points pour arriver sur la requete en mode creation.
 
Dans la ligne critere du champ NOMS j'ai du mettre un truc genre : Comme("*" & Forms(TonFormulaire)(RechNom) & "*" )
Donc la il va prendre tout les NOMS qui contiennent (Le *Recherche*) ce que tu as la zone independante nommée RechNom (de memoire c'est ce nom la)
Le bouton sert juste a actualiser le formulaire. C'est pour cela que la macro ne contient qu'un "Actualiser" sans parametre.
Comme la source de donnée du formulaire est filtrée en fonction de la zone RechNom tu n'as qu'a Actualiser le formulaire et ca actualisera la source de donnée et le formulaire.
 
Pour la magie de ta table de liaison c'est justement le sous formulaire et les liens champ pere / champ fils qui font ca.
Ouvre ton formulaire principal en creation. Tu dois voir le sous formulaire en bas a droite. Tu clicks avec le  bouton droit, propriété, et tu vas voir les Champ pere / Champ fils. Ces champs font le lien entre la clé principale du formulaire principal et la clé secondaire du sous formulaire...
 
Je repasserai ce soir avec la base sous les yeux, car la je ne suis plus chez moi :d
 
Cordialement

Message cité 1 fois
Message édité par SuppotDeSaTante le 10-05-2007 à 14:48:21

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 10-05-2007 à 14:54:47    

Citation :


Vous pouvez utiliser les propriétés ChampsFils (LinkChildFields) et ChampsPères (LinkMasterFields) conjointement pour spécifier comment Microsoft Access lie les enregistrements dans un formulaire ou état aux enregistrements dans un sous-formulaire, un sous-état ou un objet incorporé, comme un graphique. Si ces propriétés sont définies, Microsoft Access met automatiquement à jour les enregistrements connexes dans le sous-formulaire lorsque vous passez à un nouvel enregistrement dans un formulaire principal.
 
Paramétrage
 
Vous pouvez définir les propriétés ChampsFils (LinkChildFields) et ChampsPères (LinkMasterFields) du sous-formulaire, du sous-état ou de l'objet incorporé comme suit :
 
· Propriété ChampsFils (LinkChildFields). Tapez le nom d'un ou de plusieurs champs de liaison dans le sous-formulaire, le sous-état ou l'objet incorporé.
· Propriété ChampsPères (LinkMasterFields). Tapez le nom d'un ou de plusieurs champs ou contrôles de liaison dans l'état ou le formulaire principal.
 
Vous pouvez utiliser le Gestionnaire de liaisons de sous-formulaire/sous-état pour définir ces propriétés en cliquant sur le bouton Générer  situé à droite de la zone des propriétés dans la feuille des propriétés.
 
Vous pouvez également définir ces propriétés à l'aide d'une expression chaîne, d'une macro ou de Visual Basic.
 
Les propriétés ne peuvent être définies qu'en mode Création ou lors de l'événement Ouverture d'un formulaire ou d'un état.
 
Remarques
 
Les champs ou les contrôles que vous utilisez pour définir ces propriétés ne doivent pas avoir le même nom, mais ils doivent contenir le même type de données et posséder un type de données et une taille de champ compatibles. Par exemple, un champ Numérotation automatique est compatible avec un champ Numérique si la propriété FieldSize (FieldSize) possède la valeur Entier long.
 
Vous pouvez utiliser le nom d'un contrôle (y compris celui d'un contrôle calculé) pour définir la propriété ChampsPères (LinkMasterFields), mais pas la propriété ChampsFils (
LinkChildFields). Si vous souhaitez utiliser une valeur calculée comme liaison pour un sous-formulaire, un sous-état ou un objet incorporé, définissez un champ calculé dans la requête sous-jacente de l'objet fils et définissez la propriété ChampsFils (LinkChildFields) sur ce champ.
 
Si vous attribuez plusieurs noms de champ ou de contrôle pour ces paramètres de propriété, vous devez spécifier le même nombre de champs ou de contrôles pour chaque paramétrage de propriété et les séparer par des points-virgules (;).
 
Lorsque vous créez un sous-formulaire ou un sous-état en faisant glisser un formulaire ou un état de la fenêtre Base de données vers un autre formulaire ou état à l'aide de l'Assistant Formulaire, Microsoft Access définit automatiquement les propriétés ChampsFils (LinkChildFields) et ChampsPères (LinkMasterFields) sous les conditions suivantes :
 
· Le formulaire ou l'état principal, et l'objet fils, sont tous deux basés sur des tables, et une relation entre ces tables a été définie à l'aide de la commande Relations. Microsoft Access utilise les champs qui établissent la relation en tant que champs de liaison.
· Le formulaire ou l'état principal est basé sur une table avec une clé primaire, et le sous-formulaire ou le sous-état est basé sur une table ou une requête qui contient un champ du même nom et possède un type de données identique ou compatible avec la clé primaire. Microsoft Access utilise la clé primaire de la table sous-jacente de l'objet principal et le champ portant un nom identique dans la table ou la requête sous-jacente de l'objet fils comme champs de liaison.
 
Note   Il n'est pas nécessaire d'inclure les champs de liaison dans l'objet principal ou dans l'objet fils. Tant qu'ils se trouvent dans les tables ou requêtes sous-jacentes de l'objet, vous pouvez utiliser les champs pour lier les objets. Si vous utilisez un Assistant, Microsoft Access insère automatiquement les champs de liaison.


Message édité par SuppotDeSaTante le 10-05-2007 à 15:05:16

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 10-05-2007 à 16:33:39    

SuppotDeSaTante a écrit :

Bonjour
Alors pour le filtre, c'est tout con. Tu vas dans la requete source du formulaire. Tu te mets en mode creation, propriété du formulaire, source et tu clicks sur les 3 petits points pour arriver sur la requete en mode creation.


OK j'ai vue comment tu a fait sa ;) enfin quelque chose que je comprend
Je pense faire plusieurs requête baser sur se principe pour faire des recherches sur chaque champ.
et mettre dans une ou plusieurs macro, (tout dépend si je c'est sortir d'un macro en cours) qui effectuerons le filtrage suivis d'un rafraichissement du formulaire.
quand pense tu ?  

SuppotDeSaTante a écrit :

Bonjour
Pour la magie de ta table de liaison c'est justement le sous formulaire et les liens champ pere / champ fils qui font ca.
Ouvre ton formulaire principal en creation. Tu dois voir le sous formulaire en bas a droite. Tu clicks avec le  bouton droit, propriété, et tu vas voir les Champ pere / Champ fils. Ces champs font le lien entre la clé principale du formulaire principal et la clé secondaire du sous formulaire...


 
Alors si bien compris, pour que le champ numero soit présent, le sous-formulaire a été créé a partir de la table "liaison", pourtant on y retrouve toute les infos des voitures.
tu a changer la source du sous-formulaire ?
 
 
 
Je repasserai ce soir avec la base sous les yeux, car la je ne suis plus chez moi :d
 
Cordialement

Reply

Marsh Posté le 10-05-2007 à 17:16:48    

mdtdamien1 a écrit :

Je pense faire plusieurs requête baser sur se principe pour faire des recherches sur chaque champ.
et mettre dans une ou plusieurs macro, (tout dépend si je c'est sortir d'un macro en cours) qui effectuerons le filtrage suivis d'un rafraichissement du formulaire.
quand pense tu ?


Oui c'est possible, mais autant tout faire dans la meme requete. Les criteres mis en colonnes correspondent à des ET, les criteres mis en lignes correspondent à des OU.
Donc tu n'as qu'a créer un autre controle independant nommé par ex RechPrenom et de le mettre aussi dans la zone critere de la requete. Base toi sur l'existant avec RechNom.
 

mdtdamien1 a écrit :

Alors si bien compris, pour que le champ numero soit présent, le sous-formulaire a été créé a partir de la table "liaison", pourtant on y retrouve toute les infos des voitures.  
tu a changer la source du sous-formulaire ?


Si je n'avais voulu que la pioche, la table de liaison aurait suffi. Mais j'ai trouvé plus judicieux qu'une fois piochée, que l'on ait les infos sur la voiture, donc forcement dans la source du sous formulaire il y aussi la table "voiture"
La table de liaison pour lier la personne (formulaire principal, donc champ pere) à la voiture (sous formulaire, champ fils sur la table de liaison)
Et la table "voiture" qui permet d'afficher les infos.


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 11-05-2007 à 10:22:54    

Je suis arriver a pratiquement tout reproduire.
 
j'ai créé un sous formulaire baser sur la table "liaison_voiture_personnel" a la quel j'ai les champ voiture ( en rajoutant la table voiture dans source )
si j'ouvre le formulaire "relation_voiture_personnel", je peut bien changer le véhicule par le biais de la liste, en voyant les répercutions sur la table "relation_voiture_personnel".
Mais une fois intégrer dans mon formulaire "saisie de tout les champs". j'ai une erreur quand je veut choisir une voiture pour l'associé a une personne.
Access me mes dans la bar d'état "le contrôle ne peut pas être modifier, il est lié au champ inconnu Liaison_vehicule_personnel.VEH_NUM"
 
 
Je tes envoyer ma base dans l'etat ou le problème survient.
si tu pouvai me dire se qui ne va pas merci

Reply

Marsh Posté le 11-05-2007 à 12:11:33    

Bonjour
 
Le problème vient de ta requete source de ton sous formulaire. Quand tu fais une requete comportant deux tables liées, il ne faut pas mettre tous les champs de toutes les tables. Tu dois mettre la clé secondaire de la table principale mais pas la clé principale de la table secondaire... Tu me suis ? lol
Donc dans notre cas la clé VEH_NUM de la table liaison OUI, mais la clé VEH_NUM de la table Voiture NON
 
En fait dans ta requete tu as la table liaison et tu mets le champ VEH_NUM, tu aussi la table Voiture et tu mets aussi le champ VEH_NUM (mis avec ton *). Tu as donc deux champs identiques avec le meme nom, et pour palier au probleme Access te créer un champ fictif nommé laison_personnel_voiture.VEH_NUM sur lequel ta pioche pointe. Il ne faut mettre que le champ VEH_NUM de la table liaison.
 
Donc vire le * de ta requete source, ajoute a la mano les champs de la table voiture dont tu as besoin, sauf bien evidement VEH_NUM et change le source controle de ta pioche (qui pointe sur laison_personnel_voiture.VEH_NUM) en le faisant pointer sur seulement VEH_NUM
 
Tiens moi au jus.
 
Cordialement


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 11-05-2007 à 13:30:46    

table_liaison = table principale
table_voiture = table secondaire
 
liaison.veh_num = clé secondaire ( si j'ai bien compris liaison.num_personnel_voiture est ma clé principale)
voiture.veh_num = clé principale  
 
j'ai fait comme tu ma dit, sa marche nikel !
Je vé essai de faire de même avec la liaison téléphone.
J'ai bien compris le problème vient que je point sur un champ qui est fictif ?
 
On tout cas merci pour ton aide et tes explication
 
Prochaine étape, créé des alerte sur les date d'obtention des certificat type électrique nacelle ....
Je doit comparé la date du champ avec la date actuelle avec un delta "validités" et " anticipations"
J'ai mis ces valeur d'anticipations et de validités dans une table, pour qu'il soit réglable.
Je suis actuellement entrain de cherche pour comparer mon champ a la date en prenant en compte le delta
 
sa me donne sa actuellement
critère : Expr1: [VIS_MEDICALE_DATE]+[validiter_visite_medicale]<Date()
 
Je penser a sa
critère : Expr1: (CDbl([VIS_MEDICALE_DATE])+([validiter_visite_medicale]*365))<Date()
 
Si j'ai bien compris Date() renvoi le nombre de jour écouler depuis 1900 ?  

Code :
  1. Comme il est possible en VB de faire
  2. Dim MaDateParDéfaut as date
  3. MaDateParDéfaut = #09/02/2005#
  4. txtMaDate.defaultValue = cdbl(MaDateParDéfaut)


Je penser pouvoir appliquer sa dans mon critère, mais je ne suis pas sur que critère accepte le code VB.
 

Reply

Marsh Posté le 11-05-2007 à 14:11:19    

Pour les calculs de date regarde aussi du coté des fonctions DiffDate() et AjDate(), plus facile pour faire des calculs sur les dates.
 
Cordialement


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 11-05-2007 à 15:51:59    

décidément j'arrive a rien, access a une aide pratiquement inexistante,  
j'ai trouvez sa dans les exemple de access :
Entre Date( ) Et AjDate("m", 3, Date( ))  
je les mis dans critères de VISITE_MEDICALE_DATE
il me dit erreur de synthaxe !

Reply

Marsh Posté le 11-05-2007 à 19:16:31    

Sans exemple ou sans le critere complet, j'aurais un peu de mal...


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 15-05-2007 à 10:22:19    

Slt,
 
Maintenant, je voudrai pouvoir rechercher une voiture par exemple
en la sélectionnant dans une liste (de table voiture).
puis afficher la fiche du personnel a la quel cette voiture est rattacher
 
Je penser récupérer la valeur du numéro d'identifiant voiture de ma liste (NUM_VOITURE)
effectuer une recherche dans la table liaison_voiture_personnel pour trouver le numéro du personnel (NUM_PERSONNEL).
appeler le formulaire personnel avec comme paramètre le numero_du_personnel ou un msgBos si la voiture n'est pas associé.
 
Je cherche donc a récupéré la valeur de la sélection dans champ liste ( j'ai inclue NUM_VEHICULE en premier pour que access y alle lire dans se champ, il se retrouve cacher puisque clé primaire )
Comment allez lire la valeur du champ sélectionner dans la liste ? ( le NUM_VEHICULE en fonction du choix dans la liste )
Comment faire une boucle sur des enregistrement ( enrg 1 enrg2 )
Comment savoir que l'on est au dernière enregistrement.
Comment comparé les champs de table différent ( [nom_table]![nom_champ] )
 
Peut tu m'aider ? Merci

Reply

Marsh Posté le 15-05-2007 à 11:40:35    

Peux tu me renvoyer ta base que je me replonge dedans ?


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 16-05-2007 à 08:49:09    

Pourquoi quand j'intègre une notre table dans un formulaire,
le formulaire se retrouve verrouiller en écriture ?

Reply

Marsh Posté le 16-05-2007 à 20:34:21    

Ca depend de tes lisaisons et des clés que tu mets dns le formulaire...
J'ai pas été voir mes mails m'as tu envoyé la base ?


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 17-05-2007 à 18:13:19    

Oui-oui, elle devrez être dans la boite au lettre

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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