da aber sehr viele Felder aus der Datenbank in das Textdokument übernommen werden müssen (mehrfach Verwendungen der Feldbefehle muß möglich sein) , dauert das sehr lange (geschachtelte Schleifen).
Früher unter StartOffice5.1(2) war das einfach mit Selection.DataUpdateFields
kennt jemand eine schnellere Lösung?
Code: Alles auswählen
sub Test4
Dim myDataBaseContext as Object
Dim myStatement as Object
Dim ResultSet as Object
Dim oTxt as Object
Dim oFeld as Object
Dim i as integer
Dim s as string
myDataBaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
myStatement = myDataBaseContext.getByName("Adreßbuch").getConnection("","").createStatement()
ResultSet=myStatement.executeQuery("SELECT * FROM Adressen WHERE FIRMA = 'Test1'")
if not IsNull(ResultSet) then
ResultSet.next ' nur den ersten Datensatz verwenden
' while ResultSet.next ' alle gefundene Datensaetze verwenden
for i=1 to ResultSet.Columns.Count
oTxt=thiscomponent.getTextFields().createEnumeration()
while oTxt.hasmoreElements()
oFeld=oTxt.nextElement
if ofeld.supportsService("com.sun.star.text.TextField.Database") then
if ResultSet.Columns.ElementNames(i-1)=ofeld.Textfieldmaster.DataColumnName then
oFeld.Content=ResultSet.getString(i)
endif
endif
wend
next i
' wend ' alle gefundene Datensaetze verwenden
endif
msgbox "Fertig"
end sub