1

フォームのテキストフィールドから値を取得しようとしています。

sub Test(oEv)

oForm = oEv.Source.Model.Parent
textBox = oForm.getByName("Description")
MsgBox textBox.Text

end sub

「textBox = oForm.getByName」行に「Type: com.sun.star.container.NoSuchElementException」という例外があります。同じフォームに「説明」という名前のテキスト フィールドがあります。このマクロを実行するために押すボタンはここにあります。ここで何が問題なのですか?

4

1 に答える 1

2

名前の大文字と小文字が同じであることを確認してくださいdescription

また、フォーム ナビゲータを使用して、コントロールが階層内のフォームの下にあるかどうかを判断します。

MRIXrayToolなどのイントロスペクション ツールを使用してのプロパティを表示しようとしましたoFormか? ツールを使用してフォームを展開し、Descriptionコントロールが含まれているかどうかを確認します。

多くの場合、Base では、コントロールを読み取るよりも、フォームをレコードセットとして処理する方が適切です。サンプルコードは次のとおりです。

Sub ButtonClickHandler(oEvent as Object)
    'com.sun.star.comp.forms.ODatabaseForm
    oForm = oEvent.Source.Model.Parent
    lDescriptionCol = oForm.findColumn("DESCRIPTION")  ' from underlying query or table
    Print(oForm.getString(lDescriptionCol))
    BasicLibraries.LoadLibrary("XrayTool")
    xray(oForm)
End Sub

その他のアイデアについては、https://forum.openoffice.org/en/forum/viewtopic.php?f=39&t=38725を参照してください。

于 2016-09-29T12:54:15.207 に答える