PDA

Vollständige Version anzeigen : auslesen und setzen


sunny
29.01.2002, 17:44
Hallo an alle,
mein Problem ist folgendes:
Ich habe zwei Felder aus einer Tabelle.
1.ID
2.Kürzel
Nun möchte ich wenn die ID ausgelesen wird das nicht die 1 erscheint sondern das Kürzel n.a.
Die ID ist leider das Feld über das identifiziert wird. Es ist also leider nicht möglich direkt die Kürzel auszulesen.
Wie kann ich nun eine SQL-Abfrage erstellen ohne das ich die ID dem Kürzel zuweisen muß.
Ich kann also nicht sagen 1=n.a. sondern ich muß sagen können wenn Du die 1 ausliest, dann suche den Wert der dazu in der gleichen Tabelle steht.
Und gib mir dann diesen aus.
Kann man das verstehen???????????
Ich hoffe Ihr könnt mir helfen...
sunny :laugh:

Joachim Hofmann
29.01.2002, 21:38
Hallo Sunny,

In Access: siehe IIf()-Funktion.

In SQL Server siehe CASE:


<FONT color=#804040>SELECT</FONT> au_fname, au_lname,
<FONT color=#804040>CASE</FONT> state
<FONT color=#804040>WHEN</FONT> <FONT color=#ff00ff>'CA'</FONT> <FONT color=#804040>THEN</FONT> <FONT color=#ff00ff>'California'</FONT>
<FONT color=#804040>WHEN</FONT> <FONT color=#ff00ff>'KS'</FONT> <FONT color=#804040>THEN</FONT> <FONT color=#ff00ff>'Kansas'</FONT>
<FONT color=#804040>WHEN</FONT> <FONT color=#ff00ff>'TN'</FONT> <FONT color=#804040>THEN</FONT> <FONT color=#ff00ff>'Tennessee'</FONT>
<FONT color=#804040>WHEN</FONT> <FONT color=#ff00ff>'OR'</FONT> <FONT color=#804040>THEN</FONT> <FONT color=#ff00ff>'Oregon'</FONT>
<FONT color=#804040>WHEN</FONT> <FONT color=#ff00ff>'MI'</FONT> <FONT color=#804040>THEN</FONT> <FONT color=#ff00ff>'Michigan'</FONT>
<FONT color=#804040>WHEN</FONT> <FONT color=#ff00ff>'IN'</FONT> <FONT color=#804040>THEN</FONT> <FONT color=#ff00ff>'Indiana'</FONT>
<FONT color=#804040>WHEN</FONT> <FONT color=#ff00ff>'MD'</FONT> <FONT color=#804040>THEN</FONT> <FONT color=#ff00ff>'Maryland'</FONT>
<FONT color=#804040>WHEN</FONT> <FONT color=#ff00ff>'UT'</FONT> <FONT color=#804040>THEN</FONT> <FONT color=#ff00ff>'Utah'</FONT>
<FONT color=#804040>END</FONT> <FONT color=#6a5acd>AS</FONT> StateName
<FONT color=#6a5acd>FROM</FONT> pubs.dbo.authors
<FONT color=#6a5acd>ORDER</FONT> <FONT color=#6a5acd>BY</FONT> au_lname



HTH

sunny
29.01.2002, 21:57
Hallo Joachim,
danke das Du so schnell geantwortet hast aber das war leider nicht das was ich gesucht habe.
Ich kann nicht zuweisen, da die Kürzel variabel sind. Das heißt auf jeder Datenbank sieht das anderst aus und ich kann ja nicht jedem Kunden zumuten das selbst zu erstellen. Mein Chef möchte das so haben und ich kann das auch verstehen.
Ich muß das irgendwie über eine Variable lösen.
Vielleicht fällt Dir ja noch was dazu ein.
So sieht es aus:
ID Kürzel
1 .
2 .
.
.
.

Ich muß eine Möglichkeit finden zu sagen:
Schaue in ID, ist da z.B. die 1 drin, dann gib das Kürzel aus. Meinetwegen auch mit ID, das kann ich ja ausblenden. Aber ich kann das Kürzel NICHT zuweisen. Meinst Du das geht trotzdem???
Wäre dankbar für eine Antwort
Grüße sunny

Joachim Hofmann
29.01.2002, 22:34
Hm,

vielleicht verstehe ich es nicht richtig, oder aber die Frage ist zu einfach für mich ;-).
Wenn du nach einer ID suchst, aber das dazugehörige Kürzel ausgeben willst, ist vielleicht einfach

SELECT Kürzel
FROM Tabelle
WHERE ID = 4711

was Du willst?

sunny
30.01.2002, 16:30
Hallo Joachim,
ich glaube ich kann das einfach nicht erklären...
Letzter Versuch bevor ich Dich zu Tode nerve:
Ich dachte mir die Abfrage so:
Wenn ID=true (da ich die ID nicht benennen kann)
dann schaue in die Tabelle Mitarbeiter und gib mir dort den Namen des Mitarbeiters aus der zu der ID passt. Das ganze soll eine Übergabe der Aufgaben in Outlook werden. Und dort sollte dann bei zuständig der Name stehen und nicht die ID die aus dem Unterformular ausgelesen wird.
Noch ein letztes mal danke für Deine Hilfe!!!
sunny

Joachim Hofmann
30.01.2002, 19:23
Hallo,
genervt bin ich in diesem Forum nicht. Ich müßte aber nur die Tabelle(n) und die Felder wissen, mit denen Du eine etwaige Abfrage machen willst. Welche Tabelle(n) gibt es denn und was haben sie für Felder, z.B.<TABLE WIDTH="100%" CELLPADDING="1" CELLSPACING="1" BORDER="1">
<TR>
<TD WIDTH="50%" VALIGN=TOP>Tabelle_1</TD>
<TD WIDTH="50%" VALIGN=TOP>Tabelle_2</TD>
</TR>
<TR>
<TD WIDTH="50%" VALIGN=TOP>ID | Key</TD>
<TD WIDTH="50%" VALIGN=TOP>Key | Name</TD>
</TR>
</TABLE>

... oder so.

sunny
30.01.2002, 23:12
Hallo Joachim,
es ist eine einzige Tabelle.In ihr stehen
- AnredeID (ist der Schlüssel)
- Kürzel
- Nachname
- Vorname
Deswegen finde ich es ja so schwer. Ich weiß nicht wie ich in einer SQL-Abfrage auf zwei Inhalte einer Tabelle zugreifen kann.
Im Unterformular steht zwar der Kürzel, aber nur weil ich in Access ja angeben kann welche Spalte angezeigt werden soll. Somit kann ich die AnredeID ausblenden und den Kürzel einsetzen lassen. Beim auslesen arbeitet Access aber nur mir der AnredeID....
Hoffe es hilft.
Grüße sunny

[ 31. Januar 2002: Beitrag editiert von: sunny ]</p>

Joachim Hofmann
31.01.2002, 21:51
Hallo, sunny


falls Du ein Hauptformular mit einer Datenquelle mit dieser Tabelle hast, und darin ein Unterformular, wo auch Daten angezeigt werden sollen (in diesem Fall das Kürzel aus der gleichen Tabelle), sollte sowas gehen, indem Du in den Eigenschaften des Unterformulars die Eigenschaften Verknüpfen von und Verknüpfen bis auf die AnredeID einstellst. Falls es also weniger ein SQL-Problem ist, sondern eher ein Access-Formularverknüpfungsproblem, und es geht immer noch nicht, würde ich Dich dann auf das Access-Forum verweisen.