PDA

Vollständige Version anzeigen : Ufo steuern


Wile E G
11.07.2001, 09:24
Hi
ich hab ein formular(UFrmFuA) in dem mit folgendem befehl ein optionkästche gelöscht wird:

Public sub löschen()
Forms!UFrmFuA.Controls!OptA2 = False
(info: OptA2 ist ungebunden)

das funktioniert auch.

nun binde ich dieses formular in ein ein anderes als ufo ein. und rufe nun vom hfo mit
Me.UFrmFuA.löschen (danke kurt ;) )

dieses sub auf.
Aber er löscht nichts?!?! nichtmal eine fehlermeldung bringt er (a97 lässt sich diese chance tatsächlich entgehen ;) )
ich hab bestimmt nur wieder mal ein punkt oder so vergessen. kann mich jemand korrigieren?
Gruß Wile E.G.

Kurt aus Kienitz
11.07.2001, 09:37
Hallo,

Ist nur so eine Idee, meine aber in der Sub Löschen könnte ein Me.Repaint oder Me.Refresh nicht schaden.

Morli
11.07.2001, 09:40
Hallo Wile E.G.,

die Syntax für den Aufruf eine Controls im UFo wurde doch jetzt schon so auf genannt :eek:

Me!UFO.Form!Control.Visible = False

Also immer bedenken das UFo nochmal mit .Form als solches anzusprechen!

Gruß

Rainer ;)

Wile E G
11.07.2001, 09:41
hi kurt,
habe beides schon ausprobiert, aber es will nicht.
hab ich einen logikfehler?
gruß wile e.g.

Wile E G
11.07.2001, 09:48
hi rainer,

aber wenn ich die sub im ufo liegen hab, dann kann ich das doch nicht so machen oder?
(habs eben getestet, access ist der gleichen meinung und hat dies durch eine fehlermeldung auch gleich kundgetan)
und die sub muß im ufo bleiben! (leider)
aber vielleicht hast du nochn tip.
gruß Wile E.G.

Kurt aus Kienitz
11.07.2001, 09:55
Hallo,

Die Sub liegt im UFO, dann probier doch mal

Me.OptA2 = False

oder

Me.Controls("OptA2") = False

Ist das Kontroll eigentlich gebunden ?

Wile E G
11.07.2001, 10:02
hi kurt
hab beides schon ausprobiert, geht leider nicht ):
p.s. das control ist ungebunden! (dient nur zur anzeige, wenn ich es aus dem hfo auf true setzte geht es auch, nur das falsen aus dem ufo geht nicht)
hast du noch eine idee?
gruß wile e.g.

Kurt aus Kienitz
11.07.2001, 10:08
Hallo,

Also ich habe ein UFO mit folgender Function:

Public Function KennzLoeschen()

Me.BerJN = False

End Function

BerJN ist der Name der Checkbox.

In meinem HF habe ich einen Button mit folgenden Code:

Private Sub PbUFOScann_Click()

Dim vVAr As Variant

vVAr = Me.UFOArtikel.Form.KennzLoeschen

End Sub

UFOArtikel ist der Name des Unterformular-Controls im HF.

Was soll ich Dir sagen, das funktioniert :)
Was ist da anders als bei Dir ?

Wile E G
11.07.2001, 10:14
hi kurt,
danke dass du dir mein problem so zu herzen nimmst!

also du hast in deinem hfo

Private Sub PbUFOScann_Click()
Dim vVAr As Variant
vVAr = Me.UFOArtikel.Form.KennzLoeschen
End Sub

Meine frage: warum legst du den prozeduraufruf auf eine variable und warum funktioniert es? müsste nicht auch

Private Sub PbUFOScann_Click()
Me.UFOArtikel.Form.KennzLoeschen
End Sub

funktionieren?
gruß wile e.g.

Kurt aus Kienitz
11.07.2001, 10:26
Hallo,

Da könnte daß Problem liegen :)
Als ich versucht habe KennzLoeschen als Prozedur aufzurufen, gab's eine Fehlermeldung (Fehler beim kompelieren, Methode oder Objekt nicht vorhanden).
Als ich aus KennzLoeschen eine Function gemacht habe, gab's den Fehler nichtmehr.

Wile E G
11.07.2001, 10:40
danke kurt!!!
hab das problem gelöst.
woran es letztlich hing weiß ich nicht, da ich relative viel umgestellt hab.
(von sub auf function, von löschen auf loeschen......ich weiß ist blöd soviel auf einmal umzustellen, da kein lerneffekt, aber ich hatte die schnauze voll von den vielen fehlermeldungen wegklicken jedesmal)
aber dank deiner hilfe geht es auf alle fälle jetzt.
aber nochmal zu deinem beispiel, ich habe immer noch nicht kapiert, warum du den functionsaufruf au die variable (vVAr) gelegt hast? könntest du mir da nochmal kurz antworten, des besseren verständnisses wegen ;)
aber nochmals danke
Wile E.G.

Kurt aus Kienitz
11.07.2001, 10:50
Hallo nochmal,

Warum ich aus KennzLoeschen ein Function gemacht habe hatte ich ja schon geschrieben.

Nun hat eine Function die Eigenschaft einen Wert zurückzuliefern, so daß Access darauf besteht daß der Funktionsaufruf in einer Zuweisung oder einem If-Then erfolgt.

Die Deklaration von KennzLoeschen sieht so aus:

Public Function KennzLoeschen()

Da kein Typ angegeben ist, wird default-mäßig der Typ Variant angenommen.
Da in der Funktion kein Return-Wert gesetzt wird, wird default-mäßig ein Null zurückgeliefert.

Beim Auruf der Funktion in einer Zuweisung muß die entsprechende Variable also einen NULL-Value aufnehmen können. Daß können nur Variabelen vom Typ Variant.

Wile E G
11.07.2001, 10:58
hi kurt
theoretisch ist mir das jetzt klar, aber ich habe die function trotzdem mit:
Me.UFrmFuA.Form.loeschen
aufgerufen und es geht ohne fehler.
komisch oder?
Gruß Wile E. G.