初めて投稿させていただきます。(よろしくお願いします)
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 ??????????????????????????????????????????????????????