Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Mit SQL erste Zeile mit Tabellennamen auslesen

Mit SQL erste Zeile mit Tabellennamen auslesen
28.10.2024 12:03:15
F.G.Neurieser
Hallo und guten Tag,

ich habe eine Excel-Datei, die in der ersten Spalte bereits Daten enthält. Bei einer SQL-Abfrage wird mir die erste Zeile jedoch als Spaltenname ausgegeben.
Wie schaffe ich es, dass ich in einem SQL-Statement mir die Spaltennamen ausgeben lassen und ich danach auf diese zugreifen kann?

z.B. habe ich eine Tabelle mit mehreren Registern (siehe Beispieldatei -https://www.herber.de/bbs/user/173196.xlsx)

In der ersten Zeile steht hierbei der Spaltenname, in der zweiten ein Kommentar, in der dritten Zeile um welche Feldart es sich handet und in der vierten Zeile, ob es ein primary Keyfeld, ein Fulltext-Keyfeld ist.

Ab der fünften Zeile stehen die Daten.

Wenn ich ein SQL-Statement wie:
select top 3 * from autoren

aufrufe, kann ich die ersten 4 Zeilen sehen, aber nicht auf die Werte mit den Spaltennamen zugreifen
((Userbild). ).

Gibt es eine Möglichkeit in SQL diese doch in den Zugriff zu bekommen?

Danke schon mal für etwaiige Hilfe.
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit SQL erste Zeile mit Tabellennamen auslesen
28.10.2024 12:39:12
ralf_b
das ist ziehmlich undeutlich formuliert.

Wilst du nun aus einer Tabelle ohne Spaltenbezeichnugen per SQL Befehl etwas auslesen oder
die Spaltenbezeichnungen der Tabelle also die Zeile 1 des Blattes auslesen.

Ich bezweifele (ohne es genau zu wissen) das man reine Datenbereiche ohne Überschriften per Sql auslesen kann. Dafür ist es nicht gemacht.

Ich denke das du etwas weiter ausholen solltest und uns erklären woher die Daten kommen und wie du sie weiter verabeiten möchtest. Ich bin sehr sicher das es da auch ohne SQL gute Möglichkeiten gibt.
Anzeige
AW: Mit SQL erste Zeile mit Tabellennamen auslesen
28.10.2024 13:35:02
Ulf
Hi,
hängt davon ab, womit du arbeitest (mySQL, SQL Server ...).
Am erfolgversprechensten könnte:


SELECT column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'autoren';

sein.
tht
Ulf
AW: Mit SQL erste Zeile mit Tabellennamen auslesen
28.10.2024 13:51:07
Marc
Willst du jetzt aus einer Datenbank-tabelle die erste Zeile auslesen ? (also den ersten Datensatz, wobei hier natürlich die Sortierung dir unterschiedliche erste 1 angeben kann.)
oder möchtest du aus einer Excel Tabelle die erste Zeile auslesen..
Willst du aus einer Datenbank-tabelle die Spaltennamen (und deren eigenschaften) auslesen?

Das macht durch aus einen Unterschied
Anzeige
AW: Mit SQL erste Zeile mit Tabellennamen auslesen
29.10.2024 06:52:13
WolfiSued
Du hast vermutlich im Connecting String angegeben dass deine Datenquelle eine Überschrift hat. HDR=Yes

Mach es wie folgt:
ConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0; HDR=No"";"
conn.Open ConnString
rs.CursorLocation = 3
SQLStat = "Select Top 1, F1, F2, F3, F4 From [Tabelle1$]"
rs.Open SQLStat, conn
' Ausgabe
Debug.Print "Treffer: " & rs.RecordCount
While Not rs.EOF
Debug.Print vbTab & rs("F1") & " " & rs("F2") & " " & rs("F3") & " " & rs("F4")
rs.MoveNext
Wend
rs.Close
conn.Close
Anzeige
AW: Mit SQL erste Zeile mit Tabellennamen auslesen
28.10.2024 14:46:37
F.G.Neurieser
Hallo,

Hier liegt ein Missverständnis vor.

Ich möchte mittels SQL aus Excel die erste Zeile auslesen, die die Feldnamen einer zu erstellenden SQL-Tabelle enthält.

Danke
AW: Mit SQL erste Zeile mit Tabellennamen auslesen
28.10.2024 17:00:24
Michael
Hallo,

SQL greift nicht auf Excel zu. Mit Excel kannst Du aus SQL-Datenbank was holen (PQ!), aber nicht umgekehrt.

Ein CREATE-TABLE-Skript für MS-SQL ist, was Du brauchst. Ich würd mir das auf die Schnelle so zusammenbasteln. Im Detail wirst Du nachhelfen müssen!

https://www.herber.de/bbs/user/173218.xlsx

Viele Grüße
Michael
Anzeige
AW: Mit SQL erste Zeile mit Tabellennamen auslesen
28.10.2024 13:05:58
F.G.Neurieser
Hallo ich möchte die 1.Zeile auslesen, da diese für eine zu erstellen SQL Tabelle die Feldnamen enthält.
INDEX(1:1;1;SEQUENZ(;ANZAHL2(1:1)))
28.10.2024 15:24:41
ralf_b
siehe Betreff
AW: INDEX(1:1;1;SEQUENZ(;ANZAHL2(1:1)))
28.10.2024 16:49:50
F.G.Neurieser
Hallo,
danke, aber das bringt mir nichts. Zur Erklärung warum?
Mittels einer dsn-verbindung greife ich von meinem Programm aus mit SQL auf die Excel-Tabelle, aus der ich eben nur die ersten 3 Zeilen fürden Aufbau einer neuen SQL-Tabelle benötige. Siehe dazu meine Beispieldatei aus meinem ersten Beitrag.

Der Screenshot stellt das Ergebnis meines SQL-Zugriffs auf die Excel-Tabelle dar, von dem ich h die Zeile mit dem # für die Feld amen der neu zu erstellenden SQL-Tabelle benötige.

Klarkönnte ichdieExceltabelle nicht sichtbar einlesen und die Spalten und Zeilen auswerten, aber ich dachte, dass es eventuell einen Weg gibt dies zu umgehen.

Danke für die Vorschlägen hier schon gebracht wurden.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige