PDA

Vollständige Version anzeigen : Unsichtbares Textfeld einblenden


sveddi
18.10.2011, 09:45
Hallo,
ich möchte ein unsichtbares Textfeld in einem Unterformular abhängig von dem Auswahl eines Kombinationsfeldes im Formular einblenden.
Wie kann ich das realisieren?

clsOOP_
18.10.2011, 10:07
Hallo,

Select case me.DeinKombifeld.column(DeineSpalteAufDieDuReagierenWillst)
case 1 'Spaltenwert(e), der/die zum Aublenden führt
me.DeinTextfeld.visible = False
case 2 'Spaltenwert(e), bei dem eingeblendet werden soll - mehrere Spaltenwerte jeweils durch Komma trennen - Textwerte in "" setzen
me.DeinTextfeld.visible = True
end Select

Statt DeinKombifeld und DeinTextfeld setzt Du einfach die Namen Deiner Felder ein.

Schöne Grüße,
Stefan

Edgar Basler
18.10.2011, 10:08
1.) Auswahl eines Kombinationsfeldes
Ich gehe mal davon aus, daß sich die Auswahl auf den Wert bezieht.
Dies kann man ähnlich wie:

if kombinationsfeld = "Test" then

bewerkstelligen.

2.) Felder können über die Eigenschaft "visible" auf sichtbar bzw. unsichtbar gesetzt werden.

Dies kann man ähnlich wie:

feldname.visible = true oder
feldname.visible = false

bewerkstelligen.

sveddi
18.10.2011, 10:31
Die Code wir in Fomular oder Unterformular eingegeben?

sveddi
18.10.2011, 10:49
Private Sub Meinkombifeld_AfterUpdate()
If Meinkombifeld = "M" Then
Forms!Meinunterformular.Meinfeld.Visible = False
If Meinkombifeld = "W" Then
Forms!Meinunterformular.Meinfeld.Visible = True
End Sub

Warum funktioniert es nicht?Im Code ist kein Fehler!

clsOOP_
18.10.2011, 10:55
Na wahrscheinlich sind in Deinem Code doch Fehler - sonst würde er ja funktionieren:-))))
bezieh Dich mal auf die Spalte des Kombifeldes.
Auf Unterformulare bezieht man sich so:
Forms.DeinUnterFormular.Form.DeinFeld.visible=Wert

sveddi
18.10.2011, 11:17
Private Sub Meinkombifeld_AfterUpdate()
If Meinkombifeld.Column(Geschlecht) = "M" Then
Forms.MeinUnterformular.Form.Meintextfeld.Visible = False
End If
If Meinkombifeld.Column(Geschlecht) = "W" Then
Forms.Meinunterformular.Form.Meintextfeld.Visible = True

End If
End Sub

Fehlermeldung Typen unveträglich???

sveddi
18.10.2011, 14:02
was ist im Code falsch?

clsOOP_
18.10.2011, 15:39
Die Column-Eigenschaft ist ein Integer.
Wert aus Spalte 1 = DeinKombifeld.Column(0)
Wert aus Spalte 2 = DeinKombifeld.Column(1)

Dann müßte es nach einem Tag Arbeit gehen;-)

Nicht verzweifeln und immer dran denken - meist ist der Code doch falsch, wenn etwas nicht geht;-)

Schöne Grüße,
Stef

sveddi
18.10.2011, 15:53
Jetzt kommt bei
Forms.Meinunterformular.Form.Meintextfeld.Visible=True eine Fehlermeldung:
Objekt unterstützt diese Eigenschaft oder Methode nicht!
Was ist jetzt falsch?

clsOOP
18.10.2011, 22:32
Hallo,
nimm mal Me.DeinUfoContainer.Form.Controls("DeinTextfeld").Visible=True
Der Bezug direkt auf das Unterformular geht dann schief, wenn das Unterformular anders heißt als der Ufo-Container, in dem das Unterformular drin steckt.
Dein Unterformular ist ja nur die ObjectSource des Ufo-Containers.
Schöne Grüße,
Stef

sveddi
19.10.2011, 09:32
Hallo,
mein Ufo Container ist eine RegisterSeite.Das UFO befindet sich in der erste Seite.
Ich habe nun probiert mitMe.Meineregisterkarte.Meineseite.Form.Controls("MeinTextfeld").Visible=True,
Jetzt bekomme ich Fehler beim Kompilieren.Wie soll die Code koriegiert werden?

clsOOP
19.10.2011, 12:05
Hallo,

das wird ja immer komplizierter bei Dir;-))
Jetzt mußt Du auf der Registerseite wieder den Ufo-Container ansprechen:
Me.Meineregisterkarte.Meineseite.MeinUnterformularContainer.Form.Controls("MeinTextfeld").Visible=True

Na, gehts nu?

sveddi
19.10.2011, 13:13
Ok, wo ist der Name des Unterformularcontainers?

ebs17
19.10.2011, 13:37
Wie heißt denn Dein Unterformular als Control (nicht als Formular)?
=> HFo in Entwurfsansicht öffnen, UFo markieren, im Eigenschaftenblatt nachsehen
Me.<strike>Meineregisterkarte.Meineseite.</strike>MeinUnterformularContainer.Form. _
Controls("MeinTextfeld").Visible=True
Das Register spielt bei der Referenzierung zwischen Haupt- und Unterformular keine Rolle. Etwas kürzer:
Me!MeinUnterformularContainer.Form!MeinTextfeld.Visible = True

sveddi
19.10.2011, 13:51
Danke!Es hat geklappt!