![]() |
Primärschlüssel aus zwei Feldern!?! Möglich???
Wies jemand, ob man im Access ohne zustätzliche Tabelle einen Primärschlüssel der eigentlich eine Komb. aus zwei Feldern ist (ID1,ID2) definieren kann?
Sowohl ID1 als auch ID2 kommen mehrfach vor, nur in Verb. sind sie einzigartig. mfg |
Für Access direkt kann ich leider nicht antworten, nur normalerweise ist das möglich (db2, oracel).
|
Ist nur so ein Gedanke und aus dem Kopf heraus, ohne es ausprobiert zu haben: In Deinem Fall würde ich mir überlegen, durch die Verwendung von 2 ID-Nummern zusammengefasst in eine Nummer alles zusammen mit den dazugehörenden Daten eine neue Tabelle automatisch via Abfrage zu generieren. Darunter wäre dann auf alle Fälle der Primärschlüssel möglich.
|
Zitat:
mfg |
Hängt davon ab, wie Deine Struktur aussieht. Normalerweise würde ich es so angehen, dass ich die Tabellen, damit die einzelnen nicht zu groß werden (vor allem, wenn Felder mitunter nicht ausgefüllt sind), klein gehalten habe und erst in einer Abfrage zusammensetze und daraus arbeite (beispielsweise Export nach Excel oder zum Druck). Es kostet nicht nur HDD-Speicher, sondern auch RAM und kann u.U. die Geschwindigkeit des Rechners verlangsamen, wenn Du alles unter einer Tabelle machst.
Außerdem hast Du es leichter bei Wiederholungen von Inhalten (beispielsweise von Ortsnamen oder Firmenbezeichnungen, wenn Du in eine Art Indextabelle nur die einzelnen Indexzahlen zu ganzen Bezeichnungen drinnen hast. Beispiele: Vorweg mal Folgendes: Tabelle 1 beinhaltet die Firmendaten und jede Firma hat eine eigene Indexzahl Tabelle 2 beinhaltet alle Verkaufsprodukte und jedes Produkt hat eine eigene Indexzahl Tabelle 3 beinhaltet die Indexzahl der Firma und jene des Produktes, das dorthin verkauft wurde Unter Doppelindexzahlen könnte ich mir die Jahreszahl und die Produktindexzahl vorstellen (beispielsweise in der Autoindustrie). Dann hättest Du in einer Abfrage die Möglichkeit, die beiden Indexzahlen der Felder (Jahreszahl und Produktnummer) zusammenzufassen, fügst noch hinzu, an wen Du es verkauft hast (Indexzahl des Händlers, Stückzahl, etc.) und lässt Dir daraus eine Tabelle generieren. Dies war alles nur mal so eine Annahme, denn ich habe keine Vorstellung von Deinem Problem und Deinen vorhandenen Daten, auf welchen ich eine für Dich exakt passenden Vorschlag unterbreiten kann. |
LASS DICH NICHT VERWIRREN!!
- tief durchatmen - ein tabelle in der entwurfsansicht öffnen - zwei übereinanderliegende spalten markieren - shift gedrückt halten (!) + rechte maustaste auf den row-header - primärschlüssel anklicken - voilà, zwei kleine schlüsselchen auf der linken seite. fertig. -JL |
gut hab das jetzt hinbekommen.
jetzt hab ich nur eine wirklich seltsame Fragen: warum kann ich in der Abfrage keine Wildcards ("*") benutzen? der SQL-Code schaut so aus: Code:
SELECT P1.P1FINR, P1.P1PENR, P1.P1NAME, mfg |
weil das nicht geht.
du kannst entweder schreiben WHERE x LIKE 'test*' oder auch WHERE x LIKE '*', aber nicht WHERE x = '*'. und bei integern geht das schon gar nicht. ABER dafür gibt's eine einfache lösung, wie uns die prädikatenlogik und die bool'sche algebra lehrt: WHERE (<Ausdruck> OR x = 35) wenn du in <Ausdruck> das wort "True" reinschreibst, dann wird es IMMER auf true auswerten, wenn du "False" reinschreibst wird es nur true wenn "x = 35" true ist. ist sozusagen ein negative implikation: ^A->B das ganze ist natürlich ein gewisser overhead, du wirst es testen müssen um zu sehen ob die abfrage performace-kritisch ist oder nicht... -JL |
[OFF-TOPIC]
Zitat:
[/OFF-TOPIC] |
[offtopic]
ja, ich auch. interessant ist nur, dass ich die uni-prüfung, bei der man diese feinen wörter braucht - obwohl ich sie ja offensichtlich wenigstens schreiben kann - gerade zum zweiten mal nicht geschafft hab... vielleicht sollte sich chrisi99 lieber doch nicht auf meine tips verlassen... *lol* [/offtopic] |
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag