Spalten von Datentabelle per Makro auslesen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Spalten von Datentabelle per Makro auslesen

Re: Spalten von Datentabelle per Makro auslesen

von Stephan » Sa, 13.02.2021 12:05

Hallo Stephan,
versuch es so:
Danke, das funktioniert offensichtlich fehlerfrei, auch die Tabellenanzahl für die Biblio-DB wird richtig wiedergegeben.


Gruß
Stephan

Re: Spalten von Datentabelle per Makro auslesen

von Stephan » Sa, 13.02.2021 12:05

Für MySQL z.B.
Danke, ich fand durch Deine Anregung jetzt auch das hier:
http://www.oooforum.de/viewtopic.php?t=62148

was ich vorher übersehen hatte.


Gruß
Stephan

Re: Spalten von Datentabelle per Makro auslesen

von F3K Total » Fr, 12.02.2021 17:55

Hallo Stephan,
versuch es so:

Code: Alles auswählen

Sub Main
    oController = ThisDatabasedocument.CurrentController
    if not oController.isConnected Then Controller.Connect
    oConnection = oController.ActiveConnection
    oTables = oConnection.Tables
    xray oTables
    nTables = oTables.Count
    print nTables
    for i = 0 to nTables - 1
        oTable = oTables(i)
        oColumns = oTable.Columns
        xray oColumns.ElementNames
    next i
End Sub
Gruß R

Re: Spalten von Datentabelle per Makro auslesen

von Hiker » Fr, 12.02.2021 16:48

Für MySQL z.B.

Code: Alles auswählen

select column_name from INFORMATION_SCHEMA.COLUMNS where table_name = 'Tabellenbeispiel'
Ichwäre mir nicht sicher, was als Tabelle-0 angesehen wird, das kann auch was internes sein.
Habe ich nie ausprobiert... Namen sind da sicherer.

Mfg, Jörn

Spalten von Datentabelle per Makro auslesen

von Stephan » Fr, 12.02.2021 09:41

Hallo,

ich habe eine DAtenbankdatei (*.odb) geöffnet und verwende testweise folgenden Code:

Code: Alles auswählen

Msgbox Thiscomponent.DataSource.Tables.getByIndex(0).Columns.Count
Dieser Code liefert jedoch teils falsche ERgebnisse, d.h. es wird teils 0 teils eine zu niedrige Zahl für die Spalten angezeigt.

Das geschieht sowohl für Datemnbanken mit internener HSQLDB wie auch per ODBC verknüpfte MySQL-Datenbanken.

Für z.B. die mitgelieferte Datenbank Biblio ergibt sich ebenfalls ein anders komisches Ergebnis, denn:

Code: Alles auswählen

Msgbox Thiscomponent.DataSource.Tables.Count
liefert 2, obwohl Biblio ja nur eine Tabelle hat.



Was mache ich falsch oder was ist an der API defekt?

Mein eigentliches Ziel ist es im Übrigen, für eine Datenbank die Spaltennamen aller Tabellen auszulesen.



Gruß
Stephan

Nach oben