初めて投稿させていただきます。(よろしくお願いします)
OO4.1.1のBaseを勉強するためデータベースのテーブルを基にしたフォームをウィザード利用して作成しました。
とても簡単にテーブルを更新できるフォームを作成することができてOpenOfficeの利用に期待が膨らんでいきました。
ところが、更新されたテーブルの内容を確認してみると、入力した内容の一部のフィールドが、更新されていませんでした。
調べてみると、手入力したフィールドは、確実に更新されているのですが、マクロで設定した値が更新されていないようでした。
さらに調べてみると、マクロで設定した値もレコード更新時にカーソルが、そのフィールド上にあると更新されるのですが、カーソルのないフィールドは、うまく更新されないようです。
テーブル内の
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です)をご存知の方がいらっしゃいましたら、アドバイスをよろしくお願いします。
DBフォームの表示とテーブルの更新値の不一致
DBフォームの表示とテーブルの更新値の不一致
OpenOffice 4.1.1 ??????????????????????????????????????????????????????
Windows 7 Home Basic SP1 ??????????????????????????????????????????????????????
Windows 7 Home Basic SP1 ??????????????????????????????????????????????????????