ich habe hier ein Makro gefunden, welches ich gerne einsetzen möchte:
http://oooforum.de/viewtopic.php?t=4552 ... 341053d774
Ich weiß jetzt nicht ob der User hier noch aktiv ist.
Der Einfachhalber hier nochmal das Makro:
Code: Alles auswählen
Sub ExportData
REM Speicherpfad
sPath = "C:"
REM Dateiname
sTitle = "Datenexport vom " & Date & ".ods"
REM Name der Abfrage, Tabelle oder SQL-Statement
'sQueryName = "meineTabelle"
'sQueryName = "meineAbfrage"
sQueryName = "SELECT * FROM ""meineTabelle"""
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
args(0).Name = "Overwrite"
args(0).Value = True
oDoc.StoreAsURL(sURL,args)
oDoc.close(False)
End Sub
Ich habe eine Tabelle, in der die eingegeben Daten erfasst werden (über ein Formular).
Name der Tabelle "01_Datenerfassung".
Dann gibt es noch Tabellen in denen Daten vorgegeben sind, die mittels Listenfeld ausgewählt werden können und eine Tabelle "10_Filter_komplett" in der die Suchparameter abgefragt werde.
Abfrage heißt "Abfrage_komplett".
In dem Abfrageformular "10_Abfrage_komplett" gibt es dann die Tabelle "Tabelle" als Formular in dem Formular "Filter".
Jetzt zu meinem Problem. Ich weiß nicht, welche Daten ich genau an Stelle von "meine Tabelle" einsetzen soll.
Die Abfrage ist klar.
Gebe ich beidemale ein "01_Datenerfassung", oder "10_Filter_komplett" und "01_Datenerfassung"werden alle Daten nach Calc übernommen.
Gebe ich ein "01_Datenerfassung" und "10_Filter_komplett", werden nur die Suchparameter exportiert. Ebenso bei 2x "10_Filter komplett".
Zudem frage ich mich, warum die Schriftfarbe bei "SELECT * FROM ""meineTabelle""" rot ist.
Dann würde ich auch noch gerne wissen, ob es möglich ist, die Vorgegebenen Daten, die zur Auswahl bei der Datenerfassung stehen, nicht als Zahl (ID in der Tabelle), sondern als Wort, welches zur ID gespeichert ist, einzutragen.
Kann mir da jemand weiterhelfen? Vielleicht muß ich noch an anderer Stelle etwas ändern. Ich bin kein Programmierer und kenne mich mit Makros nicht aus.Ich bedanke mich schonmal im Voraus und hoffe, alles verständlich beschrieben zu haben.
Grüße