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 11/08/2011, 20h46   #1
Invité de passage
 
Homme
Inscription : août 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 4
Points : 1
Points : 1
Par défaut Formulaire/sous formulaire sur dernier enregistrement

Bonjour à tous,

J'ai besoin d'aide!

j'ai créé une base de donnée nommée CLIENTS et une base de donnée nommée DEVIS. Les 2 sont liées en one to many par une relation entre la clef primaire N° auto de CLIENTS à une colonne "N° Clients" dans DEVIS.

J'ai créé un formulaire Nouveaux clients, en mode "entrer donnée" qui contient un bouton Enregistrer et aller à Devis.

Pour le devis, mon problème est que je souhaite l'ouvrir sur le client que je viens d'enregistrer afin d'enregistrer le devis en question, et qu'il affiche tant qu'à faire le nom de ce client (imaginons une pause café, retour sur l'écran et plus de souvenir du client dont le devis est en cours).

J'ai donc fait un formulaire avec sous formulaire, mais impossible de trouver comment lui dire "Affiche moi le dernier enregistré". J'ai tenté de baser le tout sur une requête qui utilise les 2 tableaux, mais la encore problème: si la colonne ID est en opération sur "DERNIER", tout le reste est en "regroupement" (je ne trouve pas d'alternative) et le résultat ne veut pas m'afficher seulement le dernier.

J'ai pensé faire une requête sur le tableau "DEVIS" mais là encore problème: la colonne "N° clients" est vide tant qu'il n'y a pas d'entrée, je ne peux dnc pas m'appuyer dessus pour sortir le dernier client de la table ClIENTS.


J'espère avoir été suffisamment clair pour vous, je bute sur ce problème depuis 3 jours et c'est extrêmement frustrant. Je sens bien que j'ai perdu la logique ACCESS en ne l'utilisant plus depuis l'école... Merci pour votre attention

EDIT: S'il existe une forme plus simple pour naviguer entre les formulaires, je prends, encore une fois je me demande vraiment si j'utilise access dans sa logique.
Dahitaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2011, 14h08   #2
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
Bonjour ,
Je crois qu'il faut traiter ton problème en deux étapes car je ne crois pas que tu auras toujours à créer un nouveau client pour chaque devis (un client qui revient pour une deuxième ou plus de devis).
Pour afficher le dernier client enregistré tu pourras faire une requête qui a pour critère de regroupement "Max" du champs numéro automatique de la table clients (tu n'aura qu'a choisir dans la liste déroulante).
Tu pourra faire un sous formulaire basé sur cette requête et l'actualiser sur l'événement "réception focus " du formulaire ou un bouton si tu veux.
A+
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 09h35   #3
Invité de passage
 
Homme
Inscription : août 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 4
Points : 1
Points : 1
Merci mille fois pour cette réponse!
Je vais tenter de mettre en place cette solution et je reviens vers vous pour le débrief,

vraiment merci!
Dahitaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 10h27   #4
Invité de passage
 
Homme
Inscription : août 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 4
Points : 1
Points : 1
Citation:
Envoyé par dok flint Voir le message
Bonjour ,
Je crois qu'il faut traiter ton problème en deux étapes car je ne crois pas que tu auras toujours à créer un nouveau client pour chaque devis (un client qui revient pour une deuxième ou plus de devis).
Pour afficher le dernier client enregistré tu pourras faire une requête qui a pour critère de regroupement "Max" du champs numéro automatique de la table clients (tu n'aura qu'a choisir dans la liste déroulante).
Tu pourra faire un sous formulaire basé sur cette requête et l'actualiser sur l'événement "réception focus " du formulaire ou un bouton si tu veux.
A+
J'ai donc essayé la méthode mais je suis perdu.

Sur création de la requête, qui m'affiche bien le dernier client, je crée donc un nouveau formulaire "Devis" basé sur la requête créée pour le premier critère "Max numéro client" de la table client. Je souhaite ensuite afficher "coût" et "destination" de la table "Devis" sur le formulaire mais, quand je clique sur terminer, le bougre d'animal me met:

"Vous avez choisi des champs issus de sources d'enregistrement auxquelles l'assistant ne peut se connecter. Il est possible que vous ayez choisi des champs d'une table et d'une requête basée sur cette table. Si c'est le cas, essayez de choisir des champs venant de la table ou de la requête uniquement."

Je ne peux pas mettre tous les champs souhaités dans la requête, le tri ne s'effectuant plus correctement (il me fait des sommes de coûts etc). Si je crée un sous-formulaire dans le premier formulaire "Clients", cela complique les choses parce que le formulaire client est déjà énorme à remplir, de plus beaucoup de clients n'ont pas à avoir de devis. Enfin il ne me sort pas le dernier client de toutes façons, soit il m'affiche le premier soit je le mets sur "entrerdonnées" et dans ce cas je dois créer un nouveau client.

Je ne peux pas non plus créer un formulaire basé uniquement sur la table "Devis" avec sa colonne liée "N° Clients" puisque si un client n'a pas de devis (normal au départ), il n'apparait pas dans ma table devis.

Je me doute que je n'ai pas du bien comprendre la manœuvre, pourriez vous m'aider s'il vous plait? Un peu comme dans la guerre des étoiles, "aidez moi Dok Flint, vous êtes notre seul espoir"!

Merci pour votre temps

Edit: J'insère une image pour faciliter le tout

Dahitaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 13h46   #5
Invité de passage
 
Homme
Inscription : août 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : août 2011
Messages : 4
Points : 1
Points : 1
Ok j'ai avancé sur mon problème et voici où j'en suis:

Puisque je ne pouvais faire une requête avec plusieurs champs dont la première colonne est max ID (puisque qu'il refusait de m'afficher un client sans données sur les champs suivants), j'ai mis en type de lien "inclure tous les enregistrements de la table clients et seulement ceux de la table devis pour lesquels les champs joints sont égaux". J'ai donc maintenant inclus les clients (et donc le dernier enregistré) sans devis et je peux donc afficher le dernier.

surprise, quand je crée enfin le formulaire basé sur ma requête, tout s'affiche impeccable mais je ne peux pas rentrer de données! J'ai bien mis mon formulaire en "entrer données" mais pour le moment il ne veut pas puisque la requete est une requete SELECT.

Je cherche du côté des requetes "Ajout"

Edit: J'ai réglé mon problème! Suite à la modification de la liaison, j'ai changé quelquechose dans les propriété de ma requête qui m'a permis d'enregistrer directement dessus, et donc sur le formulaire derrière! Malheureusement, ayant changé plusieurs paramètres en même temps pour le test, je ne connais pas le paramètre correspondant mais l'essentiel du problème corrigé reste la relation entre mes tables.

Merci infiniment pour l'aide apportée,

bien cordialement
Dahitaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2011, 11h00   #6
Membre éclairé
 
Avatar de dok flint
 
Inscription : septembre 2003
Messages : 292
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : septembre 2003
Messages : 292
Points : 378
Points : 378
Bonjour ,
Une solution simple et pratique , merci pour les explications comme ça d'autres peuvent en profiter
Bonne continuation et A+
__________________
Pourquoi faire compliqué quand on peut faire simple
Je suis encore en ACCESS 2003
dok flint 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 11h09.


 
 
 
 
Partenaires

Hébergement Web