Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 31/07/2011, 09h45   #1
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut requete et multi-critere

Bonjours

J'ai une base de donnée comprenant 2 tables : DESSIN comprenant une liste de dessin et BOM comprenant les ''enfants'' de chaque dessin. Je dois faire un formulaire (t1 dessin ) qui affiche le contenu de BOM selon le DESSIN choisis.

Pour ce faire, je doit utiliser une selection multi-critere comprenant les 3 parties des numéro des dessins. Ils ont la structure XXXX-YYY-ZZ.


J'aimerais garder si possible mon champs BOM/LIGNE_BOM car d'autre aplication l'utilise. si ce n'est pas possible, je peut ajouter 3 champs pour mes critère XXXX , YYY, et ZZ. J'ai toutefois copiers une partie de sont contenu dans BOM/DESSIN pour facilité mon formulaire.


J'aimerais avoir votre aide, je ne suis pas capable

1-de faire afficher dans mes liste déroulantes les différentes parties (XXXX, YYY, et ZZ ) pour lesquel il y a des dessins.

2-afficher le sous-formulaire en fonction du dessin choisis ( avec les 3 critères )



Merci de votre aide
Fichiers attachés
Type de fichier : rar pmg dessin.rar (86,7 Ko, 5 affichages)
metaldan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 10h53   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

Peux-tu poster un fichier zip svp.
NB Veille à ce que la db soit en version compatible avec Access2000, sinon je ne pourrai pas t'aider.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 16h38   #3
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut aide

salut

J'ai réusis.


Mais j'aimerais savoir s'il est possible de faire mes requete en utilisant le champs BOM / LIGNE-BOM et DESSIN / DESSIN. J'ai copier subdiviser ( en copier ) l'info de ces champs

Je doit garder ces champs intacte pour d'autre programme qui utilise la meme base de donnée.



dan

voici la version en .zip
Fichiers attachés
Type de fichier : zip pmg dessin 2000 VERSION 2.zip (52,7 Ko, 12 affichages)
metaldan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2011, 20h51   #4
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Je ne comprends pas ce que tu fais.

Dans la table dessin, je devine que
le champ "dessin" est la concaténation de Projet-section-plan
Pourquoi cette redondance ?

Dans la table BOM, c'est moins clair,
le champ Ligne_Bom est la concaténation de Projet-section-Plan et ?
le champ Piece = Projet- ? - Plan.


Quelles sont les données de base en réalité et comment fais-tu la liaison entre BOM et Dessin ?
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2011, 04h10   #5
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut explication

Merci pour ton aide ClaudeLELOUP , voici quelque explications

Ma base de données vas se remplir a partir d'un logiciel de dessin ( SOLIDWORK ), LA table DESSIN vas contenenir la liste des numéro de DESSIN ( clé primaire ), avec sa description. PLus tard, je vais ajouter d'autre info comme la date, le couts, le client etc.... JE NE SAIS PAS COMMENT EXTRAIRE UNE PARTIE DU TEXTE DANS LES RÉSILTATS DES REQUETES. J'ai donc créer les champs PROJET, SECTIO et PLAN pour faciliter mon formulaire avec des multi-critère.

Le table BOM comprends les pieces contenu dans chaque dessins. Dans chaque dessin, il y a une liste de pieces qui sont identifiés avec un numéro ( 1, 2, 3, 4...) Ce numéro d'identification est la partie de droite dans LIGNE_BOM (clé primaire ) . Donc, avec seulement, LIGNE_BOM, je connait dans quel desin il est ( donc, le projet, la section et le plan ) et sont numéro d'identification. Encore une fois, JE NE SAIS PAS COMMENT EXTRAIRE UNE PARTIE DU TEXTE DANS LES RÉSILTATS DES REQUETES, donc j'ai copiée les info dans les champs DESSIN' SECTION, PLAN et PROJET pour faciliter mon formulaire avec des multi-critère.

