WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 08.07.2004, 09:07   #1
Chrisi99
Inventar
 
Benutzerbild von Chrisi99
 
Registriert seit: 22.12.2002
Alter: 39
Beiträge: 2.644

Mein Computer

Chrisi99 eine Nachricht über ICQ schicken
Frage 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
____________________________________
Der Unterschied zwischen Theorie und Praxis ist, das es in der Theorie keinen Unterschied zwischen Theorie und Praxis gibt, in der Praxis aber schon.

Wer schreibt, der bleibt!
Chrisi99 ist offline   Mit Zitat antworten
Alt 08.07.2004, 09:21   #2
Tarjan
Quantensingularität
 
Registriert seit: 28.09.2000
Alter: 55
Beiträge: 8.336


Tarjan eine Nachricht über ICQ schicken
Standard

Für Access direkt kann ich leider nicht antworten, nur normalerweise ist das möglich (db2, oracel).
____________________________________
Was ist klein, grün und dreieckig?
Ein kleines grünes Dreieck!


Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg!
Tarjan ist offline   Mit Zitat antworten
Alt 08.07.2004, 09:41   #3
Karl99
Veteran
 
Registriert seit: 05.06.2003
Beiträge: 444


Standard

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.
Karl99 ist offline   Mit Zitat antworten
Alt 08.07.2004, 10:00   #4
Chrisi99
Inventar
 
Benutzerbild von Chrisi99
 
Registriert seit: 22.12.2002
Alter: 39
Beiträge: 2.644

Mein Computer

Chrisi99 eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Karl99
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.
gibts da ein patentrezept??

mfg
____________________________________
Der Unterschied zwischen Theorie und Praxis ist, das es in der Theorie keinen Unterschied zwischen Theorie und Praxis gibt, in der Praxis aber schon.

Wer schreibt, der bleibt!
Chrisi99 ist offline   Mit Zitat antworten
Alt 08.07.2004, 10:19   #5
Karl99
Veteran
 
Registriert seit: 05.06.2003
Beiträge: 444


Standard

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.
Karl99 ist offline   Mit Zitat antworten
Alt 08.07.2004, 10:52   #6
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

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
____________________________________
It\'s not a bug... It\'s a feature!

You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro)
JackLemon ist offline   Mit Zitat antworten
Alt 08.07.2004, 11:24   #7
Chrisi99
Inventar
 
Benutzerbild von Chrisi99
 
Registriert seit: 22.12.2002
Alter: 39
Beiträge: 2.644

Mein Computer

Chrisi99 eine Nachricht über ICQ schicken
Standard

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,
 P1.P1VNAM, P1.P1TITL, P1.P1ABTE, 
P1.P1KOST, SC.Stelle, VB.ARB, VB.ANG, 
W1.BGRD, VB.VON, VB.BIS
FROM SC INNER JOIN ((VB INNER JOIN P1 
ON VB.PNR=P1.P1PENR) INNER JOIN W1 ON 
P1.P1PENR=W1.PNR) ON SC.SC=W1.SC
WHERE (((P1.P1FINR)=[FRN (8 oder 36)]) 
AND ((P1.P1PENR)=[PNR (82 oder 250)]) 
AND ((VB.VON)>=[ab datum yyyymmdd]) AND 
((VB.BIS)<=[bis datum yyyymmdd]));
wenn ich jetzt nicht alle WHERE klauseln in der Abfrage haben möchte (zb ist FRN egal) und ich schreibe * in das Feld ist laut access der Ausdruck zu "komplex". ???


mfg
____________________________________
Der Unterschied zwischen Theorie und Praxis ist, das es in der Theorie keinen Unterschied zwischen Theorie und Praxis gibt, in der Praxis aber schon.

Wer schreibt, der bleibt!
Chrisi99 ist offline   Mit Zitat antworten
Alt 09.07.2004, 14:22   #8
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

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
____________________________________
It\'s not a bug... It\'s a feature!

You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro)
JackLemon ist offline   Mit Zitat antworten
Alt 09.07.2004, 14:35   #9
Hussl
Veteran
 
Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320


Standard

[OFF-TOPIC]

Zitat:
Original geschrieben von JackLemon
... prädikatenlogik ... negative implikation: ^A->B ... performace-kritisch ...
Ich finde solche wissenschaftlichen Wörter einfach geil

[/OFF-TOPIC]
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur.

http://www.chili-it.at
Hussl ist offline   Mit Zitat antworten
Alt 09.07.2004, 16:12   #10
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

[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]
____________________________________
It\'s not a bug... It\'s a feature!

You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro)
JackLemon ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:12 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag