OpenOffice BASICで、データベースと接続して操作(SQLの実行)ができます。Baseから起動するフォームでは既にデータベースと接続済みなので、その接続を利用できそうです。
ネットで調べるt、ThisComponentからフォームオブジェクトを得る方法はわかります。さらにDbg_Propertiesの手法で探っていったら、ActiveConnectionというプロパティがデータベースとの接続でした。サンプルプログラムを作って見ました。
Sub Test
Dim oDoc As Object
Dim oForm As Object
Dim Connection As Object
Dim Statement As Object
Dim ResultSet As Object
' フォームオブジェクト取得
oDoc = ThisComponent
oForm = oDoc.getDrawPage().getForms().getByName("MainForm")
' コネクションの取得
Connection = oForm.ActiveConnection
' SQLの実行
Statement = Connection.createStatement()
ResultSet = Statement.executeQuery("SELECT ""ほげ"" FROM ""ほげテーブル""")
' 実行結果表示
If Not IsNull(ResultSet) Then
While ResultSet.next
MsgBox ResultSet.getString(1)
Wend
End If
' SQLを閉じる
ResultSet.Close()
Statement.Close()
End Sub
|
赤字部分がデータベースに対するSQLのSELECT文です。
フィールド名やテーブル名はダブルクオートで囲む必要があります。
BASICの文字列中にダブルクオートを入れるので、ダブルクオートが二重になって読みづらいです。