Liste mit Tabellen in Datenquelle

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: Liste mit Tabellen in Datenquelle

Re: Liste mit Tabellen in Datenquelle

von Scalaia990 » Do, 11.02.2010 16:23

Hier die Lösung,

Sub GetTabellenname

oDBContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")

oDBSource = oDBContext.GetByName("Unbenannt_2_ods")
oDBSource = oDBContext.GetByName("adressen2_xls")
' oDBSource = oDBContext.GetByName("bucher_odb")

oConnection = oDBSource.GetConnection("","")
oTables = oConnection.Tables()
oEnum=oTables.createEnumeration()

While oEnum.hasMoreElements()
oItem=oEnum.nextElement()

msgbox "Tabellenname " & oItem.Name
Wend


end sub

Re: Liste mit Tabellen in Datenquelle

von Scalaia990 » Do, 11.02.2010 02:01

Hallo habe weiter gesucht und folgenden Ansatz gefunden:

Dabei funktioniert der Code bei den ODB-Dateien Wunderbar, jedoch bei Registrierten Datenquellen welche von CSV, Dateien, XLS oder ods stammen gibt er mir den Wert nicht aus, hat jemand eine Idee an was das liegen kann?

Gruss und Dank

Scaleia990

Sub Tabellenname
Dim Context
Dim DB
Dim Conn
Dim Tables
Dim oEnum
Dim oItem
Context=CreateUnoService("com.sun.star.sdb.DatabaseContext")

'DB=Context.getByName("bucher_odb") '
DB=Context.getByName("adressen2_csv") '
'DB=Context.getByName("zahler_odb") '
Tables=DB.getTables()

oEnum=Tables.createEnumeration()
While oEnum.hasMoreElements()
oItem=oEnum.nextElement()
msgbox "Tabellenname " & oItem.Name
Wend

For I=0 To DB.QueryDefinitions.Count-1
oItem=DB.QueryDefinitions(I)
msgbox "query " & oItem.name
Next I

End Sub

Liste mit Tabellen in Datenquelle

von Scalaia990 » Mi, 10.02.2010 17:02

Habe,

ich möchte von einer Registrierten Datenquelle eine Liste erzeugen mit allen Tabellen (später auch Abfragen) die verfügbar sind. Bin im ersten Schrit hingeganben und habe die Routine welche ich verwende zum Abrufen der Felder genommen und modifiziert.

dim sDQ_Tabellennamen() as string
oDocSettings = oDoc.createInstance("com.sun.star.text.DocumentSettings")
oDocSettings.CurrentDatabaseDataSource = sDQName
sDQ_Tabellennamen() = oDocSettings.CurrentDatabaseDataSource.Command.getElementNames()

msgbox sDQ_Tabellennamen(0) & "x1"
msgbox sDQ_Tabellennamen(1) & "x2"
msgbox sDQ_Tabellennamen(2) & "x2"

Die Msgboxen werden einfach nicht ausgeführt. Wenn ich die Stringzuweisung für sDQ_Tabellennamen entferne kommen zwar die Msgboxen, das Feld ist jedoch leer. Gehe deshalb davon aus, dass die GetElementNames funktion irgendwie ein Objekt zurückgibt.

Wer kann mir helfen und hat mir einen Tipp wie ich realisiert bekomme, dass ich von einer Registrierten Datenquelle eine Liste der Tabellen erzeugen kann?

Gruss und Dank

Scaleia990

Nach oben