PDA

Vollständige Version anzeigen : Brauche Hilfe bei VBA Code für Kontrollkästchen


Ironangel
27.10.2003, 09:29
Hallo,

ich habe in meinem Formular ein Kontrollkästchen. Wenn ich dieses Kästchen jetzt aktiviere (Haken an) dann möchte ich das in einem Bericht von mir, der mit Hilfe einer Schaltflächen in diesem Formular aufgerufen wird, einige Textfelder sichtbar sind. Wenn der Haken aus ist sollen die Felder nicht sichtbar sein. Ich verwende dafür folgenden Code:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> Report_Open(Cancel <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>)
<span class="TOKEN">If</span> Me(&quot;Kontrollk&auml;stchen28&quot;, &quot;Formulare.Berichtsauswahl&quot;) = <span class="TOKEN">True</span> <span class="TOKEN">Then</span>
Bezeichnungsfeld49.Visible = <span class="TOKEN">True</span>
Bezeichnungsfeld50.Visible = <span class="TOKEN">True</span>
Bezeichnungsfeld47.Visible = <span class="TOKEN">True</span>
<span class="TOKEN">Else</span>
Bezeichnungsfeld49.Visible = <span class="TOKEN">False</span>
Bezeichnungsfeld50.Visible = <span class="TOKEN">False</span>
Bezeichnungsfeld47.Visible = <span class="TOKEN">False</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Klappt aber irgendwie nicht. Hat jemand einen Tip?

racoon0506
27.10.2003, 09:43
If Me("Kontrollkästchen28", "Formulare.Berichtsauswahl" = True Then

Me bezieht sich auf das aktuelle Objekt! Beim Ereignis Report_Open ist das der Bericht. Wenn du von dem Bericht aus auf ein Feld in einem Formular zugreifen willst, dann so:

If Forms!Berichtsauswahl!Kontrollkästchen28=True Then

(Und wahrscheinlich wird das ausblenden der Berichtsfelder im Bereichs-Ereignis "Beim Formatieren" besser aufgehoben sein....)

MRR
27.10.2003, 09:44
Geht es vielleicht so:

Private Sub Report_Open(Cancel As Integer)
If Forms("Berichtsauswahl").Kontrollkästchen28 Then
Bezeichnungsfeld49.Visible = True
Bezeichnungsfeld50.Visible = True
Bezeichnungsfeld47.Visible = True
Else
Bezeichnungsfeld49.Visible = False
Bezeichnungsfeld50.Visible = False
Bezeichnungsfeld47.Visible = False
End If
End Sub

?

Arne Dieckmann
27.10.2003, 09:48
Jan hat es schon bemerkt - verwende das Ereignis "Beim Formatieren" und dann noch etwas kürzer (ohne IF-Anweisung):

Me!Bezeichnungsfeld49.Visible = Forms!Berichtsauswahl!Kontrollkästchen28
Me!Bezeichnungsfeld50.Visible = Forms!Berichtsauswahl!Kontrollkästchen28
Me!Bezeichnungsfeld47.Visible = Forms!Berichtsauswahl!Kontrollkästchen28

Ironangel
27.10.2003, 10:16
Danke für die Antworten.

Wo finde ich denn "Beim Formatieren"?

Ironangel
27.10.2003, 10:31
Mist,

was ich vorhatte klappt überhaupt nicht. Ich wollte mit dem ausblenden vermeiden das ein Unterformular aufgerufen wird. Das Unterformular wird zwar nicht angezeigt aber trotzdem aufgerufen. Wie kann ich denn vermeiden das mein Unterformular nicht mit aufgerufen wird?

racoon0506
27.10.2003, 10:34
Wenn die Bezeichnungsfelder z.B. im Detailbereich stehen, dann schau dir mal die Eigenschaften des Bereiches an. Dort solltest du dann auch das Ereignis finden.....

zur letzten Frage: Ein Bericht erstellen, in dem dieser Unterbericht nicht drin ist.....

Ironangel
27.10.2003, 11:17
Ok, Danke