Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1609 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Conception de base de donnée

n°2325922
aculy
Posté le 10-12-2018 à 09:15:37  profilanswer
 

Reprise du message précédent :
D'apres l'aide de ACCESS/VBA
 

Code :
  1. DAO.DBEngine.BeginTrans


 --> c'est pour débuter la transaction
 

Code :
  1. CurrentDb.Execute "UPDATE Stock_KN SET Stock_KN.Qt_conso_stock = Stock_KN.Qt_conso_stock+Input_Stock.Qt_input WHERE Stock_KN.Ref_conso = Input_Stock.Ref_Input"


--> je lance mon code pour faire ce que je veux
 

Code :
  1. DAO.DBEngine.CommitTrans


--> je dis que c'est fini et qu'il faut écrire
 
mais j'ai trouvé ... enfin une partie.. j'arrive a écrire dans ma table
ok c'est pas au bon endroit et cela ne fait pas ce que je veux tout a fait...
 
La table était vide et en mettant simplement un 0 cela incrémente (pas les bons chiffres mais cela se modifie...)

mood
Publicité
Posté le 10-12-2018 à 09:15:37  profilanswer
 

n°2325924
aculy
Posté le 10-12-2018 à 09:35:59  profilanswer
 

je sais pas pourquoi mais il incrémente toujours ma dernière référence de 500 avec ce code...
j'ai mis un espace avant et après mon "+"
cela ne change rien.

n°2325925
aculy
Posté le 10-12-2018 à 09:52:32  profilanswer
 

....
j'y comprends plus rien...
à l'instant mon code écrivait pas ce que je voulais mais écrivais
et la plus rien....

n°2325929
aculy
Posté le 10-12-2018 à 11:15:30  profilanswer
 

j'avance progressivement...
c'est dans ma jointure que je dois avoir un soucis
car ceci fonctionne

Code :
  1. UPDATE Stock_KN
  2. SET Stock_KN.Qt_conso_stock = 250;


 
mais quand je veux joindre les 2 tables...
 
je vais donc suivre ce chemin la

n°2325932
rufo
Pas me confondre avec Lycos!
Posté le 10-12-2018 à 11:23:09  profilanswer
 

Tu peux pas faire de jointure dans un UPDATE il me semble avec Access :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2325947
aculy
Posté le 10-12-2018 à 15:33:17  profilanswer
 

faudrait que j'arrive a mettre les valeurs dans une tables les additionner et renvoyer le résultat du coup...
si je ne peux pas faire de jointure dans un update...

n°2325964
aculy
Posté le 11-12-2018 à 10:21:08  profilanswer
 

Est ce que c'est faisable dans une req de faire un tableau ?
 
j'ai 3 tables qui ont des data quasi identique..
 
Ref/Date/QT
 
seul les noms des champs changent  
pour chaque table j'ai input/stock/output en plus...
 
mais leur type est identique....
peut on via une req sort moi un tableau avec les data  
mais dire que Ref_input=Ref_output=Ref_stock  
donc les mettre dans la colonne Ref  
et faire la même pour date et QT ?
....
je sais plus comment faire j'ai trouvé un truc sur un autre forum mais je comprends pas il y a des fonctions...  
et je ne sais pas comment elles sont lancé car pas de trace dans le reste du code....
https://www.cjoint.com/c/HLljvYfHuig


Message édité par aculy le 11-12-2018 à 10:22:21
n°2325971
aculy
Posté le 11-12-2018 à 11:21:54  profilanswer
 

Code :
  1. UPDATE ((test AS T1 INNER JOIN Stock_KN AS T2 ON T2.Ref_conso = T1.Ref)
  2. INNER JOIN Output_Stock AS T3 ON T3.Ref_output = T1.REF)
  3. INNER JOIN Input_Stock AS T4 ON T4.Ref_Input = T1.Ref
  4. SET T1.Qt = (T2.Qt_conso_stock + T4.Qt_input) - T3.Qt_output, T1.[date] = Now();


 
en passant par une table TEST cela fonctionne....
je vais voir pour l'intégrer dans ma base

n°2325974
aculy
Posté le 11-12-2018 à 12:01:04  profilanswer
 

....
cela se mets à jours mais si j'ai 2 fois la même ref dans input ou output il ne me prends qu'une des 2 valeurs....
je continu de creuser...

n°2326308
aculy
Posté le 18-12-2018 à 13:21:24  profilanswer
 

je test autre chose du coup
j'ai toujours une tables avec mes ref
mais je crée un table avec les mouvement
REF(ID_ref, Ref_art)
MVT(ID_ref, Ref_art, date_mvt, qt_mvt)
 
