Basicプログラムの検証をお願いします

よろしくお願いいたします。
クエリの結果をテーブルに保存するBasicプログラムの検証をお願いします
チャットGPT4で作成したクエリー結果をテーブルに保存するLibreOfficeのマクロ言語であるBasicプログラム(以下Basic)です。
Basicはよくわかりません。
どなたか検証していただけないでしょうか。
以下にコード記述します

Sub SaveQueryResultAsTable
    Dim oContext As Object
    Dim oDB As Object
    Dim oQuery As Object
    Dim oResult As Object
    Dim oNewTable As Object

    oContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
    oDB = oContext.getByName("あなたのデータベース名") ' データベース名を指定
    oQuery = oDB.QueryDefinitions.getByName("あなたのクエリ名") ' クエリ名を指定
    oResult = oQuery.execute() ' クエリを実行

    ' 新しいテーブルを作成して結果を保存
    oNewTable = oDB.CreateTable("新しいテーブル名") ' 新しいテーブル名を指定
    oNewTable.Rows = oResult.Rows
    oDB.Tables.insertByName("新しいテーブル名", oNewTable) ' テーブルをデータベースに追加
End Sub

このコードは、指定されたデータベース内の特定のクエリを実行し、その結果を新しいテーブルとして保存するものです。ただし、このコードは一般的な例であり、実際のデータベース名、クエリ名、テーブル名に置き換えて使用する必要があります。

以上です。
よろしくお願いいたします。

実際に動作テストできる、Baseファイルか何かをアップロードして頂ければ、こちらでもテストできると思います。

回答ありがとうございます。
遅くなりました、サンプルデーターベースをアップロードしました。
使えると思います。よろしくお願いいたします。

2024年7月1日(月) 21:34 hidemune via Ask LibreOffice <noreply@ask.libreoffice.org>:

sanpuru.odb (5.4 KB)
検証用のサンプルデーターベースをアップロードします

動かなかったので、私なりに
https://wiki.documentfoundation.org/Documentation/BASIC_Guide#Databases
https://openoffice3.web.fc2.com/OOoBasic_Base.html
を参考にして作ってみました。

sanpuru(firebird).odb (10.4 KB)
sanpuru(hsqldb).odb (7.3 KB)

IDなしでテーブル作れるのかな?

BASEには、マクロの記録もなく、[ツール]>[開発ツール]もなくて
情報も少なくて難易度高め。

1 Like

https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1sdbc_1_1XConnection.html#a41879a91d8ac21b4138f8a65fba3678b