Weshalb wird die Form nicht erkannt?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Weshalb wird die Form nicht erkannt?

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Weshalb wird die Form nicht erkannt?

Beitrag von komma4 »

Ahh, hier das Doppel-posting...

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

Auch Dir empfehle ich Xray zum Untersuchen Deiner Objekte
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Re: Weshalb wird die Form nicht erkannt?

Beitrag 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
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Weshalb wird die Form nicht erkannt?

Beitrag 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!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Re: Weshalb wird die Form nicht erkannt?

Beitrag 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
Dateianhänge
DB-Fehler.jpg
DB-Fehler.jpg (80 KiB) 311 mal betrachtet
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Weshalb wird die Form nicht erkannt?

Beitrag 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
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Re: Weshalb wird die Form nicht erkannt?

Beitrag 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
Dateianhänge
Form.jpg
Form.jpg (9.27 KiB) 296 mal betrachtet
wega
****
Beiträge: 148
Registriert: So, 03.06.2007 21:37

Re: Weshalb wird die Form nicht erkannt?

Beitrag 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
Dateianhänge
Form.jpg
Form.jpg (57.46 KiB) 291 mal betrachtet
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Weshalb wird die Form nicht erkannt?

Beitrag 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 ;-)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Antworten