je pense que de la je vais pouvoir faire un état des stocks....
enfin j'espère

mood
Publicité
Posté le 18-12-2018 à 13:21:24  profilanswer
 

n°2326526
aculy
Posté le 19-12-2018 à 18:46:34  profilanswer
 

cela fonctionne... cool
mais j'ai un autre soucis sur ma requete fournisseur
mon but est d'avoir un état avec la liste de fournisseur et les contacts si il y en a.....
j'ai 2 tables
Contact (Id,nom,prenom,societe) 3 contacts dont 2 chez le fourn A
Fournisseur(ID,nom,adresse) Fourn, A Fourn, B Fourn C
nom = societe (relation entre les tables)
 
j'ai écrit en code
 

Code :
  1. SELECT tb_Contacts.Civilité_contact, tb_Contacts.Nom_contact, tb_Contacts.Prenom_contact, tb_Contacts.Mail_contact, tb_Contacts.Tel_contact, tb_Fournisseurs.Nom_fournisseur
  2. FROM tb_Fournisseurs Left JOIN tb_Contacts ON tb_Fournisseurs.Nom_fournisseur = tb_Contacts.Societe_contact;


 
et cela ne me donne que 3 lignes,1 par fournisseurs mais seulement un contact pour le Fourn A et pas mon contact chez le fourn B....
 
aller j'arrive au bout de ce dev...
on va y arriver...
 
Rufo si tu as une idée... ou si tu vois ou je me suis planté...

n°2326530
rufo
Pas me confondre avec Lycos!
Posté le 19-12-2018 à 20:34:04  profilanswer
 

Tu ne devrais pas faire des jointures sur des chaînes de caractères comme le nom d'entreprises :o Si tu changes le libellé d'une entreprise, va falloir le changer partout. Mets des ID sous forme d'entiers.
Tu peux montrer les enregistrements de chaque table, svp ?
Essayes en remplaçant le left join par un inner join.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2326554
aculy
Posté le 20-12-2018 à 10:04:15  profilanswer
 
n°2326822
aculy
Posté le 26-12-2018 à 16:15:38  profilanswer
 

