raph28
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 1 août 2006
-
31 juil. 2006 à 14:49
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 2013
-
1 août 2006 à 10:57
Bonjour,
J'ai créé une base de données Access à mon travail pour regrouper
mes informations clients.
Il y a une table 'client' avec les données générales (nom, adresse,
contact etc) puis des tables annexes 'compta', 'paie', 'gescom'
(précisions que je vends des logiciels de gestion).
J'ai donc créé un formulaire qui récapitule les données de la base
'client' et j'ai ajouté des boutons de commandes menant aux 3 autres
tables.
Le problème c'est que si je suis par exemple sur le client n°20 et
que je clique sur le bouton 'compta' pour connaître les infos
concernant son logiciel de compta, ça m'ouvre le formulaire 'compta'
mais je me remets au client n°1 !
Comment puis-je faire pour qu'il me mette directement les infos du
même numéro client ?
Est-ce qu'il faut mettre du code ? (car je ne sais pas faire...)
cs_thephil
Messages postés189Date d'inscriptionmercredi 21 août 2002StatutMembreDernière intervention19 janvier 2011 31 juil. 2006 à 15:04
il faut (de mes souvenirs d'access) insérer ton formulaire compta dans le formulaire client en tant que sous formulaire, et spécifier les propriétés champs père et champs fils, pour indiquer au sous formulaire compta que tu veux voir les infos liée/correspondant à celle de ton formulaire principal.
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 31 juil. 2006 à 15:50
Ca me parait difficilement insérable dans une macro. Ce n'est pas très compliqué d'ouvrir un formulaire en code VBA :
Formulaire pricipal en mode création - Clique 2 fois sur le bouton pour avoir la fenêtre propriété - Dans l'onglet Evenement - Sur Clic - Clique sur les (...) à droite. Tu tombes dans l'éditeur VBA
Il te place en dessous d'une private Sub - Tu tapes :
La première ligne est pour ouvrir le formulaire que tu veux en le désignant par son nom ("Compta"). Docmd.OpenForm est une commande spéciale Access.
La deuxième ligne spécifie au formulaire que tu as ouvert que tu veux appliquer un filtre. Tu n'auras donc que les enregistrements qui t'intéressent.
Forms!Compta est pour désigner le formulaire - Recordset est la source du formulaire qui se charge automatiquement à l'ouverture (contenu de la table compta) - Filter est la commande pour appliquer un filtre sur le recordset.
Yann
Vous n’avez pas trouvé la réponse que vous recherchez ?
raph28
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 1 août 2006 31 juil. 2006 à 15:08
Effectivement, de cette façon ça fonctionne mais comme il y a beaucoup d'informations sur chaque client, j'aurais préféré avoir plusieurs pages avec des liens entre elles par le nom du client ?
raph28
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 1 août 2006 31 juil. 2006 à 15:33
Voilà ce que je craignaias... du code VBA...
Alors en fait je n'ai pas de code pour ouvrir le formulaire mais une macro toute bête qui ouvre le formulaire.
Donc j'ai essayé d'ajouter dans ma macro 'ExécuterCode' puis
Forms!compta.Recordset.Filter "[Client] " & Me.[Intitulé]
Où [Client] est le nom du champ client dans ma table 'compta' et où [Intitulé] est le champ du nom du client dans mon formulaire prinicpal 'client'
Ca ne fonctionne pas et ça me met le message suivant : "l'objet ne contient pas d'objet d'automatisation 'Me'." puis une fenêtre disant que l'action a échoué.
Pour info, je n'ai pas défini de clé primaire dans mes tables et les relations créées entre les tables n'ont aps d'intégrité rférencielle, est-ce que ça pose problème ?<?xml:namespace prefix v ns "urn:schemas-microsoft-com:vml" /??><v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype>
raph28
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 1 août 2006 31 juil. 2006 à 16:05
Malheureusement rien ne se passe, j'ai écrit le code comme tu m'as dit mais après enregistrement des modifs, quand je rouvre le formulaire et que je clique sur le bouton de commande, ça ne marche pas.
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 31 juil. 2006 à 16:27
Bah ca parait bon,
Qu'est ce que tu entends par ca ne marche pas ? Le formulaire ne s'ouvre pas ? Il n'affiche pas ce que tu veux ?
As-tu d'écrit [procédure evenementielle] en face de "Sur Clic" dans l'onglet Evenement de la propriété du bouton ?
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 31 juil. 2006 à 16:47
Dans la syntaxe "From Compta", "Compta" désigne le nom de la table source du formulaire. Si elle a un nom différent du formulaire, il faut modifier la syntaxe.
raph28
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 1 août 2006 31 juil. 2006 à 16:52
Alors répnse dans l'ordre :
- Oui le formulaire ne s'ouvre pas
- J'ai essayé sans [procédure évènementielle] et avec mais quand elle est affichée, ça m'ouvre VBA et ça me dit qu'il y a une erreur de code.
- Effectivement c'est bien du texte dans [Intitulé] donc peut-être que ça va marché
- Ma table compta a le même nom que mon formulaire compta
raph28
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 1 août 2006 31 juil. 2006 à 17:08
Euh ça me remet dans le code après un 'when' que je n'ai jamais écrit... et ça me dit "erreur de compilation : instruction incorrecte à l'extérieur d'une procédure"
je fais OK et le code que j'avais est parti...
Bref je pense que je vais opter pour les sous-formulaires... dans la mesure où on peut en mettre 3 et créer des onglets qui mettent en avant la page souhaitée histoire de gagner de la place
raph28
Messages postés11Date d'inscriptionlundi 31 juillet 2006StatutMembreDernière intervention 1 août 2006 31 juil. 2006 à 17:11
Pour faire plus simple et si tu as le temps de jeter un oeil, je possède netviewer (logiciel type PCAnywhere) on se connecte et je te laisse regarder ma base.
tri_yann
Messages postés124Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention19 septembre 20133 1 août 2006 à 09:21
Désolé, je ne peux pas trop me permettre, je suis au boulot et j'ai un soucis d'internet chez moi. Si c'est une mdb, essaie de l'envoyer par mail sur [mailto:ytriquet@gmail.com ytriquet@gmail.com]