ich arbeite mich neu in Base ein. Habe SQL-Kenntnisse und ein bisschen Erfahrung mit OOo-Makros (lerning by doing).
In meiner PostgreSql-DB, die über JDBC mit OOo verbunden ist, sind meine Tabellen und Views zur besseren Strukturierung in Schemata abgelegt. Das Standard-Schema heißt „public“.
Innerhalb von Base kann ich die einzelnen Schemata auch sehen und auch die betreffende Tabelle „tbl_test“, aber wenn ich mit folgenden Code auf ein selbst erstelltes Schema „test“ zugreifen möchte, erhalte ich eine Fehlermeldung in der mit *** gekennzeichneten Zeile:
Code: Alles auswählen
sub test
Dim oDatenquelle as Object, oHandler as Object, oDatVerb as Object
Dim oStatement as Object, oErgSet as Object
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDatenquelle = DatabaseContext.getByName("tagebuch")
oDatVerb = oDatenquelle.getConnection("","")
oStatement = oDatVerb.createStatement()
oErgSet = oStatement.executeQuery("SELECT ""vorname"" FROM ""test.tbl_test""" ) ***
Dim s as string
if not isNull(oErgSet) then
Do while oErgSet.next
s = s & oErgSet.getString(1) & CHR(13)
loop
end if
MsgBox "Vornamen: " & chr(13) & s
end sub
Merkwürdigerweise funktioniert folgender Code in einem außerhalb von Base gespeicherten Formular:
Code: Alles auswählen
sub test1
sFile = "H:\Tagebuch\frm_test.odt"
sURL = ConvertToURL(sFile)
Dim myProps(0) as New com.sun.star.beans.PropertyValue
myProps(0).Name="ReadOnly"
myProps(0).Value = true
oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, myProps())
oForm = oDoc.DrawPage.Forms(0)
oForm.DataSourceName = "tagebuch"
oForm.CommandType = 0 'Tabelle
oForm.Command = "test.tbl_test"
oForm.reload
end sub
Viele Grüße und vielen Dank für eure Hilfe im Voraus!
Christiana