DBフォームの表示とテーブルの更新値の不一致

データベース (Base) について
返信する
kohirai
記事: 1
登録日時: 7月 16, 2015, 2:41 pm

DBフォームの表示とテーブルの更新値の不一致

投稿記事 by kohirai »

初めて投稿させていただきます。(よろしくお願いします)
OO4.1.1のBaseを勉強するためデータベースのテーブルを基にしたフォームをウィザード利用して作成しました。
とても簡単にテーブルを更新できるフォームを作成することができてOpenOfficeの利用に期待が膨らんでいきました。
TestForm.png
ところが、更新されたテーブルの内容を確認してみると、入力した内容の一部のフィールドが、更新されていませんでした。

調べてみると、手入力したフィールドは、確実に更新されているのですが、マクロで設定した値が更新されていないようでした。
さらに調べてみると、マクロで設定した値もレコード更新時にカーソルが、そのフィールド上にあると更新されるのですが、カーソルのないフィールドは、うまく更新されないようです。
TestTable.png
テーブル内の
ID0の行は、タブ順にカーソルを移動させ、カーソルがDAY2にある状態でレコード更新したものです。
ID1の行は、タブ順にカーソルを移動させ、カーソルを最後にANSに移動させてからレコード更新したものです。
ID2の行は、本来更新したい状況を手入力したものです。

作成したマクロは以下のとおりです。
Sub CalcAns
Dim Doc as object
Dim DrawPage as Object
Dim Form as Object
Dim Ct1 as Object 'VAL1
Dim Ct2 as Object 'VAL2
Dim Ct3 as Object 'ANS

Dim vANS as Variant
Dim vVAL1 as Variant
Dim vVal2 as Variant

'get information of the form
Doc = ThisComponent
DrawPage = Doc.DrawPage
Form = DrawPage.Forms.GetByIndex(0)

'get controls (operand1 operand2 and result)
Ct1 = Form.getByName("fmtVAL1")
Ct2 = Form.getByName("fmtVAL2")
Ct3 = Form.getByName("fmtANS")

Ct3.Value = Ct1.Value + Ct2.Value

End Sub

Sub copyDay
Dim Doc as object
Dim DrawPage as Object
Dim Form as Object
Dim Ct1 as Object 'DAY1
Dim Ct2 as Object 'DAY2

Dim dDAY1 as Date
Dim dDAY2 as Date

'get information of the form
Doc = ThisComponent
DrawPage = Doc.DrawPage
Form = DrawPage.Forms.GetByIndex(0)

'get controls (operand1 operand2 and result)
Ct1 = Form.getByName("DAY1")
Ct2 = Form.getByName("DAY2")

Ct2.Date = Ct1.Date
End Sub

私と同様の現象を経験された方、また、その解決方法(回避方法でもOKです)をご存知の方がいらっしゃいましたら、アドバイスをよろしくお願いします。
OpenOffice 4.1.1 ??????????????????????????????????????????????????????
Windows 7 Home Basic SP1 ??????????????????????????????????????????????????????
返信する

“Base”に戻る