Seite 1 von 1

Weshalb wird die Form nicht erkannt?

Verfasst: Mi, 26.11.2008 15:21
von wega
Hallo zusammen,

ich versuche unter OOo 3.0 eine Form mit folgendem Code anzusprechen:

Code: Alles auswählen

...

dim oDoc as object
dim odrawpage as object
Dim oform as object
dim oList as Object
dim oString as String
...
	oDoc = thisComponent 'das Dokument
	odrawpage = oDoc.Drawpage 'Zeichenfläche des Formulars einer Datenbank
	oForm = odrawpage.Forms.getByName("Hauptfenster") 'Das Formular selbst
	oForm.getByName("LabelField_Suchbegriff").Label	 = "Kom-Nr.?"
	oForm.getByName("TextBox_Suchbegriff").Text = ""

In der Zeile oForm = ... kommt dann die Basic-Laufzeitehlermeldung, dass die form nicht erkannt wird.

Wieso?

mit Gruß
Werner

Re: Weshalb wird die Form nicht erkannt?

Verfasst: Do, 27.11.2008 09:58
von komma4
Ahh, hier das Doppel-posting...

Wie geschrieben: wenn das Formular geöffnet ist...

Auch Dir empfehle ich Xray zum Untersuchen Deiner Objekte

Re: Weshalb wird die Form nicht erkannt?

Verfasst: Do, 27.11.2008 11:31
von wega
Hallo Winfried,

erst mal Danke für Deine Antwort.

Kann es sein, dass sich die Syntax des OOo Basics in der Version 3.0 leicht verändert hat?

Denn mit nachfolgendem Code

Code: Alles auswählen

sub Komnr_Click
	odoc = thisComponent		'dieses Dokument
	odrawpage = oDoc.Drawpage	'Zeichenfläche einer Datenbank
	'oform = odrawpage.Forms.getByName("Verwaltung")	'Name des aktuellen Formulars
	oform = odrawpage.Forms(0) '<-- funktioniert so unter OOo 3.0 !
	oform.getByName("LabelField_Suchbegriff").Label = "Kom-Nr.?"
	oform.getByName("TextBox_Suchbegriff").Text = ""
	
	'Sql = "Select "
	
	'Listbox_schreiben
	'Listbox_erster_Datensatz
end sub
wird das Formular erkannt und auch die Label und Textänderungen vollzogen.

Gruß
Werner

Re: Weshalb wird die Form nicht erkannt?

Verfasst: Do, 27.11.2008 11:52
von komma4
Nein, da hat sich nichts geändert.
Das sind nur zwei unterschiedliche Herangehensweisen:

mit FORMS(0) sprichst Du die erste indizierte Form an, mit der anderen Anweisung gehst Du über den Namen....
Hier funktioniert (immer noch) beides.

Mögliche Fehlerquelle: Schreibweise des Namens (case-sensitive!)
Für Dich gerade ausprobiert:

Code: Alles auswählen

oDok = ThisComponent
oForm = oDok.Drawpage.Forms.getByName( "MainForm" )
oFeld = oForm.getByName( "txtbereich" )
geht!

Re: Weshalb wird die Form nicht erkannt?

Verfasst: Do, 27.11.2008 15:07
von wega
Ich habe Deine schreibweise nachvollzogen und bekomme dann doch noch die alte Fehlermeldung.
Vielleicht bringt das angefügte Bild klarheit.
Hingegen .Forms(0) funktioniert.

mit Gruß
Werner

Re: Weshalb wird die Form nicht erkannt?

Verfasst: Do, 27.11.2008 15:37
von komma4
Dann heisst Dein Formular nicht "Verwaltung"...


nehme folgenden Code und lasse Dir ausgeben, was da ist...

Code: Alles auswählen

oDok = ThisComponent
oDrawPage = oDok.getDrawpage()

oForms = oDrawPage.getForms()
aFormNamen = oForms.getElementNames()

For i = LBound( aFormNamen ) To UBound( aFormNamen ) 
	print aFormNamen( i ) 
Next

Re: Weshalb wird die Form nicht erkannt?

Verfasst: Do, 27.11.2008 15:52
von wega
Hallo Winfried,

Du hast ja so was von Recht.

Aber wieso, die Form ist doch mit dem Assistenten aufgebaut und nennt sich auch "Verwaltung", siehe Bild.
Wie und wo muß ich die form den Umbenennen, damit sie wirklich "Verwaltung" heißt und nich "MainForm"?

Gruß
Werner

Re: Weshalb wird die Form nicht erkannt?

Verfasst: Do, 27.11.2008 16:03
von wega
Danke für Deine Hilfe,

ich habs gefunden: Natürlich in Formulareigenschaften.
Für alle, die ein ähnliches Problem haben, habe ich noch ein Orientierungsbild angehängt.

Viele Grüße und Danke bis zum nächsten mal
Werner

Re: Weshalb wird die Form nicht erkannt?

Verfasst: Do, 27.11.2008 17:29
von komma4
wega hat geschrieben:und nennt sich auch "Verwaltung", siehe Bild.
Das ist der Name der Formular-Datei - wie Du ja auch schon rausgefunden hast ;-)