Page 1 sur 1
[Résolu] formulaire avec plusieurs tables
Publié : 25 nov. 2018 15:16
par fcka
bonjour,
j'ai fais un mcd que je voudrai tester dans un seul formulaire.
j'ai positionné chaque table dans le formulaire et relié les clés mais cela ne marche pas.
pourriez vous s'il vous plait m'indiquer quelle est l'astuce? merci par avance.
ps.: je suis preneur d'un exemple.
merci
Re: formulaire avec plusieurs tables
Publié : 25 nov. 2018 18:58
par jeanmimi
Bonjour,
fcka a écrit :j'ai positionné chaque table dans le formulaire et relié les clés mais cela ne marche pas.
Avec la copie d'écran comme seul indice, il est impossible de savoir ce qui empêche le fonctionnement.
Donc, au hasard, est-ce qu'il n'y aurait pas une relation entre deux champs de qualités différentes, par ex INTEGER avec TEXT ?
Il manque une Table des vendeurs, ce qui éviterait de saisir leur nom pour chaque transaction.
Re: formulaire avec plusieurs tables
Publié : 25 nov. 2018 20:33
par fcka
Bonjour,
Je ne trouve pas le pb ... J'ai essayé de faire le formulaire avec seulement 3 tables (dia, ref, bien) et cela ne fonctionne pas.
Ci-dessous le code de ces 3 tables (la base est sur postgresql et 'base' le sert d'interface).
Code : Tout sélectionner
------------------------------------------------------------
-- Table: bien
------------------------------------------------------------
CREATE TABLE public.bien(
num_bien SERIAL NOT NULL ,
vendeur VARCHAR (50) NOT NULL ,
date_recep_mairie DATE NOT NULL ,
date_recep_pref DATE NOT NULL ,
CONSTRAINT bien_PK PRIMARY KEY (num_bien)
)WITHOUT OIDS;
------------------------------------------------------------
-- Table: dia
------------------------------------------------------------
CREATE TABLE public.dia(
num SERIAL NOT NULL ,
num_dia INT NOT NULL ,
adresse_du_bien VARCHAR (150) ,
acquereur VARCHAR (50) ,
montant_euros NUMERIC (10,2) ,
copropriete BOOL ,
superficie_bien_m2 NUMERIC (10,2) ,
superficie_terrain_m2 NUMERIC (15,2) ,
ref_cadas_longue VARCHAR (100) ,
num_bien INT NOT NULL ,
CONSTRAINT dia_PK PRIMARY KEY (num)
,CONSTRAINT dia_bien_FK FOREIGN KEY (num_bien) REFERENCES public.bien(num_bien)
)WITHOUT OIDS;
------------------------------------------------------------
-- Table: _ref_cadas
------------------------------------------------------------
CREATE TABLE public._ref_cadas(
pk_ref SERIAL NOT NULL ,
section VARCHAR (2) ,
parcelle VARCHAR (4) ,
ind_partie BOOL ,
superf_ha INT ,
superf_a INT ,
superf_ca INT ,
num INT NOT NULL ,
CONSTRAINT _ref_cadas_PK PRIMARY KEY (pk_ref)
,CONSTRAINT _ref_cadas_dia_FK FOREIGN KEY (num) REFERENCES public.dia(num)
)WITHOUT OIDS;
Re: formulaire avec plusieurs tables
Publié : 25 nov. 2018 21:05
par jeanmimi
Pourquoi les clés primaires ne sont-elles pas de typé INTEGER ?
Re: formulaire avec plusieurs tables
Publié : 25 nov. 2018 21:51
par fcka
bonjour,
j'avoue que je n'ai pas beaucoup d'expérience... j'ai lu qu'il faut absolument une clé primaire par table et que cette clé doit être non nulle et unique.
Du coup une variable auto-incrémentée pour chaque ligne dans chaque table me semblait être une bonne solution.
je viens de générer à nouveau le code avec des clés primaires typées integer, mais cela coince encore...
Code : Tout sélectionner
-- Table: bien
------------------------------------------------------------
CREATE TABLE public.bien(
num_bien INTEGER NOT NULL ,
vendeur VARCHAR (50) NOT NULL ,
date_recep_mairie DATE NOT NULL ,
date_recep_pref DATE NOT NULL ,
CONSTRAINT bien_PK PRIMARY KEY (num_bien)
)WITHOUT OIDS;
------------------------------------------------------------
-- Table: dia
------------------------------------------------------------
CREATE TABLE public.dia(
num INTEGER NOT NULL ,
num_dia INT NOT NULL ,
adresse_du_bien VARCHAR (150) ,
acquereur VARCHAR (50) ,
montant_euros NUMERIC (10,2) ,
copropriete BOOL ,
superficie_bien_m2 NUMERIC (10,2) ,
superficie_terrain_m2 NUMERIC (15,2) ,
ref_cadas_longue VARCHAR (100) ,
num_bien INTEGER NOT NULL ,
CONSTRAINT dia_PK PRIMARY KEY (num)
,CONSTRAINT dia_bien_FK FOREIGN KEY (num_bien) REFERENCES public.bien(num_bien)
)WITHOUT OIDS;
------------------------------------------------------------
-- Table: _ref_cadas
------------------------------------------------------------
CREATE TABLE public._ref_cadas(
pk_ref INTEGER NOT NULL ,
section VARCHAR (2) ,
parcelle VARCHAR (4) ,
ind_partie BOOL ,
superf_ha INT ,
superf_a INT ,
superf_ca INT ,
num INTEGER NOT NULL ,
CONSTRAINT _ref_cadas_PK PRIMARY KEY (pk_ref)
,CONSTRAINT _ref_cadas_dia_FK FOREIGN KEY (num) REFERENCES public.dia(num)
)WITHOUT OIDS;
Re: formulaire avec plusieurs tables
Publié : 26 nov. 2018 09:03
par jeanmimi
En modifiant légèrement ton code (noms des champs entre guillemets) :
Code : Tout sélectionner
CREATE TABLE T_public_bien ("ID_num_bien" INTEGER IDENTITY , "Vendeur " VARCHAR(50), "date_recep_mairie" DATE, "date_recep_pref" DATE)
en Mode SQL, je crée bien la Table que j'ai appelée T_public_bien.
CREATE TABLE.png
Par Affichage > Actualiser les Tables, ou après enregistrement de la Base et fermeture, à sa réouverture la Table est bien présente.
Re: formulaire avec plusieurs tables
Publié : 27 nov. 2018 00:24
par fcka
bonjour,
merci pour votre aide, mais cela ne répond pas tout à fait à mon problème de départ. Désolé.
mon pb est de ne pas pourvoir faire de la saisie dans un formulaire composée de mes 3 tables.
J'ai trouvé un tuto sur internet
https://www.youtube.com/watch?v=TcudVETPePY qui montre comment faire justement un formulaire avec 3 tables.
Dans ce tuto, j'ai noté que la clé primaire de la table principale est la clé étrangère dans les 2 autres tables et ce n'est justement pas mon cas.
C'est peut-être que la source de mon pb.
Dois-je en déduire que je me retrouve un pb de conception de ma base ou bien existe -t-il "des contraintes" pour relier les tables '?
Re: formulaire avec plusieurs tables
Publié : 27 nov. 2018 10:35
par jeanmimi
fcka a écrit :Dois-je en déduire que je me retrouve un pb de conception de ma base ou bien existe -t-il "des contraintes" pour relier les tables '?
Comme on n'a toujours pas vu ta Base, difficile de tester.
Quant aux contraintes, je suggérais :
jeanmimi a écrit :Donc, au hasard, est-ce qu'il n'y aurait pas une relation entre deux champs de qualités différentes, par ex INTEGER avec TEXT ?
Et lorsque tu écris :
fcka a écrit :mon pb est de ne pas pourvoir faire de la saisie dans un formulaire composée de mes 3 tables.
la solution est de créer un Formulaire avec des sous-formulaires.
Re: formulaire avec plusieurs tables
Publié : 21 févr. 2019 15:17
par fcka
merci