ça avance ça avance...
(ok je suis très en retard c'était un livrable pour la mi-décembre... mais je me le livre à moi-même....)
 
la partie stock avec les input et output --> ok
création des articles, du fournisseur et des contacts --> ok
 
il ne me reste que la partie que je savais être la plus compliqué pour moi... la création d'un BDC.
 
voici la partie fournisseur de mes tables
https://www.cjoint.com/c/HLApggRn5wP
 
et voici ce que j'essai de faire en formulaire
https://www.cjoint.com/c/HLAph3sHsoP
 
j'arrive à récupérer le Num commande mais j'ai toutes les ref de tous les fournisseurs...  
j'aimerais que dans le tableau je n'ai que la liste déroulante des ref du fournisseur....
 
et je sais pas comment faire...
tout comme à la fin il me faudra aussi le prix de l'articles....
dans ma table ligns commande j'ai un champs calculé par article (Qt*Prix)
le tout me permettra ensuite d'imprimer un état pour un BDC .... avec un total par article et complet


Message édité par aculy le 26-12-2018 à 16:23:28
n°2326835
rufo
Pas me confondre avec Lycos!
Posté le 26-12-2018 à 22:23:20  profilanswer
 

T'as un pb de modélisation : Ta table des ref articles doit avoir en clé étrangère la table des fournisseurs. Ta table commandes doit aussi avoir en clé étrangère la table des fournisseurs.
En effet, il faut distinguer les 2 relations : l'une concerne les références d'articles proposés (un catalogue en quelque sorte) et l'autre concerne l'approvisionnement. Avec ton système, sans commande, tu ne peux avoir de ref d'articles par fournisseur :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2326848
aculy
Posté le 27-12-2018 à 13:52:29  profilanswer
 
n°2326850
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2018 à 14:20:33  profilanswer
 

Le total est inutile car calculable, donc à ne pas stocker (cf principe de la forme 3NF de Kodd) :o
Par contre, t'as oublié la TVA qui elle, doit figurer dans la table ligne commande. Et comme indiqué à plusieurs reprises, tu devrais mettre comme clé primaire (et donc étrangère) des entiers de 1 à n. C'est plus simple et efficace pour les jointures et certaines requêtes.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2326855
aculy
Posté le 27-12-2018 à 15:18:05  profilanswer
 

plutot comme ceci alors
j'ai rajouté TVA supprimé total dans lgns_commandes
et j'ai rajouté un numéro auto en ID pour les commandes...
 
https://www.cjoint.com/c/HLBor1bmVHP
 

n°2326857
rufo
Pas me confondre avec Lycos!
Posté le 27-12-2018 à 16:53:11  profilanswer
 

Il faut retirer num_commande de la table lignes_commandes puisque cette valeur se trouve déjà dans la table commandes.
Et on est bien d'accord que dans la table des refs d'articles, la clé étrangère est id_fournisseur et pas "fournisseurs". De même, dans la table lignes_commandes, la clé étrangère, c'est id_ref_fournisseur et pas "ref_article".
 
Question : la ref_article, c'est la référence d'un article (et son prix) chez un fournisseur ou le part/number d'un produit d'un fabriquant, auquel cas, plusieurs fournisseurs peuvent proposer le même P/N à des prix différents ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2326961
aculy
Posté le 02-01-2019 à 10:38:48  profilanswer
 

Bonne année... après les congés je me remets sur ma base...
 

Citation :


Il faut retirer num_commande de la table lignes_commandes puisque cette valeur se trouve déjà dans la table commandes.  


justement cette valeur n'étant pas dans commandes je ne vois pas comment faire... j'ai une commande avec plusieurs lignes donc pour moi j'ai une table commande puis une table ligne ou j'identifie ma commande et une ligne de la commande puis une autre etc etc...
 

Citation :


Et on est bien d'accord que dans la table des refs d'articles, la clé étrangère est id_fournisseur et pas "fournisseurs"


euh...  
https://www.cjoint.com/c/IAcjKmfhyGL
https://www.cjoint.com/c/IAcjLPDw22L
 

Citation :


Question : la ref_article, c'est la référence d'un article (et son prix) chez un fournisseur ou le part/number d'un produit d'un fabriquant, auquel cas, plusieurs fournisseurs peuvent proposer le même P/N à des prix différents ?


c'est la référence chez le fournisseur pas le part number
un article n'est vendu que par un seul fournisseur...

n°2326977
rufo
Pas me confondre avec Lycos!
Posté le 02-01-2019 à 12:03:17  profilanswer
 

aculy a écrit :

Bonne année... après les congés je me remets sur ma base...
 


Citation :

Il faut retirer num_commande de la table lignes_commandes puisque cette valeur se trouve déjà dans la table commandes.  
justement cette valeur n'étant pas dans commandes je ne vois pas comment faire... j'ai une commande avec plusieurs lignes donc pour moi j'ai une table commande puis une table ligne ou j'identifie ma commande et une ligne de la commande puis une autre etc etc...
 

Citation :


 
 
Et on est bien d'accord que dans la table des refs d'articles, la clé étrangère est id_fournisseur et pas "fournisseurs"


euh...  
https://www.cjoint.com/c/IAcjKmfhyGL
https://www.cjoint.com/c/IAcjLPDw22L
 

Citation :

Question : la ref_article, c'est la référence d'un article (et son prix) chez un fournisseur ou le part/number d'un produit d'un fabriquant, auquel cas, plusieurs fournisseurs peuvent proposer le même P/N à des prix différents ?


c'est la référence chez le fournisseur pas le part number
un article n'est vendu que par un seul fournisseur...


Dans la table des lignes de commandes, tu dois avoir id_commande mais pas num_commande. Le num_commande sera obtenu via la jointure entre les 2 table sur id_commande.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2326980
aculy
Posté le 02-01-2019 à 12:24:24  profilanswer
 

cela doit donc donner ceci :
https://www.cjoint.com/c/IAclylJkVlL

n°2327009
aculy
Posté le 02-01-2019 à 16:51:03  profilanswer
 

Pour le moment ma base donne ceci....
graphiquement c'est pas au top mais bon on va faire avec pour une premiere....
 
https://www.cjoint.com/c/IAcpXIV2sxL
 
je continue sur la partie Commande
mais la partie stock fonctionne donc je la mets en route auprès de mes utilisateurs
je cacherais les boutons non fonctionnel pour le moment

n°2327024
rufo
Pas me confondre avec Lycos!
Posté le 02-01-2019 à 18:49:15  profilanswer
 

Pareil, dnas la table des lignes de commandes, c'est id_article qu'il faut avoir en clé étrangère et non la ref de l'article.
 
"donc je la mets en route auprès de mes utilisateurs " :??:
Rassure-moi, t'utilises pas Access pour faire une appli multi-users ?


Message édité par rufo le 02-01-2019 à 18:49:27

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2327061
aculy
Posté le 03-01-2019 à 09:17:46  profilanswer
 

non t’inquiète pas c'est pas du multi-userq instantané
et on ne sera que 3 dessus de temps en temps
un gars pour les conso de production, un gars pour les conso informatique et moi pour l'approvisionnement.
 
je regarde pour lignes commandes

n°2327719
aculy
Posté le 16-01-2019 à 09:56:18  profilanswer
 

Voila je me remets sur ma base.
j'ai fait des petites modifications pour améliorer des choses visuellement a droite à gauche entre temps sur la partie gestion de stock
je rattaque la partie commande.
 
j'ai bien corrigé ce que tu m'avais dit RUFO

Citation :

Pareil, dnas la table des lignes de commandes, c'est id_article qu'il faut avoir en clé étrangère et non la ref de l'article.


mais j'ai pas mis en route la base, les gars m'ont dit on attends la partie commande...

n°2327971
aculy
Posté le 21-01-2019 à 18:08:25  profilanswer
 

j'ai voulu refaire mes formulaires pour mon bon de commande
en reprenant depuis le début
c'est à dire créé une formulaire qui créé un bon de commande (sans articles) juste la date le fournisseur et le num commande

Code :
  1. Option Compare Database
  2. Option Explicit
  3. Private Sub Form_BeforeInsert(Cancel As Integer)
  4.     Me.Num_commande = "BDC" & Format(Date, "yyyymmdd" ) & "_" & Format(Right(Nz(DMax("Num_commande", "tb_Commandes" ), 0), 4) + 1, "0000" )
  5.     Me.Date_commande = Format(Date, "dd/mm/yyyy" )
  6. End Sub


 
mais dans ma liste déroulante il me donne les ID et pas les noms de mes fournisseurs.... pourtant cela fonctionnait et sur d'autres formulaires cela tourne bien....
 
https://www.cjoint.com/c/IAvrigZBTgh
 
comprends pas...

n°2328002
aculy
Posté le 22-01-2019 à 12:16:13  profilanswer
 

j'ai trouvé... je suis passé par les propriété de la liste
j'ai mis  
 https://www.cjoint.com/c/IAwlp5vR0Wh
 
et cela fonctionne niquel

n°2328012
aculy
Posté le 22-01-2019 à 17:04:45  profilanswer
 

j'avance j'avance...
je bute sur 2 soucis.
voici le formulaire qui me pose soucis (je termine mes bons commandes)
https://www.cjoint.com/c/IAwp60ooxah
 
premier soucis
récupérer le prix unitaire lorsque je choisi mon article...
 
deuxième soucis
faire un total de toute la commande
ma colonne TTHT fonctionne  
pour mes test du coup je mets une valeur dans le prix de l'article.
Alors du coup, j'ai rajouté en bas dans le pied de formulaire une zone de texte où j'ai mis dans la source de la commande

Code :
  1. =Somme([Qt_article]*[Prix_unitaire])


Mais cela me mets --> #Erreur dans la case total....
je creuse mais si quelqu'un a la solution ou de quoi m'aiguiller je prends.

n°2328434
aculy
Posté le 31-01-2019 à 10:11:27  profilanswer
 

j'ai réussi à récupérer les prix pour mes articles...
je ne mettais pas mon code au bon endroit
je fais donc bien mon TTHT
maintenant reste le total de tous mes articles.....

n°2328458
aculy
Posté le 31-01-2019 à 17:18:17  profilanswer
 

Et voila mon bon de commande se fait
reste l'impression de celui-ci est c'est good je pense pour moi sur cette base....
le voici en PJ
https://www.cjoint.com/c/IAFqrPf1GkW

n°2328534
aculy
Posté le 01-02-2019 à 18:35:33  profilanswer
 

j'ai essayé d'imprimer via la création d d'un bouton qui propose imprimer le formulaire en cours
mais pas top
car dans mon formulaire je ne mets pas tout ce qui dois être sur le BDC
me faudrait un bouton qui imprime un état qui récupère les data du formulaire en cours...
a travaillé semaine prochaine...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Un compteur d'affichages avec base de donnéesliaison entre datagrid et base de données
Bien placer la base de données sur PHPmyadminConception plateforme achats (problème remue méninges)
Création base de données avec Entity code firstLibreOffice.Base : Dédoublonner : Jointure de 2 tables
Sauvegarde d'images dans une base de donnée[RESOLU] Renseigner automatiquement une donnée de registre
freeware de conception base de donnée? 
Plus de sujets relatifs à : Conception de base de donnée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR