【解決】マクロでリストボックスを選択、保存ができません

データベース (Base) について
返信する
四間飛車
記事: 10
登録日時: 9月 27, 2012, 4:21 pm

【解決】マクロでリストボックスを選択、保存ができません

投稿記事 by 四間飛車 »

いつもお世話になっています。

フォーム上にあるリストボックスの項目を選択し、データベースに保存する、というマクロを作成中です。
「リストボックスの項目を選択」までは意図した動きをするのですが、データベースに保存することができずに困っています。
ご教授いただけますよう、よろしくお願い致します。
------------------------------------------
【環境】
OS:Win7/OOo:3.4.0
------------------------------------------
【データベース】
「fld」というフィールドがあります。
レコードは1つあり、「fld」には「1」が入っています。
------------------------------------------
【フォーム】
「fld」という名前のリストボックス(リストの項目は、0、1、2)
マクロボタン(Sub test2012_10_18()が割り当てられた)
保存ボタン(アクションに「レコードの保存」)
があります。
------------------------------------------
【マクロ】

コード: 全て選択

Sub test2012_10_18()
	Dim oDoc As Object
	Dim oDrawPage As Object
	Dim oForm As Object
	Dim oListbox As Object
	
	oDoc = ThisComponent
	oDrawPage = oDoc.getDrawPage()
	oForm = oDrawPage.getForms().getByName("MainForm")
	oListbox = oForm.getByName("fld")
	oListBoxCtrl = ThisComponent.getCurrentController().getControl(oListBox)
	oListBoxCtrl.selectItemPos(2, True)
	'oForm.getByName("fld").SelectedItems = Array(2)'この1行を上記3行に変えて動かすと、保存ボタンがFalse
End Sub
------------------------------------------
【マクロを使うと保存できません】
このフォームを開くと、リストボックスは「1」が表示されます。
 ↓
マクロボタンを押すと、リストボックスは「2」が表示されます。
 ↓
保存ボタンを押します(コメントアウト部分と差し替えると、保存ボタンは押せません)
 ↓
フォームを閉じて、もう一度開きます。
 ↓
リストボックスは「1」が表示されます。
------------------------------------------
【手動だと意図した動作をします】
このフォームを開くと、リストボックスは「1」が表示されます。
 ↓
手動で、リストボックスを「2」に変更します。
 ↓
保存ボタンを押します。
 ↓
フォームを閉じて、もう一度開きます。
 ↓
リストボックスは「2」が表示されます。
最後に編集したユーザー 四間飛車 [ 10月 20, 2012, 12:08 am ], 累計 1 回
OOo???3.4.0
OS???Win???
ike@九州
記事: 33
登録日時: 4月 30, 2009, 9:05 am

Re: マクロでリストボックスを選択、保存ができません

投稿記事 by ike@九州 »

Commit で同じ動作かもしれません。

oListbox = oForm.getByName("fld")
oListbox.SelectedItems = Array(2)
oListbox.Commit
四間飛車
記事: 10
登録日時: 9月 27, 2012, 4:21 pm

Re: マクロでリストボックスを選択、保存ができません

投稿記事 by 四間飛車 »

お応えいただきまして、ありがとうございます。

教えていただいたコードに書き換えますと、ちゃんと保存され意図した動きをしています。
ほんとうに助かりました。ありがとうございます。

つまずくたびに、OOoユーザー会のQ&Aを検索しています。
そちらでも、ike@九州さんはよくお見かけしていて、多くのことを学ばせていただいております。

これからもよろしくお願い致します。
OOo???3.4.0
OS???Win???
返信する

“Base”に戻る