Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Hilfe zu Abfrage gesucht

Begonnen von Anke_71, Juni 23, 2015, 15:03:18

⏪ vorheriges - nächstes ⏩

Anke_71

Hallo, ich möchte eine bestehende Tabelle in eine andere Darstellungsform umschreiben und hänge etwas fest ...

Folgende BeispielTabellenstruktur mit den drei Spalten A,B und C mit jeweils -1 (WAHR) oder NULL als Inhalt:
ID A B C
1 -1 NULL -1
2 -1 NULL NULL
3 NULL NULL NULL
4 -1 -1 -1

Ich möchte die Tabelle mit einer Tabellenerstellungsabfrage/SQL Code in eine zweispaltige Tabelle wie folgt umschreiben: alle "WAHR" Werte sollen als eigene Zeile abgebildet werden und die Spaltenüberschrift als Text in die zweite Spalte übernehmen; NULL -Inhalte sollen möglichst nicht abgebildet werden (notfalls auch leerzeilen mit der ID, wäre auch egal):
ID Egal
1 A
1 C
2 A
4 A
4 B
4 C

Jemand eine Idee, wie das geht? Ich habe in der Ausgangstabelle ca. 30 Spalten mit langen Titel, es wäre daher klasse, wenn ich die Spaltentitel nicht jeweils einzeln in die Abfrage eingeben müsste; notfalls geht das aber natürlich auch.

Viele Grüße

DF6GL

Hallo,

ich denke mal, da wäre VBA angesagt (wobei ich gerne erfahren würde, was da genau dahinter steckt):

Welchen Datentyp haben die Tabellenfelder?

Öffne einen Recordset auf Basis der Ausgangstabelle und durchlaufe die Felder in einer Schleife. Dabei wird der Inhalt des jeweiligen Feldes auf <> NULL getestet und in diesem Fall mittels eines zweiten Recordsets mit Basis der Zieltabelle der Feldname als neuer Datensatz angehängt.

(Das Anhängen kann natürlich auch mittels einer Insert-Abfrage erfolgen)
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Anke_71

Hi, VBA kann ich leider nicht (und auch keine Zeit zum Erlernen); nur mit SQL über eine Tabellenerstellungsabfrage gibt es keine Option? Die Spalten in der Tabelle haben "Zahl" als Format.

ebs17

Zitatnur mit SQL über eine Tabellenerstellungsabfrage gibt es keine Option?
Feldnamen zu Feldinhalten umfunktionieren - das macht SQL nicht. Also nein.

Oder hast Du Deine Aufgabe zu Tode modelliert?
Mit freundlichem Glück Auf!

Eberhard

MaggieMay

Hi,
Zitatnur mit SQL über eine Tabellenerstellungsabfrage gibt es keine Option?
natürlich geht das auch "nur" mit SQL, aber da ist Schreibarbeit angesagt, die du ja vermeiden wolltest.
ZitatDie Spalten in der Tabelle haben "Zahl" als Format.
Das Datenformat wäre dabei ja wohl das geringste Problem. 
Freundliche Grüße
MaggieMay

Anke_71

Hallo MaggieMay,
wie würde denn der Code für obiges Beispiel mit SQL aussehen? Schreibarbeit ist kein Problem, dass muss ich ja nur einmal machen und dann ist es fertig. Wenn ich weiss, wie der SQL Code für zwei Beispiel-Spalten aussieht, kann ich die anderen Spalten nach dem gleichen Schema dranhängen.

MaggieMay

Hi,

sorry, habe dich ganz vergessen...

Du erstellst die Zieltabelle am besten manuell, dann kannst du folgende Anfügeabfragen laufen lassen:
Insert Into tabelle_neu (ID,Egal) Select ID, "A" From tabelle_alt Where A Insert Into tabelle_neu (ID,Egal) Select ID, "B" From tabelle_alt Where B usw.
Freundliche Grüße
MaggieMay