Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [Access] Kontaktverwaltung (https://www.delphipraxis.net/32238-%5Baccess%5D-kontaktverwaltung.html)

Dagon 20. Okt 2004 16:12


[Access] Kontaktverwaltung
 
Hallo Leute

Ich habe mit Access eine Datenbank erstellt (zur Verwaltung von Kontakten). Bei jedem dieser Kontakte soll man nun eine gewisse Anzahl an besuchten Seminaren eintragen können. Diese Daten soll man in eine separate Tabelle eintragen können.
Bei mir besteht nun das Problem, dass eine Änderung dieser separaten Seminartabelle Auswirkungen auf sämtliche Kontakte hat. Was muss ich tun, damit dieses Problem nicht mehr besteht.

P.S. Im Access hat es bereits eine Vorlage ("Kontaktverwaltung") wo man sieht, wie ich es haben möchte (-> Button "Anrufe").

MrSpock 27. Okt 2004 05:14

Re: [Access] Kontaktverwaltung
 
Hallo the_master,

Zitat:

Bei mir besteht nun das Problem, dass eine Änderung dieser separaten Seminartabelle Auswirkungen auf sämtliche Kontakte hat.
Neben der separaten Tabelle für die Seminare, musst du zusätzlich noch eine Tabelle z.B. belegtSeminar anlegen, in der du die Zuordnung von Kontakten zu den belegten Seminaren einfügst. Für jedes Seminar, das eine Person aus der Kontakttabelle belegt, legst du einen neuen Eintrag in der zusätzlichen Tabelle an. Die Zuordnung besteht nur aus einer ID, die die Person identifiziert und einer ID, die das Seminar eindeutig identifiziert.

DP-Maintenance 27. Okt 2004 05:15

DP-Maintenance
 
Dieses Thema wurde von "MrSpock" von "Klatsch und Tratsch" nach "Datenbanken" verschoben.
Es geht hier um ein n:m Zuordnungsproblem in einer Datenbank.

Dagon 27. Okt 2004 17:00

Re: [Access] Kontaktverwaltung
 
Wow vielen Dank für deine Antwort! :thumb: Ich habe die Hoffnung auf Hilfe schon fast aufgegeben :wink: Ich werde mir es mal ansehen und dir dann Bescheid geben.

MrSpock 27. Okt 2004 17:40

Re: [Access] Kontaktverwaltung
 
Hallo the_master,

Zitat:

Ich habe die Hoffnung auf Hilfe schon fast aufgegeben
.

Das darf nie passieren! :shock: Hier findest du fast immer jemand, der dir helfen kann. Und es ist sogar erlaubt, nach ein paar Tagen ein Thema einmal zu pushen, wenn es keine Antwort gegeben hat. Man kann dazu ja die Frage noch einmal konkretisieren, um das Problem besser zu beschreiben.

Dagon 30. Okt 2004 12:04

Re: [Access] Kontaktverwaltung
 
Hallo MrSpock

Ich habe jetzt erst einmal eine weitere Tabelle erstellt (belegtSeminare). Aber ich komme nicht recht weiter. Was genau muss in dieser neuen Tabelle stehen und wie realisiere ich das:
Zitat:

Zitat von MrSpock
Für jedes Seminar, das eine Person aus der Kontakttabelle belegt, legst du einen neuen Eintrag in der zusätzlichen Tabelle an. Die Zuordnung besteht nur aus einer ID, die die Person identifiziert und einer ID, die das Seminar eindeutig identifiziert.

?

MrSpock 30. Okt 2004 16:29

Re: [Access] Kontaktverwaltung
 
Hallo the_master,

die Tabelle belegtSeminar hat 2 oder 3 Felder (das ist Geschmacksache). Sie benötigt die Felder Pers_ID und Sem_ID und kann zusätzlich eine eigene ID haben, die dann ein AutoInc Field wäre. Verzichtest du auf eine separate ID, muss der Primary Key in der Tabelle belegtSeminar aus beiden Feldern (Pers_ID;Sem_ID) bestehen. Um darzustellen, dass die Person mit der Pers_ID 3 das Seminar mit der Sem_ID 5 besucht, würdest du einen entsprechenden Eintrag einfügen, z.B.:

Delphi-Quellcode:
tabBelSem.Append;
tabBelSemPers_ID.AsInteger := 3;
tabBelSemSem_ID.AsInteger := 5;
tabBelSem.Post;
Die Frage ist, wie du nun diese n:m Beziehung darstellen willst. Du könntest 2 DBGrids benutzen oder nur ein DBGrid und eine Liste. Wenn du belegtSeminar in einem Grid darstellst, könntest du mit LookupFeldern arbeiten, um das passende Seminar aus der Seminartabelle zu holen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz