Télécharger le zip
Très bonne source.Mais j'ai une question :Imaginé que vous ayez les enfants des contacts à gerer : Donc vous avez votre table contact, votre table enfants, et une table de jointure entre les deux (Appartient_A).Comment gerer les jointures avec ce systeme ? on rajoute un TADOTable ? Merci.Damien.
C' est exactement comme tu dis !!!
Ouaa... plus rapide tu meurt :) lol Et concretement ? car j'ai justement ajouter un autre TADOTable, un autre DataSource, mais voila çà m'avance pas bcp :s Bon j'vais chercher dans cette direction ... merci !
Il faut que tu crées les tables dans le fichier acess (.mdb)avec ACCESS justement...
C'est fait, en faite j'texplique mon cas : j'ai déja ma base de données faite avec Access 2000 (pour une divX Tèque personnalisé), nikel et tout. J'ai crée les tables : FILM, ACTEUR, GENRE, FILM_ACTEUR (jointure). C'est qu'un debut pour le moment je pense l'agrandir par la suite.J'ai meme fait mes relations sous MS Access.Après je me suis inspiré de ta source pour créer mon projet, tout nikel, pratiquement pas une ligne de code et tout fonctionne niquel, là ou je me retrouve bloqué c'est pour afficher les acteurs correspondant au film via la table de jointure, et aussi pour retrouver le nom du genre via le numero de genre.Voila .. j'chai pas si j'ai été claire ?Merci beaucoup.
Ce qu' il te faut c' est déclarer des champs de type lookup dans ta table de ton compo TADOTable!!!
Pour plus de précision, fait un double clique sur le compo, puis fait un click droit, il devrait y aparaitre "new field"!!!
Merci c'est cool j'ai trouvé, je vais voir ce que je peux faire avec çà.Tient je t'ai mis 10/10 pour avoir eut la patience de repondre, c'est super sympa merci ;-)Cordialement.Damien.
De rien de rien !
bon en faite j'en chie toujours car je sais pas quel propriétés appliquer a mes champs de mes TADOTable ni s'il faut dire à la table mère si faut que son champs pointe sur la fille ou l'inverse.. enfin j'ai du mal à m'exprimer mais c'est super mal documenté sur le net, pour ne pas dire qu'on n'aborde pas du tout les jointures !Cordialement.Damien
Les calculated fields te permettent de préciser la valeur de tes champs dans l' événement OnCalcFields de la table. Imagine que tu as une table avec les champs QTD et VALEUR_UNITAIRE. Alors tu peux créer un Champ de type CalcField de nom TOTAL et de type Float. Ce champ n' est donc pas gardé dans la table physiquement puisqu' il n' existe pas mais pourra être visualisé avec sa valeur correcte gràce à l' evenement OnCalcField : Table1TOTAL.Value := Table1QTD.Value * Table1VALEUR_UNITAIRE.Value;Les champs lookup sont des champs qui vont chercher leur valeur sur une autre table. C' est très facile à utiliser. Imagine que tu as une table de produits nommée tabProduits et une table fournisseur de ces produits nommée tabFour avec les champs COD et NOM. Si tu veux visualiser le fournisseur pour chaque produits tu dois faire new field (dans la table tabProduits). Dans "Name" tu peux écrire ce que tu veux comme par ex. NomFour, c' est le nom que tu donnes au champ. Le type et la taille doivent être les mêmes que ceux dans le champ NOM de ta table tabFour. FieldType est donc de type Lookup. En ce qui concerne la partie lookup definitions: "KeyFields" représente la clé étrangère dans tabProduits. Qu 'est ce que ça veux dire? tout simplement que tu dois avoir un champ COD_FOUR dans ta table tabProduits. COD_FOUR possède la valeur du code fournisseur pour chaque produits. DataSet est donc tabFour, c' est la table dans laquelle obn veut rechercher une valeur. Lookup keys est tabFourCOD, ce qui veut dire que pour la valeur dans tabProduitsCOD_FOUR on va positionner le curseur de tabFour sur cette valeur pour pouvoir retourner la valeur du champ specifié dans Result field. Result field est TabFourNOM, c' est la valeur du champ renvoyé. J' espère que mes explications t' ont aidé. A+
Pour les clés etrangères niquel... pour les tables de jointures çà me plante tout... En gros j'ai çà :---------- ------------ --------------| FILM | | FILM_ACT | | ACTEUR |---------- ------------ --------------|#ID_FILM|---------------|#ID_FILM | |-------|#ID_ACTEUR || | |#ID_ACTEUR|-------| | NOM_ACTEUR || ... | | | | |---------- ------------ --------------=> Et je voudrai recupérer tous les acteurs d'un film !Mais bon j'vais essayé de me demerder un peu tout seul car j'doit te saouler là :-) en tout cas tu ma déja bcp aidé !!!Merci encore.Damien
salut, jai pris example sur ta source pour faire un programme de gestion de photo mais, on ne peux pas mettre dimage en format .jpg ... Tu serais comment règler se probleme?merci
J'ai oublier, il est possible de faire une rechrcher... example; on tape un # et sa va a sa numero dans le champs "cod"merci encore
Non désolé, je ne sais pas comment faire pour garder des jpgs ...Moi aussi j'en aurais besoin si quelqu' un sait comment faire!A+
ok .. jai trouver pour le jpeg mais jai pas trouver pour faire une recherche... tu serais pas comment?pour le jpeg:tu met le use "jpeg"tu met deux Timage avec un: image1 et lautre image2tu met la valeur visible a falseet tu me le code :procedure TFrmPrin.SBAssignPhotoClick(Sender: TObject);begin If OpenPictureDialog1.Execute Then Try image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); Image2.Picture.Bitmap.Assign(Image1.Picture.Graphic); DMA.ADOClients.Edit; DBImg.Picture := image2.Picture; DMA.ADOClients.Post; Except ShowMessage('Registre actuellement en edition !'); End;end;voila, moi sa marche... masi pas le recherche :(
J'ai encore oublier.... tu sais comment faire pour mettre la taile de la photo la grandeur du DBImg ??? pcq la ma photo est trop grande..merci
Bem oui ça marche mais le problème c' est que c' est un bitmap qui est gardé dans la base de données ...Pour la photo tu peux jouer avec la propriété Stretch ou encore redimensionner ton DBImage : DBImage.Width := DBImg.Picture.Bitmap.Width;DBImage.Height := DBImg.Picture.Bitmap.Height;A+
Source très intéressante !J'ai beaucoup de plaisir à l'étudier !Mais je me demande s'il me sera possible d'aboutir à un projet un peu différent dans lequel la modification de champ d'un enregistrement se ferait en cliquant sur cet enregistrement ce qui amène ouverture d'une nouvelle Unit ("formulaire") que l'on complète pour les modifier.Ensuite, à la fermeture du formulaire, la table est mise à jour.J'ai déjà fait un projet de ce type qui fonctionne bien, mais sans insertion possible d'un champ image avec un TBDImage.Je voudrais donc partir de ton projet (avec TDBImage) mais utiliser l'ouverture d'un 2ème Unit ("formulaire") pour enregistrer ou modifier un enregistrement (avec champ Photo visible aussi sur ce formulaire).Penses-tu que ce soit envisageable ?Merci et Félicitations pour vos compétences à vous, les "Grands animateurs" de ce site !
Excuse-moi !Je viens d'avancer dans ma réflexion en étudiant encore davantage ton projet.Je pense qu'il me suffira d'insérer une requête sur le formulairepuis de placer des TEdit comme pour N°tel sur ton projet ainsi que la TDBImage.Je vais étudier ensuite l'utisation de tes procédures pour lire la table ou enregistrer les changements dans la table.Tu peux me confirmer que je suis "sur la bonne voie ?"Merci !
Salut MCAPP, ce que tu veux faire est très simple: -Tu mets la table en edit mode-Tu ouvres en ShowModal la 2eme form -En fermant en cliquant sur un bouton Ok tu fais le Post de la table ou Cancel si l' utilisateur clique sur un bouton annuler. Remarque: n' utilise pas de TEdit mais les TDBEdit :)A+
Salut Mauricio,Merci pour tes conseils !Dans le code, on a : confirmation := MessageDlg('Désirez-vous enregistrer les modifications', mtConfirmation, [mbYes, mbNo, mbAbort], 0);Je ne trouve pas ces 3 composants button dans le message de dialogue.Comment puis-je modifier le texte du bouton mbAbort pour remplacer "Abandonner" par "Ne pas fermer" par exemple ?Merci !
Vous en avez révé, Mauricio l' a fait: http://www.delphifr.com/codes/MESSAGEDLG-DANS-IMPORTE-QUEL-LANGUE_28735.aspxA+ :)
Merci Mauricio pour ton aide !Mais, je ne suis que débutant et hélas je dois avouer que je n'ai pas trouvé comment appeler cette fonction.Je l'ai placée dans le code avant la procédure TFich.FormCloseQuery(Sender: TObject; var CanClose: Boolean );Quelle ligne écrire dans la procédure pour qu'elle utilise la fonction ?A+
superbe source !!dommage que l'on puisse rechercher que par le code (ici du fournisseur).merci beaucoup !
Bonjour.J'aimerai savoir si c'est prossible de crée une relation en les tables access avec le compo TADOCommand(SQL), et comment les utliser sous delphiMerci.
Bonjour,comment faites-vous pour insérer une image dans la mdb ?Si je le fait, sa m'apparait sous forme Package et non Donnée binairepuis delphi ne peut l'appeler.Aider-moi s.v.p
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 598 971 membres 231 nouveaux aujourd'hui 15 441 membres club