{"id":55000586,"date":"2008-04-01T00:00:00","date_gmt":"2021-03-22T16:15:14","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=586"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Zugriff_auf_Daten_in_Formularen_und_Steuerelementen","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/","title":{"rendered":"Zugriff auf Daten in Formularen und Steuerelementen"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg06.met.vgwort.de\/na\/49559d53432644fb82ac3cde105fe91e\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Immer wieder tauchen in Foren und Newsgroups Fragen auf, wie man auf die in den Formularen und deren Steuerelementen enthaltenen Daten zugreifen kann. Dieser Beitrag soll die f&uuml;r den Zugriff notwendigen Techniken vorstellen und behandelt dabei nicht nur einfache Steuerelemente, sondern auch Kombinationsfelder, Listenfelder oder in Unterformularen enthaltene Daten.<\/b><\/p>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Zugriff auf die Datenherkunft des Formulars<\/p>\n<p>Voraussetzung f&uuml;r diesen und die folgenden Abschnitte ist, dass das Formular, dessen Daten Sie abfragen m&ouml;chten, an eine Datenherkunft gebunden ist. Dabei spielt es keine Rolle, ob es sich dabei um eine Tabelle oder eine Abfrage handelt. Soweit keine anderen Angaben folgen, beziehen sich die Beispiele auf ein Formular mit der Tabelle <b>tblArtikel <\/b>der Beispieldatenbank als Datenherkunft.<\/p>\n<p>Am einfachsten ist der direkte Zugriff auf die Werte der in der Datenherkunft eines Formulars angegebenen Felder: Er kann sogar erfolgen, wenn gar kein Textfeld oder ein anderes an ein Feld der Datenherkunft gebundenes Steuerelement im Formular enthalten ist. Wenn Sie also ein nacktes Formular mit einer Tabelle als Datenherkunft ausstatten, k&ouml;nnen Sie wie folgt auf die Feldinhalte des aktuellen Datensatzes zugreifen &#8211; zum Beispiel auf das Feld <b>Artikelname <\/b>(das Formular hei&szlig;t <b>frmBeispiel<\/b>, der aktuelle Datensatz ist der erste entsprechend der Sortierung der Datenherkunft beziehungsweise einer nachtr&auml;glich festgelegten Sortierung):<\/p>\n<pre>Forms!frmBeispiel!Artikelname<\/pre>\n<p>Es funktioniert aber auch die Version mit dem Punkt, auch wenn dies keine empfohlene Variante ist:<\/p>\n<pre>Forms!frmArtikel.Artikelname<\/pre>\n<p>Wenn Sie nun ein Feld der Datenherkunft, zum Beispiel das oben verwendete Feld <b>Artikelname<\/b>, in den Entwurf des Formulars ziehen und in die Formularansicht wechseln, funktioniert dies weiterhin.<\/p>\n<p>Die Frage ist nur: Worauf bezieht sich das nun &#8211; auf das Textfeld-Steuerelement, das ja beim Einf&uuml;gen automatisch den Namen <b>Artikelname <\/b>erh&auml;lt, oder auf das Feld <b>Artikelname <\/b>der Datenherkunft Die Antwort l&auml;sst sich leicht herleiten: Stellen Sie einfach die Eigenschaft <b>Steuerelementinhalt <\/b>des Textfeldes auf einen Wert wie <b>=&quot;Test&quot; <\/b>ein. Die obigen Ausdr&uuml;cke liefern dann den Wert <b>Test <\/b>zur&uuml;ck und beziehen sich damit auf das Textfeld namens <b>Artikelname <\/b>und nicht auf das gleichnamige Feld der Datenherkunft. <\/p>\n<p>Den darin enthaltenen Wert erhalten Sie aber ganz sicher mit folgendem Ausdruck:<\/p>\n<pre>Forms!frmArtikel.Recordset!Artikelname<\/pre>\n<p class=\"zwischen-berschrift-oberer-spaltenrand\">Textfelder<\/p>\n<p>Wenn Sie Missverst&auml;ndnissen vorbeugen m&ouml;chten, benennen Sie die Textfelder und sonstige Steuerelemente, die Sie per Drag and Drop aus der Feldliste in das Formular gezogen haben, entsprechend Ihrer Lieblingskonvention f&uuml;r die Benennung von Steuerelementen um. Um nur die g&auml;ngigsten zu nennen, m&uuml;sste das Textfeld <b>Artikelname <\/b>nun <b>txtArtikelname <\/b>und das Kombinationsfeld <b>KategorieID <\/b>jetzt <b>cboKategorieID <\/b>hei&szlig;en &#8211; weitere Pr&auml;fixe sind <b>lst <\/b>f&uuml;r Listenfelder, <b>chk <\/b>f&uuml;r Kontrollk&auml;stchen und so weiter.<\/p>\n<p>Die oben erw&auml;hnte Form des Zugriffs auf den Wert eines Textfelds lautet dann:<\/p>\n<pre>Forms!frmArtikel!txtArtikelname<\/pre>\n<p>Innerhalb des Klassenmoduls des aktuellen Formulars kann der Bezug auf das Formular durch <b>Me <\/b>ersetzt werden:<\/p>\n<pre>Me!txtArtikelname<\/pre>\n<p>In den folgenden Abschnitten gehen wir davon aus, dass der Zugriff von au&szlig;erhalb des Formulars erfolgt; wenn Sie vom Klassenmodul des Formulars aus zugreifen m&ouml;chten, k&ouml;nnen Sie <b>Forms!&lt;Formularname&gt;<\/b> durch <b>Me <\/b>ersetzen.<\/p>\n<p>Der Bezug auf <b>txtArtikelname <\/b>liefert aber auch nur den Wert des Textfelds zur&uuml;ck, weil <b>Value <\/b>die Standardeigenschaft von Textfeld-Objekten ist. Korrekterweise sollte man dies ausschreiben:<\/p>\n<pre> Forms!frmArtikel!txtArtikelname.Value<\/pre>\n<p>Der Wert eines gebundenen Textfelds stimmt aber l&auml;ngst nicht immer mit dem &uuml;berein, was darin steht. &Atilde;&#8220;ndern Sie einmal den Text, ohne das Textfeld zu verlassen, und lassen Sie sich den Wert mit der <b>Value<\/b>-Eigenschaft ausgeben: Richtig, dies gibt nicht den angezeigten Wert, sondern immer noch den urspr&uuml;nglichen Wert aus. Auf den angezeigten Text greifen Sie mit der <b>Text<\/b>-Eigenschaft zu:<\/p>\n<pre> Forms!frmArtikel!txtArtikelname.Text<\/pre>\n<p>Die <b>Text<\/b>-Eigenschaft funktioniert allerdings nur, wenn das gew&uuml;nschte Steuerelement den Fokus besitzt. Sobald der Fokus auf ein anderes Steuerelement f&auml;llt, &uuml;bernimmt Access den angezeigten Ausdruck &uuml;brigens auch als Wert des Steuerelements, jedoch ohne den Datensatz selbst bereits zu speichern.<\/p>\n<p><b>Kombinationsfelder<\/b><\/p>\n<p>Viele Fragen tauchen in Zusammenhang mit Kombinationsfeldern auf. Das Folgende geht davon aus, dass es sich um ein Kombinationsfeld handelt, dessen gebundenes Steuerelement das erste Feld der Datensatzherkunft ist und das den Inhalt eines oder mehrerer weiterer Felder anzeigt. Die Datensatzherkunft eines einfachen Kombinationsfeldes zur Anzeige der Kategorie eines Artikels lautet dann so:<\/p>\n<pre>SELECT KategorieID, Kategoriename\r\nFROM tblKategorien\r\nORDER BY Kategoriename;<\/pre>\n<p>Im aufgeklappten Zustand sieht ein solches Kombinationsfeld wie in Bild 1 aus. Im vorliegenden Fall sind zwei Informationen interessant:<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2008_02\/Formulardatenzugriff-web-images\/pic001_opt.jpeg\" alt=\"missing image file\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1: Ein aufgeklapptes Kombinationsfeld zur Anzeige der Kategorien eines Artikels<\/span><\/b><\/p>\n<ul>\n<li class=\"aufz-hlung\">der Wert des Kombinationsfeldes, also der Wert des als gebundene Spalte verwendeten Felds der Datensatzherkunft und<\/li>\n<li class=\"aufz-hlung\">der angezeigte Ausdruck.<\/li>\n<\/ul>\n<p>Den Wert erhalten Sie mit diesem Ausdruck:<\/p>\n<pre>Forms!frmArtikel!cboKategorieID<\/pre>\n<p>Dies ist wiederum die vereinfachte Variante des folgenden Ausdrucks:<\/p>\n<pre>Forms!frmArtikel!cboKategorieID.Value<\/pre>\n<p>Den angezeigten Wert f&uuml;r dieses Kombinationsfeld erhalten Sie wie bei einem Textfeld &uuml;ber die Eigenschaft <b>Text<\/b> und zus&auml;tzlich &uuml;ber die Angabe der gew&uuml;nschten Spalte der Datensatzherkunft. Diese wird durch die Eigenschaft <b>Column <\/b>gefolgt durch die in Klammern stehende Nummer der Spalte der Datenherkunft repr&auml;sentiert, wobei <b>0 <\/b>der ersten Spalte entspricht. Hier w&auml;re also folgender Ausdruck richtig:<\/p>\n<pre>Forms!frmArtikel!cboKategorieID.Column(1)<\/pre>\n<p>Daraus l&auml;sst sich leicht ableiten, dass Sie &uuml;ber die nullte Spalte den Wert der gebundenen Spalte ermitteln k&ouml;nnen:<\/p>\n<pre>Forms!frmArtikel!cboKategorieID.Column(0)<\/pre>\n<p><!--30percent--><\/p>\n<p>Dies gilt, wenn Sie das Kombinationsfeld wie allgemein &uuml;blich angelegt haben &#8211; also mit dem ersten Feld der Datensatzherkunft, das dem Prim&auml;rschl&uuml;ssel der zugrunde liegenden Tabelle entspricht, als gebundenem Feld (Eigenschaft <b>Gebundene Spalte <\/b>gleich <b>1<\/b>) und dem zweiten Feld der Datensatzherkunft als angezeigtem Feld (Eigenschaften <b>Spaltenanzahl <\/b>und <b>Spaltenbreite <\/b>gleich <b>2 <\/b>beziehungsweise <b>0cm<\/b>).<\/p>\n<p>Wenn die gebundene Spalte eine andere als die erste ist, liefert die Eigenschaft <b>Value <\/b>des Kombinationsfelds zwar den Wert der gebundenen Spalte, aber <b>Column(0) <\/b>nicht, denn die erste Spalte entspricht ja nicht dem gebundenen Feld. Andere Konstellationen als die hier verwendete sind aber eher selten.<\/p>\n<p><b>Weitere Spalten von Kombinationsfeldern<\/b><\/p>\n<p>&Atilde;-fter kommt hingegen der Fall vor, dass man weitere Spalten der Datensatzherkunft zwar nicht anzeigen, aber trotzdem direkt nach der Auswahl eines Eintrags durch den Benutzer auswerten m&ouml;chte.<\/p>\n<p>Dies geschieht ganz einfach durch Variieren des Index der <b>Column<\/b>-Eigenschaft &#8211; <b>Column(2) <\/b>liefert beispielsweise den Wert der dritten Spalte der Datensatzherkunft. Dazu muss die Eigenschaft <b>Spaltenanzahl <\/b>nicht unbedingt gr&ouml;&szlig;er als <b>2 <\/b>sein &#8211; es reicht, wenn die Felder in der Datensatzherkunft enthalten sind. Das Gleiche gilt nat&uuml;rlich auch, wenn die Felder als weitere Spalten sichtbar sind.<\/p>\n<p><b>Listenfelder<\/b><\/p>\n<p>Listenfelder &auml;hneln in vielen Beziehungen den Kombinationsfeldern. Sie erlauben allerdings, mehr als nur einen Datensatz gleichzeitig anzuzeigen &#8211; was auch das Auslesen der gew&auml;hlten Informationen spannender als bei Kombinationsfeldern macht.<\/p>\n<p>Wenn das Listenfeld einfach nur wie ein Kombinationsfeld gehandhabt werden soll, das nicht nur den ausgew&auml;hlten, sondern auch noch weitere Datens&auml;tze anzeigt, verh&auml;lt es sich auch bezogen auf das Auslesen der Daten wie ein Kombinationsfeld: Mit <b>Column(0)<\/b>, <b>Column(1) <\/b>&#8230; lesen Sie die Werte der Felder der Datensatzherkunft f&uuml;r den aktuell ausgew&auml;hlten Datensatz aus und die <b>Value<\/b>-Eigenschaft liefert den Wert der gebundenen Spalte, der auch hier meist dem Prim&auml;rschl&uuml;sselfeld entspricht.<\/p>\n<p>Es gibt aber ja noch zwei weitere Varianten, die Sie mit der Eigenschaft <b>Mehrfachauswahl <\/b>einstellen; mehr dazu weiter unten.<\/p>\n<p>Die beiden Listenfelder des folgenden Beispiels (in der Beispieldatenbank im Formular<b> frmListenfelder <\/b>zu finden) verwenden als Datensatzherkunft die folgende Abfrage, die vier Felder der Tabelle <b>tblArtikel <\/b>enth&auml;lt:<\/p>\n<pre>SELECT ArtikelID, Artikelname, Liefereinheit, Einzelpreis FROM tblArtikel;<\/pre>\n<p>Dabei markiert das erste Feld <b>ArtikelID <\/b>das gebundene Feld und wird nicht angezeigt, die anderen Felder hingegen schon. Daf&uuml;r sorgt die Einstellung der Eigenschaften <b>Spaltenanzahl <\/b>auf <b>4 <\/b>und <b>Spaltenbreiten <\/b>auf <b>0cm;3cm;3cm<\/b>.<\/p>\n<p>Der Einfachheit halber hat das Formular keine Datenherkunft, somit ist auch das Listenfeld nicht an ein Feld der Datenherkunft des Formulars gebunden. Beim &Atilde;-ffnen des Formulars sieht das Listenfeld dann etwa wie in Bild 2 aus; es ist kein Eintrag des Listenfelds markiert. Der folgende Ausdruck liefert daher erwartungsgem&auml;&szlig; den Wert <b>Null <\/b>zur&uuml;ck:<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2008_02\/Formulardatenzugriff-web-images\/pic002_opt.jpeg\" alt=\"missing image file\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2: Ein Listenfeld ohne &#8230;<\/span><\/b><\/p>\n<pre>Forms!frmListenfelder!lstArtikel<\/pre>\n<p>Erst nach der Auswahl eines Eintrags wie in Bild 3 liefert dieser Ausdruck die ID des betroffenen Datensatzes.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2008_02\/Formulardatenzugriff-web-images\/pic003_opt.jpeg\" alt=\"missing image file\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3: &#8230; und eines mit ausgew&auml;hltem Datensatz<\/span><\/b><\/p>\n<p><b>Listenfelder mit <\/b><\/p>\n<pre>Mehrfachauswahl<\/pre>\n<p>Die beiden Einstellungen f&uuml;r die Mehrfachauswahl in Listenfeldern lauten <b>Einzeln <\/b>und <b>Erweitert<\/b>. <b>Einzeln <\/b>erlaubt das Aktivieren und Deaktivieren einzelner Eintr&auml;ge per Klick mit der Maus, <b>Erweitert <\/b>stellt eher das Verhalten von Verzeichnis- und Dateieintr&auml;gen in der Dateiliste des Windows Explorers nach, erlaubt also das Markieren mehrerer zusammenh&auml;ngender Eintr&auml;ge durch Anklicken des ersten und des letzten betroffenen Eintrags bei gedr&uuml;ckter Umschalttaste sowie das Hinzuf&uuml;gen oder Entfernen einzelner Eintr&auml;ge bei gedr&uuml;ckter <b>Strg<\/b>-Taste.<\/p>\n<p>Das Abfragen der <b>Value<\/b>-Eigenschaft beider Arten von Listenfeldern liefert jeweils den Wert <b>Null <\/b>&#8211; egal, ob ein oder mehrere Eintr&auml;ge ausgew&auml;hlt sind oder nicht.<\/p>\n<p><b>Auswahl per Index ermitteln<\/b><\/p>\n<p>Listenfelder mit der Einstellung <b>Einzeln <\/b>oder <b>Erweitert <\/b>f&uuml;r die Eigenschaft <b>Mehrfachauswahl <\/b>offerieren zum Ermitteln der ausgew&auml;hlten Eintr&auml;ge die Auflistung <b>ItemsSelected<\/b>. Mit dem folgenden Ausdruck erhalten Sie beispielsweise den Indexwert des ersten ausgew&auml;hlten Eintrags eines Listenfeldes (hier des Listenfelds <b>lstArtikelEinzeln<\/b>):<\/p>\n<pre>Forms!frmListenfelder!lstArtikelEinzeln. _\r\nItemsSelected(0)<\/pre>\n<p>Dies funktioniert aber auch nur, wenn mindestens ein Eintrag markiert ist! Deshalb sollte man, um das Auftreten eines Fehlers zu vermeiden, zuvor pr&uuml;fen, ob &uuml;berhaupt ein Eintrag markiert ist (<b>ItemsSelected.Count &gt; 0<\/b>) oder direkt eine <b>For Each<\/b>-Schleife programmieren, die alle markierten Listenfeldeintr&auml;ge durchl&auml;uft.<\/p>\n<p>Zuvor allerdings noch das fehlende Detail: Wie oben vielleicht noch nicht deutlich genug hervorgehoben, liefert <b>ItemsSelected <\/b>den Index des markierten Eintrags, aber nicht den Wert der gebundenen Spalte, der &uuml;blicherweise n&ouml;tig ist, um mit den markierten Eintr&auml;gen etwas anzufangen. Dies holt die <b>ItemData<\/b>-Eigenschaft nach, die den Index eines Listenfeldeintrags erwartet (also das Ergebnis von <b>ItemsSelected<\/b>) und den Wert der gebundenen Spalte zu diesem Eintrag liefert. Der passende Ausdruck kommt etwas lang daher:<\/p>\n<pre>Forms!frmListenfelder!lstArtikelEinzeln. _\r\nItemData(Forms!frmListenfelder! _\r\nlstArtikelEinzeln.ItemsSelected(0))<\/pre>\n<p>In einer <b>For Each<\/b>-Schleife &uuml;ber alle markierten Eintr&auml;ge eines Listenfeldes verpackt sieht das schon einfacher aus. Die folgenden Zeilen stammen aus der Ereignisprozedur, die durch die Schaltfl&auml;che <b>cmdAusgabeEinfach <\/b>aus Bild 4 ausgel&ouml;st wird:<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2008_02\/Formulardatenzugriff-web-images\/pic004_opt.jpeg\" alt=\"missing image file\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4: Listenfeld mit Mehrfachauswahl<\/span><\/b><\/p>\n<pre>Dim varEintrag As Variant\r\nFor Each varEintrag In _\r\n    Me.lstArtikelEinzeln.ItemsSelected\r\n    Debug.Print varEintrag, _\r\n    lstArtikelEinzeln.ItemData(varEintrag)\r\nNext varEintrag<\/pre>\n<p>Diese Routine gibt den Index sowie die ID jedes einzelnen Eintrags im Direktfenster aus; falls keine Eintr&auml;ge markiert sind, geschieht nichts weiter.<\/p>\n<p><b>Spalten in der Mehrfachauswahl abfragen<\/b><\/p>\n<p>Fehlt noch der Zugriff auf die einzelnen Spalten eines mit Mehrfachauswahl ausgestatteten Listenfelds: Auch hier funktioniert die <b>Column<\/b>-Eigenschaft, allerdings erwartet sie als zweiten Parameter einen Verweis auf die gew&uuml;nschte Zeile. Listing 1 zeigt ein Beispiel f&uuml;r die Ausgabe des Index, der ID sowie der Werte aller Felder eines jeden ausgew&auml;hlten Datensatzes des Listenfeldes.<\/p>\n<p class=\"kastentabelleheader\">Listing 1: Ausgabe aller Spalten und weiterer Informationen der markierten Listeneintr&auml;ge<\/p>\n<pre>Private Sub cmdAusgabeErweitert_Click()\r\n    Dim varEintrag As Variant\r\n    Dim i As Integer\r\n    For Each varEintrag In Me.lstArtikelErweitert.ItemsSelected\r\n        Debug.Print &quot;Index: &quot;, varEintrag\r\n        Debug.Print &quot;ID: &quot;, Me.lstArtikelErweitert.ItemData(varEintrag)\r\n        For i = 0 To Me.lstArtikelErweitert.ColumnCount - 1\r\n            Debug.Print &quot;Feld &quot; &amp; i &amp; &quot;:&quot;, Me.lstArtikelErweitert.Column(i, varEintrag)\r\n        Next i\r\n    Next varEintrag\r\n    End Sub<\/pre>\n<p><b>Zuletzt angeklickter Eintrag<\/b><\/p>\n<p>Auch der zuletzt durch den Benutzer angeklickte Eintrag l&auml;sst sich ermitteln &#8211; und zwar durch die Eigenschaft <b>ListIndex<\/b>. Der folgende Ausdruck liefert den Index des zuletzt angeklickten Eintrags des Benutzers:<\/p>\n<pre>Forms!frmListenfelder!lstArtikelEinzeln.ListIndex<\/pre>\n<p>Dieser liefert allerdings immer den zuletzt angeklickten Datensatz zur&uuml;ck, auch wenn dieser nicht aus-, sondern abgew&auml;hlt wurde. Wenn Sie ermitteln m&ouml;chten, welcher Eintrag zuletzt ausgew&auml;hlt wurde, m&uuml;ssen Sie zus&auml;tzlich pr&uuml;fen, ob der zuletzt angeklickte Eintrag markiert ist.<\/p>\n<p>Das geschieht mithilfe der Eigenschaft <b>Selected<\/b>, die den Index des zu pr&uuml;fenden Eintrags als Parameter erwartet. <b>Selected <\/b>gibt entweder den Wert <b>True <\/b>oder <b>False <\/b>zur&uuml;ck &#8211; je nachdem, ob der angegebene Eintrag ausgew&auml;hlt ist oder nicht (innerhalb des Formular-Klassenmoduls):<\/p>\n<pre>Debug.Print Me!lstArtikelEinzeln.Selected(Me!lstArtikelEinzeln.ListIndex)<\/pre>\n<p><b>Kontrollk&auml;stchen<\/b><\/p>\n<p>Diese Steuerelemente, die &uuml;blicherweise den Inhalt von <b>Ja\/Nein<\/b>-Feldern repr&auml;sentieren, fragen Sie ganz einfach &uuml;ber ihre <b>Value<\/b>-Eigenschaft ab, die gleichzeitig die Standardeigenschaft ist und daher weggelassen werden kann:<\/p>\n<pre>Forms!frmArtikel!Auslaufartikel<\/pre>\n<p>Im Gegensatz zu Textfeldern wird der Wert direkt beim Bet&auml;tigen &uuml;bernommen, sodass der angezeigte Wert immer mit dem tats&auml;chlichen Wert &uuml;bereinstimmt.<\/p>\n<p><b>Optionsgruppen<\/b><\/p>\n<p>Beim Einsatz von Optionsgruppen ist zu ber&uuml;cksichtigen, dass zwar jede der Optionen einen eigenen Wert besitzt, den die Eigenschaft <b>Optionswert <\/b>speichert (siehe Bild 5), der Wert der aktuell ausgew&auml;hlten Option jedoch &uuml;ber die Eigenschaft <b>Value <\/b>des Rahmen-Steuerelements, in dem sich die Optionssteuerelemente befinden, ermittelt werden muss.<\/p>\n<p><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2008_02\/Formulardatenzugriff-web-images\/pic005_opt.jpeg\" alt=\"missing image file\" \/><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5: Jede Option besitzt einen individuellen Wert.<\/span><\/b><\/p>\n<p>Das sieht im vorliegenden Fall so aus:<\/p>\n<p>Forms!frmOptionsgruppe!ogrWollenOderNichtWollen<\/p>\n<p>Wenn keine Option aktiviert ist, liefert dieser Ausdruck den Wert <b>Null<\/b>, sonst den jeweils angegebenen Ausdruck.<\/p>\n<p><b>Umschaltfl&auml;chen<\/b><\/p>\n<p>Auch Umschaltfl&auml;chen lassen sich ganz leicht auslesen: Sie haben entweder den Wert <b>Null <\/b>(wenn zu Beginn kein anderer Wert festgelegt oder dieser Wert nachtr&auml;glich zugewiesen wird), <b>True <\/b>oder <b>False<\/b>.<\/p>\n<p>Das Beispiel des Formulars <b>frmUmschaltflaeche<\/b> zeigt dies, indem es die Beschriftung der Umschaltfl&auml;che beim Anklicken auf den aktuellen Wert der Umschaltfl&auml;che einstellt.<\/p>\n<p>Der dabei im Ereignis <b>Beim Klicken <\/b>verwendete Code lautet wie folgt:<\/p>\n<pre>If Me!tglBeispiel Then\r\n    Me!tglBeispiel.Caption = &quot;Wahr&quot;\r\nElse\r\n    Me!tglBeispiel.Caption = &quot;Falsch&quot;\r\nEnd If<\/pre>\n<p><b>Registersteuerelemente<\/b><\/p>\n<p>Registersteuerelemente sind zwar im Gegensatz zu den bereits vorgestellten Steuerelementen nicht datengebunden, der Vollst&auml;ndigkeit halber wollen wir jedoch noch zeigen, wie Sie die aktuell aktivierte Registerseite abfragen k&ouml;nnen.<\/p>\n<p>Die einfache Abfrage des Werts des Registersteuerelements liefert dabei den Index der aktuell angezeigten Registerseite:<\/p>\n<pre>Forms!frmRegistersteuerelement!regBeispiel<\/pre>\n<p>Den Namen der ausgew&auml;hlten Seite liefert beispielsweise die f&uuml;r das <b>Bei &Atilde;&#8220;nderung<\/b>-Ereignis des Registersteuerelements hinterlegte Prozedur:<\/p>\n<pre>Private Sub regBeispiel_Change()\r\n    Debug.Print Me.regBeispiel.Pages.Item( _\r\n    Me.regBeispiel).Name\r\n    End Sub<\/pre>\n<p><b>Bezeichnungsfelder<\/b><\/p>\n<p>Auch Bezeichnungsfelder haben eigentlich mit gebundenen Daten herzlich wenig am Hut, aber manchmal bieten sie sich zur Anzeige auch von dynamischen Daten an.<\/p>\n<p>Auf den angezeigten Ausdruck greifen Sie dann &uuml;ber die <b>Caption<\/b>-Eigenschaft zu &#8211; und zwar nicht nur zum Lesen, sondern auch zum Anpassen des Textes.<\/p>\n<\/p>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Formulardatenzugriff.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/BFB54A9A-4D3F-44B5-97CA-A89E0153B220\/aiu_586.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Immer wieder tauchen in Foren und Newsgroups Fragen auf, wie man auf die in den Formularen und deren Steuerelementen enthaltenen Daten zugreifen kann. Dieser Beitrag soll die f&uuml;r den Zugriff notwendigen Techniken vorstellen und behandelt dabei nicht nur einfache Steuerelemente, sondern auch Kombinationsfelder, Listenfelder oder in Unterformularen enthaltene Daten.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022008,662008,44000035,44000023],"tags":[],"class_list":["post-55000586","post","type-post","status-publish","format-standard","hentry","category-66022008","category-662008","category-Datenzugriff_programmieren","category-Mit_Formularen_arbeiten"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Zugriff auf Daten in Formularen und Steuerelementen - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zugriff auf Daten in Formularen und Steuerelementen\" \/>\n<meta property=\"og:description\" content=\"Immer wieder tauchen in Foren und Newsgroups Fragen auf, wie man auf die in den Formularen und deren Steuerelementen enthaltenen Daten zugreifen kann. Dieser Beitrag soll die f&uuml;r den Zugriff notwendigen Techniken vorstellen und behandelt dabei nicht nur einfache Steuerelemente, sondern auch Kombinationsfelder, Listenfelder oder in Unterformularen enthaltene Daten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-22T16:15:14+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg06.met.vgwort.de\/na\/49559d53432644fb82ac3cde105fe91e\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"12\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Zugriff auf Daten in Formularen und Steuerelementen\",\"datePublished\":\"2021-03-22T16:15:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/\"},\"wordCount\":2261,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/49559d53432644fb82ac3cde105fe91e\",\"articleSection\":[\"2\\\/2008\",\"2008\",\"Datenzugriff programmieren\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/\",\"name\":\"Zugriff auf Daten in Formularen und Steuerelementen - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/49559d53432644fb82ac3cde105fe91e\",\"datePublished\":\"2021-03-22T16:15:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/49559d53432644fb82ac3cde105fe91e\",\"contentUrl\":\"http:\\\/\\\/vg06.met.vgwort.de\\\/na\\\/49559d53432644fb82ac3cde105fe91e\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zugriff auf Daten in Formularen und Steuerelementen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Zugriff auf Daten in Formularen und Steuerelementen - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/","og_locale":"de_DE","og_type":"article","og_title":"Zugriff auf Daten in Formularen und Steuerelementen","og_description":"Immer wieder tauchen in Foren und Newsgroups Fragen auf, wie man auf die in den Formularen und deren Steuerelementen enthaltenen Daten zugreifen kann. Dieser Beitrag soll die f&uuml;r den Zugriff notwendigen Techniken vorstellen und behandelt dabei nicht nur einfache Steuerelemente, sondern auch Kombinationsfelder, Listenfelder oder in Unterformularen enthaltene Daten.","og_url":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-03-22T16:15:14+00:00","og_image":[{"url":"http:\/\/vg06.met.vgwort.de\/na\/49559d53432644fb82ac3cde105fe91e","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Zugriff auf Daten in Formularen und Steuerelementen","datePublished":"2021-03-22T16:15:14+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/"},"wordCount":2261,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/49559d53432644fb82ac3cde105fe91e","articleSection":["2\/2008","2008","Datenzugriff programmieren","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/","url":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/","name":"Zugriff auf Daten in Formularen und Steuerelementen - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/#primaryimage"},"thumbnailUrl":"http:\/\/vg06.met.vgwort.de\/na\/49559d53432644fb82ac3cde105fe91e","datePublished":"2021-03-22T16:15:14+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/#primaryimage","url":"http:\/\/vg06.met.vgwort.de\/na\/49559d53432644fb82ac3cde105fe91e","contentUrl":"http:\/\/vg06.met.vgwort.de\/na\/49559d53432644fb82ac3cde105fe91e"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Zugriff_auf_Daten_in_Formularen_und_Steuerelementen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Zugriff auf Daten in Formularen und Steuerelementen"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000586"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000586\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}