ACCESS : Récupérer des données par défaut...
Fermé
d_cer76
Messages postés
4
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
4 juillet 2008
-
3 juil. 2008 à 15:58
d_cer76 - 9 juil. 2008 à 15:50
d_cer76 - 9 juil. 2008 à 15:50
A voir également:
- ACCESS : Récupérer des données par défaut...
- Access appdata - Guide
- Acer quick access - Forum Logiciels
- Exemple base de données access à télécharger gratuit ✓ - Forum Logiciels
- You don't have permission to access this resource ✓ - Forum Réseaux sociaux
- Acer Quick Access - affichage CapsLock, VerrNum - Forum logiciel systeme
7 réponses
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
3 juil. 2008 à 17:07
3 juil. 2008 à 17:07
dans valeur par defaut, il faut rentrer une valeur fixe.
as tu plus de précisions quant à la "procédure evenementielle" ?
as tu plus de précisions quant à la "procédure evenementielle" ?
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
4 juil. 2008 à 09:25
4 juil. 2008 à 09:25
vu qu il n y a rien de précis d'indiqué, je crois que tu es libre de choisir entre du code ou une requete pour coller les valeurs de prix et tva de l article dans la facture créée.
d_cer76
Messages postés
4
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
4 juillet 2008
4 juil. 2008 à 10:54
4 juil. 2008 à 10:54
j'ai essayé sous forme de requete :
Select[Désignation].[T_Produits] from T_Produits Where [code_produit].[T_Produits]=[code_produit].[T_contenu_facture];
Je l'ai noté dans les propriétés du champs "désignation" de la requete R_contenu_facture, plus précisément dans "valeur par défaut"... mais ça ne fonctionne pas... Il ne m'affiche pas les valeurs attendues
Pourtant mes deux tables sont bien liées par les codes produits
Comment faire alors ?
Select[Désignation].[T_Produits] from T_Produits Where [code_produit].[T_Produits]=[code_produit].[T_contenu_facture];
Je l'ai noté dans les propriétés du champs "désignation" de la requete R_contenu_facture, plus précisément dans "valeur par défaut"... mais ça ne fonctionne pas... Il ne m'affiche pas les valeurs attendues
Pourtant mes deux tables sont bien liées par les codes produits
Comment faire alors ?
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
4 juil. 2008 à 11:00
4 juil. 2008 à 11:00
je crois que tu dois lancer une seconde requete, juste pour faire la mise à jour.
est il précisé dans l'énoncé que tu utilises un formulaire pour la saisie ?
est il précisé dans l'énoncé que tu utilises un formulaire pour la saisie ?
d_cer76
Messages postés
4
Date d'inscription
jeudi 3 juillet 2008
Statut
Membre
Dernière intervention
4 juillet 2008
4 juil. 2008 à 12:09
4 juil. 2008 à 12:09
Oui j'utilise un formulaire... ou plutot deux formaulaires comme décrit ci-dessous :
- Formulaire "F_facture" : contenant les champs "num_facture", "date_facture", "client", et d'autres champs relatifs aux coordonnées client
- Un Sous-Formulaire "SF_contenu_facture" : contenant les champs "code_produit", "quantité", "PU_HT", "Désignation", "TVA" et quelques champs calculés...
Je rappelle que ces deux fomulaires sont joints par le code facture.
De plus pour créer ces formulaires, j'ai prix le soin de créer d'abord une requete récupérant toutes les données utiles des diverses tables (T_client, T_Facture, T_contenue_facture, T_produit).
merci de ton (votre) aide.
- Formulaire "F_facture" : contenant les champs "num_facture", "date_facture", "client", et d'autres champs relatifs aux coordonnées client
- Un Sous-Formulaire "SF_contenu_facture" : contenant les champs "code_produit", "quantité", "PU_HT", "Désignation", "TVA" et quelques champs calculés...
Je rappelle que ces deux fomulaires sont joints par le code facture.
De plus pour créer ces formulaires, j'ai prix le soin de créer d'abord une requete récupérant toutes les données utiles des diverses tables (T_client, T_Facture, T_contenue_facture, T_produit).
merci de ton (votre) aide.
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
4 juil. 2008 à 17:05
4 juil. 2008 à 17:05
ce qu il est donc possible de faire c'est faire effectuer une action (executer la requete de mise à jour) sur un evenement donné.
soit le mise à jour d'un champ, le clic d un bouton,... auquel tu associes l'execution de la requete.
quand tu crées le formulaire, tu fais clic droit et propriété sur l'objet qui doit déclencher la mise à jour, puis tu vas sur l onglet evenement, tu choisis le plus approprié (sur clic pour un bouton par ex) et tu y indiques la requete à executer.
ça marche aussi en associant une macro ou du code.
soit le mise à jour d'un champ, le clic d un bouton,... auquel tu associes l'execution de la requete.
quand tu crées le formulaire, tu fais clic droit et propriété sur l'objet qui doit déclencher la mise à jour, puis tu vas sur l onglet evenement, tu choisis le plus approprié (sur clic pour un bouton par ex) et tu y indiques la requete à executer.
ça marche aussi en associant une macro ou du code.
Bonjour,
et merci pour ton aide. Désolé pour le retard mais j'i mis de coté ce problème durant ce weekend.
Voilà, J'ai repris l'ensemble de l'exercice, et j'ai essayé d'appliquer ce que tu m'as conseillé :
1 - J'ai créé une macro qui exécute la requete suivante :
SELECT T_Produits.Prix_Unitaire_HT FROM T_Produits INNER JOIN T_Contenu_Facture ON T_Produits.Code_produit = T_Contenu_Facture.Code_produit;
2 - Dans mon sous-formulaire "SF_contenu_facture", dans les propriétés du champ "PU_HT", j'ai appelé cette macro.
J'ai essayé dans plusieurs paramètres : "avant maj"- "apres maj", "sur clic" etc... mais ça ne veut pas fonctionner malgré tout
Peut-être faudrait-il que je te transmette ma bdd ?
cordialement,
et merci pour ton aide. Désolé pour le retard mais j'i mis de coté ce problème durant ce weekend.
Voilà, J'ai repris l'ensemble de l'exercice, et j'ai essayé d'appliquer ce que tu m'as conseillé :
1 - J'ai créé une macro qui exécute la requete suivante :
SELECT T_Produits.Prix_Unitaire_HT FROM T_Produits INNER JOIN T_Contenu_Facture ON T_Produits.Code_produit = T_Contenu_Facture.Code_produit;
2 - Dans mon sous-formulaire "SF_contenu_facture", dans les propriétés du champ "PU_HT", j'ai appelé cette macro.
J'ai essayé dans plusieurs paramètres : "avant maj"- "apres maj", "sur clic" etc... mais ça ne veut pas fonctionner malgré tout
Peut-être faudrait-il que je te transmette ma bdd ?
cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
7 juil. 2008 à 12:38
7 juil. 2008 à 12:38
il faut que ta macro execute une requete de mise à jour, une requete selection ne va rien modifier.
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
7 juil. 2008 à 14:30
7 juil. 2008 à 14:30
quand tu selectionne le type de requete, et suivant la langue / version d'access, c'est update ou mise à jour.
Voilà ce que j'ai essayé :
- Création d'une macro qui execute le SQL suivant :
UPDATE T_contenu_facture set PU_HT=(SELECT Prix_Unitaire_HT
FROM R_Produits INNER JOIN (T_Facture INNER JOIN T_Contenu_Facture ON T_Facture.Num_facture = T_Contenu_Facture.Num_Facture) ON R_Produits.Code_produit = T_Contenu_Facture.Code_produit);
- Dans les propriété du champs PU_HT de mon sous formulaire F_contenu_facture, j'ai appelé cette macro (en essayant plusieurs possibilités (avant update - apres update - sur entrée etc...)
Résultat : ça ne marche pas à chaque fois
J'ai aussi essayé avec la requete suivante : UPDATE T_Contenu_facture SET PU_HT = Prix_Unitaire_HT WHERE code_produit.T_Produits=code_produit.T_contenu_Facture;
mais en vain...
J'avoue que je ne sais plus trop comment procéder là
- Création d'une macro qui execute le SQL suivant :
UPDATE T_contenu_facture set PU_HT=(SELECT Prix_Unitaire_HT
FROM R_Produits INNER JOIN (T_Facture INNER JOIN T_Contenu_Facture ON T_Facture.Num_facture = T_Contenu_Facture.Num_Facture) ON R_Produits.Code_produit = T_Contenu_Facture.Code_produit);
- Dans les propriété du champs PU_HT de mon sous formulaire F_contenu_facture, j'ai appelé cette macro (en essayant plusieurs possibilités (avant update - apres update - sur entrée etc...)
Résultat : ça ne marche pas à chaque fois
J'ai aussi essayé avec la requete suivante : UPDATE T_Contenu_facture SET PU_HT = Prix_Unitaire_HT WHERE code_produit.T_Produits=code_produit.T_contenu_Facture;
mais en vain...
J'avoue que je ne sais plus trop comment procéder là
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
8 juil. 2008 à 10:49
8 juil. 2008 à 10:49
pour faire simple, tu peux créer un bouton pour enregistrer ta facture.
avec l'assistant de création de bouton, tu choisis "opérations sur enregistrements" / "sauvegarder".
il va te créer du code, mais tu peux le faire dans une macro si tu ne connais pas.
il te reste à ajouter ta requete de mise à jour dans les actions executées par le bouton.
il faut peut etre ajouter une condition dans ta requete de mise à jour, pour qu elle ne se fasse que "si le champ prix HT est null"
avec l'assistant de création de bouton, tu choisis "opérations sur enregistrements" / "sauvegarder".
il va te créer du code, mais tu peux le faire dans une macro si tu ne connais pas.
il te reste à ajouter ta requete de mise à jour dans les actions executées par le bouton.
il faut peut etre ajouter une condition dans ta requete de mise à jour, pour qu elle ne se fasse que "si le champ prix HT est null"
4 juil. 2008 à 06:23
j'ai une table "produit" dans laquelle j'ai les champs "code_produit","designation", "Prix_Unitaire_HT" et "tva". Dans une autre table "contenu_facture", j'ai les champs "num_facture", "code_produit", "quantité", des champs calculés "total_HT" et "total_TTC"; mais je dois aussi reprendre les champs "désignation", "PU_HT" et "TVA".
La solution la plus simple serait de faire appel à ces 3 champs en provenance de la table Produit, au moment ou je créé la requete "R_contenu_facture". Mais le problème c'est que si demain je décide par exemple de changer le prix unitaire d'un produit référencé, toutes mes factures faisant appel au produit, seront modifiées et donc fausses...
L'autre solution conseillée est donc la suivante : rajouter les 3 champs "désignation", "PU_HT" et "TVA" aussi dans la table "contenu_facture". Ainsi, je fait une requete en prenant ces 3 champs, mais il faut par défaut, faire en sorte que ces champs affichent les valeurs liées au code produit correspondant.
Je ne sais pas si j'ai été suffisamment clair, alors je me permets de citer une partie de l'exercice en question :
-------------------------------------------------------------------------------------------------------------------------
Cette table reprend toutes les lignes de la facture... Le contenu en lui-même doit obligatoirement reprendre:
- le code du produit
- la quantité.
Le choix des autres champs est plus délicat, mais les renseignements obligatoires sur le document commercial sont : le prix unitaire, le taux TVA, la description.
- Ces 3 champs peuvent être repris de la table produits directement ou recopiés lors de la création de la facture de cette table. Si nous reprenons directement les propriétés de la table produit, un changement de prix dans notre table produit influencera directement l'impression d'anciennes factures. De plus, il ne sera pas possible de modifier le prix ou la description en cours de facturation. La solution consiste donc à effectivement créer les champs Prix, description et taux de TVA. Lors de l'introduction de la ligne de facture, nous utiliserons une procédure événementielle pour récupérer les données de la table produits par défaut (mais nous pourrons faire des modifications éventuelles).Changer le prix dans la table produit ne modifiera pas le prix dans les anciennes factures.
-------------------------------------------------------------------------------------------------------------------------
Voilà, je reste toujours disponible pour d'autres informations si besoin. Merci bcp pour votre aide, je me sents moins seul devant mon ignorance.