J'ai réusis a faire un formulaire avec muli-critere, mais je cherche a savoir comment extraire un partie du texte des résultat d'une requete. pour utiliser seulement les champs DESSIN / DESSIN et BOM / LIGNE_BOM. ( exemple faire une requete sur DESSIN / DESSIN / 5870 et obtenir 000 et 100 comme section .

Je vais devoir utiliser ces requete pour comptabiliser des info ( exemple, combien de dessin dans 5780, ou encore, dans 5864-1*, combien de BOM/ACHAT sont = a ''O'' .


encore une fois, merci de ton aide

dan
metaldan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 06h12   #6
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

Il y a trois fonctions qui peuvent de servir dans ce contexte :

Left, Right et Mid.

Pour les découvrir :

ouvre une fenêtre d’exécution : <ALT> + <F11>

saisis ceci : ? left("XXXX-YYY-ZZ",4) et <ENTER>
en français : imprime les quatre caractères de gauche de l’expression entre les « " »

saisis ceci : ? Right("XXXX-YYY-ZZ",2) et <ENTER>
en français : imprime les deux caractères de droite de l’expression entre les « " »

saisis ceci : ? Mid("XXXX-YYY-ZZ",6,3) et <ENTER>
en français : imprime les trois caractères qui suivent le sixième caractère de l’expression entre les « " »

Si tu places le curseur de ta souris sur le mot-clé (left…) et que tu enfonces <F1> l’aide Access s’ouvre à la bonne page. Fais ça souvent et tu apprendras vite.


Ainsi, au lieu de torturer ta table, tu aurais pu construire une requête qui te donne chaque valeur à l’instant voulu. En voici le SQL :


Code :
1
2
SELECT bom.LIGNE_BOM, Left([Ligne_BOM],4) AS Projet, Mid([Ligne_BOM],6,3) AS [Section], Mid([Ligne_BOM],10,2) AS Plan
FROM bom;
Pour voir cette requête dans l’interface graphique procède comme ceci :

copie n’importe quelle requête ;
affiche son sql ;
replace son code sql par celui que je t’ai fourni plus haut ;
repasse en mode construction.

Tu verras probablement, selon ta version d’Access, que les fonctions ont été francisées et que la virgule est devenue point-virgule.

Procède par analogie pour l’autre table et construit maintenant ton formulaire multicritère sur base des requêtes au lieu des tables originales.

Attention : si tu veux garder les mêmes noms (Projet…), tu dois d’abord les supprimer dans la table sinon, il y a ambiguïté et Access lèvera une erreur.


Reviens si ce n'est pas clair pour toi.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/08/2011, 07h47   #7
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut aide

Merci claude

le code sql que tu m'a donné m'aide beaucoups.

Il me reste a faire ma requete on ''reconstruisant'' le numero de DESSIN acvec les 3 case du formulaires.

Je vais aussi chercher le moyen de mettre 3 possibilites de requete pour le sous-formulaire.

explication: Au début les 3 case sont vide. L'usager choisis un projet ( ex: 5864) et tout de suite, je vais devoir afficher les info de 5864*. Par la suite, il ajoute la section ( ex:100) donc afficher les info de 5864-100*, et finalement, il choisis un plan ( ex:01) donc j'affiche 5864-100-01.

apres avoir tester cela, je vais être bon pour faire environ 80% de mon projet.

encore une fois, mille merci de ton aide
metaldan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 08h32   #8
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Peux-tu expliquer, avec des mots et sans parler d'Access, ce que tu veux faire :

Exemple :

- à l'origine, j'ai une table qui contient tel(s) champ(s)...
- dans le but de...
- je voudrais construire un formulaire pour que l'utilisateur puisse faire ceci...
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h01   #9
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut aide

re-salut

J'ai une table DESSIN qui est la liste des toutes les dessins que l'on fabrique
Mes Numéro de dessin ont une structure xxxx-yyy-zz : explication le project xxxx comprends les section yyy qui eu utilise les plans zz


J'ai une autre table BOM qui comprends les items ''listé'' dans chaque dessin
C'est chaque items est numéroté (LIGNE_BOM) avec la structure xxxx-yyy-zz-#items


Je veut un formulaire dans lequel sera affiché les items des plans sélectionnés par l'usage


Pour la selection, l'usage choisis le projet, et/ou la section et/ou le plan.
Donc, l'affichage des items est ajusté en fonction du nombre et des valeurs des critères donné par l'usage.

merci
metaldan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 19h47   #10
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Vois dans le fichier joint, ton exemple un peu modifié.

Tables
Les champs redondants Projet, Section et Plan ont disparu.
J’ai ajouté une requête rDessins pour rendre ces champs disponibles.


Formulaire
Vois les noms donnés aux contrôles.
N. B. Tu devrais lire ceci : conventions typographiques.

Vois le code de l’événement « après mise à jour » associé aux contrôles filtreXXX : les commentaires devraient te permettre de comprendre ce qui s’y passe.
Si problème, place le curseur de la souris sur un mot-clé et enfonce <F1> pour ouvrir l’aide à la bonne page.

Requête rDESSIN_REQUETE
Vois l’astuce pour trier la sélection dans l’ordre croissant des items.

on trie sur "CEnt(Droite([ligne_bom];NbCar([Ligne_bom])-12))"
En français :
NbCar([Ligne_bom])-12 : le nbre de caractères du champ – 12 => donc tous ceux à la droite du dernier tiret.
Droite([ligne_bom];NbCar([Ligne_bom])-12) On récupère les positions après la 12e position (le dernier tiret)
CEnt(Droite([ligne_bom];NbCar([Ligne_bom])-12))
on convertit en nombre entier => ce qui permet de trier par ordre croissant sur la valeur numérique du texte.


Reviens si ce n'est pas clair.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 03h23   #11
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut aide

merci claude


J'ai bien aime l'utilisation de le requete RDESSIN , très bonne idée

Il reste une choses a faire. La requete doit fonctionner si

1-l'usager rentre seulement le projet, alors, la requete est du type : filtreprojet-*

2-l'usager rentre le projet et section, alors, la requete est du type : filtreprojet-filtresection-*

3- l'usager rentre le projet, la section , le plan : fonctionnement actuel

ton aide est précieuse

dan
metaldan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2011, 10h39   #12
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

Voici un système polyvalent.

Si tu inscris ceci :

Code :
[Formulaires]![dessin]![FiltreProjet]
Tu opères la sélection lorsqu’il y a égalité stricte.

Par contre avec cette syntaxe :

Code :
Comme "*" & [Formulaires]![dessin]![FiltreProjet] & "*"
Tu sélectionnes aussi lorsque [Formulaires]![dessin]![FiltreProjet] a la valeur « Null ».

J’ai donc modifié la requête rDESSIN_REQUETE et aussi le contenu de tes zones de liste.

Le bouton sert à remettre les trois filtres à Null => tout est alors sélectionné et au fur et à mesure que l’utilisateur remplit un filtre, les sélections se réduisent.
Fichiers attachés
Type de fichier : zip 20110804metaldan.zip (22,5 Ko, 11 affichages)
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 05h02   #13
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut merci

Merci pour ton aide

Je viens de regarder ton fichier. Bonne idée le code : comme * & variable & *


J'ai hate de la tester demain au travail sur win 7 et access 2010.
metaldan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 13h18   #14
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut mystère

C'est mystérieux. C'est moi sur winxp et access 2007 francais , tout est ok, mais je viens de tester au travail, avec win 7 et access 2010 anglais et quand j'ouvre le formulaire, une fenetre apparet et me demande de rentrer la valeurs des filtres manuellement. C'est la même choses quand je selectonne un filtre.

dan
metaldan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2011, 13h35   #15
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

C'est sans doute la différence de version français => anglais.

Dans la requête, là où tu as "formulaires", tu remplaces par "forms" et ça devrait marcher.
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2011, 23h53   #16
Futur Membre du Club
 
Inscription : décembre 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 58
Points : 17
Points : 17
Par défaut anglais vs francais

encore une fois un gros merci

c'était bien ca, la version francais comprends l'anglais, mais pas le contraire.

j'ai presque fini tout ce que je voulait faire
metaldan 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 13h37.


 
 
 
 
Partenaires

Hébergement Web