Lier plusieur Table dans un DBgrid

AlexFr23 Messages postés 33 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 4 décembre 2010 - 16 nov. 2010 à 17:24
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 19 nov. 2010 à 12:02
Bonjour à tous,
Je post enfin pour vous demander quelques conseils car je suis coinçer depuis quelques jours sur ce problème:
J'aimerais avoir dans un DBgrid avec dans la colonne 1 le nom du livre -> (donnée provenant d'une table liste des livres)
dans le colonne 2 une case à cocher (enfin une réponse boolean) si un client possède ce livre ou pas ( table prèt )
dans la table des livres il y a : idlivre, titrelivre;
dans la table des prèts il y a : idx, idclient, idlivre, date;
le mieux serrait que tous les livres soit lister dans la colonne 1 et ensuite l'utilisateur peut cocher ou non le livre qu'il donne à son client;

j'avais penser faire ceci :
with ADOTable1 do
begin
   close;
   SQL.clear;
   SQL.Add('SELECT * FROM client, bibliotheque, pret WHERE client.clientid '+numclientid+' AND pret.idlivre bibliotheque.idlivre');
   open;
end;

bref pas concluant
avez-vous une meilleur idée ?
Merçi d'avance
Alex

3 réponses

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
18 nov. 2010 à 12:08
Bonjour,

Tout dépend de ce que tu veux faire exactement...
A gestion complexe (style tenue des locations antérieures, statistiques etc)
modèle plus complexe.

Dans cette optique il faut mettre en place une relation N-N, c'est-à-dire
3 tables :

La table des Livre (avec sa clé primaire idlivre, etc)
la table des Client (avec sa clé primaire idClient, etc)
la table Livre_Client (avec une doucle clé primaire (idlivre,idClient, etc)

il y aura donc deux relations 1-N entre
Livre et livre_client
Client et Livre_client

Dans ce schéma, toutes les possiblités te sont offertes à l'aide de formulaires, requête SQL et états de sortie etc

Il y a néanmoins d'autres possiblités, plus simples mais moins performantes.

cantador
0
AlexFr23 Messages postés 33 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 4 décembre 2010
18 nov. 2010 à 21:39
Bonsoir,

Je vais essayer d'expliquer ce que je voudrais faire :
j'ai une BD Client, une BD Bibliotheque avec une 12ène de livre, j'ai besoin que pour chaque client, je puisse cocher le livre qu'il a acheter ou gagné afin que plus tard je ne lui propose pas un livre qu'il a déjà donc j'ai créer un formulaire de saisie Client, j'ai créer un formulaire de saisie des livres, et maintenant je voudrais faire une feuille de saisie pour les livres que le client a . mais je bloques car j'ai essayé avec une checklistBox mais ce n'étais pas très concluant, c'étais un peu le Boxon ^^ quand je revenais un peu plustard sur le client .
Ensuite j'ai exploré la piste de faire un DBgrid qui est plus simple a remplir mais ce qui me pose problème c'est la requète SQL.
Alors je pense que celà doit être super simple mais là je suis dans un brouillard très épais, lol.
Je vous remercie de vous occuper de mon problème
Cordialement
Alex
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
19 nov. 2010 à 12:02
Bonjour,

la phrase clé est la suivante :

[i]" je puisse cocher le livre qu'il a acheter ou gagné afin que plus
tard je ne lui propose pas un livre qu'il a déjà "/i

Cette information confirme la proposition que je t'ai faite car tu vas donc être obligé de gérer, l'antériorité des prises de livres.

tu as désormais tous les éléments de départ.
il faut maintenant:

- Etablir un petit audit afin de bien détacher les règles de gestion
- Créer ton modéle conceptuel (avec les infos fournies..)
- créer ta base

et après ce n'est que du code.

Je ne peux aller plus loin, sauf à faire ton projet..
ce que je ne ferai pas, sinon je ne ferai que ça.

et puis, c'est tellement plus intéressant, gratifiant,
jubilatoire de créer quelque chose soi-même !


cantador
0
Rejoignez-nous