0

我尝试熟悉 LibreOffice Base 上 Macro 和 UNO API 的使用,我尝试使用 UNO OfficeDatabaseDocument 打开我的 .odb 文件(此处的文档:https ://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sdb_1_1OfficeDatabaseDocument .html#a3d0b1f053d53f5b196e4c19e55a519ae ) 玩 UNO 并学习使用它们。

Function MyClubOfficeDatabaseDocument()
    Dim MyClubURL(0) As New com.sun.star.beans.PropertyValue
    MyClubURL(0).Name = "Chemin d'accès vers la base de donnée MyClub"
    MyClubURL(0).Value = "/Users/faisalsalhi/Desktop/MyClub/MyClub.odb"

    MyClubOfficeDatabaseDocument = CreateUnoService("com.sun.star.sdb.OfficeDatabaseDocument")
    MyClubOfficeDatabaseDocument.load(MyClubURL)
End Function

我收到一个运行时错误,说我没有足够的堆栈内存来执行此操作。

4

1 回答 1

0

由于设置了无限递归,您的堆栈内存即将用完。也就是说,您的函数 ,MyClubOfficeDatabaseDocument在其自身内部被调用,然后它会一次又一次地调用自己,一次又一次,无限循环。

解决此问题的唯一方法是消除无限递归。

您应该能够通过简单地更改函数名称或变量名称来修复它。例如,您可以将函数名称更改为LoadMyClubOfficeDatabaseDocument.

于 2019-08-23T11:18:34.607 回答