GELÖST: Export Data geht nicht mit Queries
Verfasst: Sa, 12.07.2014 12:13
Hallo Zusammen,
Ich vervende das oft zitierte Makro aus dem Base-Handbuch "ExportData" unter LO 4.2 mit Win 7 und Linux.
Das Makro bringt einen Fehler: (Message: Table not found in statement [SELECT * FROM "abfRec"].),
wenn ich es fuer eine Abfrage aufrufe.
Bei Export einer Tabelle oder View geht es einwandfrei.
Weiss jemand woran das liegt?
Vielen Dank vorab,
WSO
Ich vervende das oft zitierte Makro aus dem Base-Handbuch "ExportData" unter LO 4.2 mit Win 7 und Linux.
Das Makro bringt einen Fehler: (Message: Table not found in statement [SELECT * FROM "abfRec"].),
wenn ich es fuer eine Abfrage aufrufe.
Bei Export einer Tabelle oder View geht es einwandfrei.
Weiss jemand woran das liegt?
Vielen Dank vorab,
WSO
Code: Alles auswählen
Sub ExportRechnung (oEvent AS OBJECT)
REM Speicherpfad
sPath = "D:"
REM Dateiname
sTitle = "Datenexport vom " & Date & ".ods"
REM Name der Abfrage, Tabelle oder SQL-Statement
'sQueryName = "Screening_Tabelle_1"
'sQueryName = "Abfrage_Screening_Tabelle_1"
sQueryName = "SELECT * FROM ""abfRec"""
'sQueryName = "SELECT * FROM ""Abfrage_Screening_Tabelle_1"""
sURL = ConvertToURL(sPath & "/" & sTitle)
If FileExists(sURL) Then
i = MsgBox(">" & sTitle & "<" & Chr(13) & "Datei existiert bereits." & _
Chr(13) & Chr(13) & "Überschreiben?",52,"Hinweis")
If i <> 6 Then
Exit Sub
End If
End If
oCon = thisComponent.Parent.CurrentController.ActiveConnection
If oCon.Tables.hasByName(sQueryName) Then
oPrepStatement = oCon.prepareCommand(sQueryName,0)
ElseIf oCon.Queries.hasByName(sQueryName) Then
oPrepStatement = oCon.prepareCommand(sQueryName,1)
Else
oPrepStatement = oCon.prepareCommand(sQueryName,2)
End If
oResult = oPrepStatement.executeQuery
aColumns = oPrepStatement.Columns.ElementNames
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc","_blank", 0, Array())
oSheet = oDoc.Sheets(0)
nColumnCount = UBound(aColumns)
Dim aLine(nColumnCount)
Dim aData(0)
aData(0) = aColumns
nUpperBoundary = 0
Do While oResult.Next
nUpperBoundary = UBound(aData)+1
ReDim Preserve aData(nUpperBoundary)
ReDim aLine(nColumnCount)
For i = 0 To nColumnCount
aLine(i) = oResult.getString(i+1)
Next i
aData(nUpperBoundary) = aLine
Loop
oRange = oSheet.getCellRangeByPosition(0,0,nColumnCount,nUpperBoundary)
oRange.setDataArray(aData)
Dim args(0) as New com.sun.star.beans.PropertyValue
Dim Dateiname
args(0).Name = "Overwrite"
args(0).Value = True
'Dateiname = GetVariable(oDoc,"Screening_Tabelle_1")
'URL = "C:\Users\user\Documents\"
'sURL = ConvertToURL(URL + Dateiname)
'oDoc.storeAsURL(sURL, arg())
End Sub