1

I'm trying to get value from textfield on the form.

sub Test(oEv)

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

end sub

There is an Exception: "Type: com.sun.star.container.NoSuchElementException" on the line "textBox = oForm.getByName". I have a text field with the name "Description" on the same form, where is the button I press to run this macro. What is wrong here?

Kiryl Tkach
  • 3,118
  • 5
  • 20
  • 36

1 Answers1

2

Check that the name is the same case, not description.

Also, use the Form Navigator to determine whether the control is under the form in the hierarchy.

Have you tried using an introspection tool such as MRI or XrayTool to view the properties of oForm? With the tool, expand the form to see if it contains the Description control.

Often in Base, it is better to deal with the form as a recordset rather than reading the controls. Here is some sample code:

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

For more ideas, see https://forum.openoffice.org/en/forum/viewtopic.php?f=39&t=38725.

Jim K
  • 12,824
  • 2
  • 22
  • 51
  • Thanks for your advice. I tried MRI, but it couldn't help me to find solution. Then I tried to restart LibreOffice - and everything worked! Don't know what caused this problem. – Kiryl Tkach Sep 29 '16 at 14:00