von Bitsqueezer » 21. Aug 2019, 13:03
Hallo ekkehard,
kleine Korrektur: IntelliSense listet alles, was aus irgendeiner Collection kommt bzw. anderen Namen, die mit dem Formular zu tun haben.
Wenn Du also unterschiedliche Benennung für Feld und Control hast (bei der Empfehlung schließe ich mich ebenfalls an), dann stammt das Datenfeld aus der Fields-Collection des Recordsets, an das das Formular gebunden wurde, und der Name des Controls aus der Controls-Collection. Ebenso wie viele weitere Namen gelistet werden, etwa alle Eigenschaften und Methoden des Formulares selbst.
Wird nach dem Namen des Objektes nichts weiter angegeben, wird immer die Default-Eigenschaft des Objektes verwendet, was meistens "Value" ist, aber nicht sein muß.
@Dieter: Wenn Du ganz sicher sein willst, das Richtige anzusprechen, mußt Du selbst die Collection verwenden, die dann allerdings nur mit Hilfe der Indexnummer oder des Namens das richtige Element aussuchen läßt. Das hat den Nachteil, daß der Compiler hier nicht unterstützen kann und Fehler erst zur Laufzeit entdeckt werden.
Also: Me.Controls("LetzterZugriff") würde sicherstellen, daß es garantiert ein Control mit diesem Namen ist, aber der Compiler checkt den String nicht. Wenn Du dagegen das Control abweichend mit z.B. "ctl_LetzterZugriff" benennst, dann kannst Du mit Me.ctl_LetzterZugriff auch sicher sein, daß Du auf das Control zugreifst.
Es empfiehlt sich daher immer, auch eine durchgehende Benennung für die Controls zu verwenden. Ich persönlich verwende mittlerweile nur noch "ctl_" als Prefix für alle Controls, früher habe ich das noch nach Controltyp getrennt, sorgt aber nur für mehr Arbeit ohne Nutzen. Hat man nur einen Prefix, findet man alle Controls schön sortiert beieinander in der langen IntelliSense-Liste.
Gruß
Christian
Hallo ekkehard,
kleine Korrektur: IntelliSense listet alles, was aus irgendeiner Collection kommt bzw. anderen Namen, die mit dem Formular zu tun haben.
Wenn Du also unterschiedliche Benennung für Feld und Control hast (bei der Empfehlung schließe ich mich ebenfalls an), dann stammt das Datenfeld aus der Fields-Collection des Recordsets, an das das Formular gebunden wurde, und der Name des Controls aus der Controls-Collection. Ebenso wie viele weitere Namen gelistet werden, etwa alle Eigenschaften und Methoden des Formulares selbst.
Wird nach dem Namen des Objektes nichts weiter angegeben, wird immer die Default-Eigenschaft des Objektes verwendet, was meistens "Value" ist, aber nicht sein muß.
@Dieter: Wenn Du ganz sicher sein willst, das Richtige anzusprechen, mußt Du selbst die Collection verwenden, die dann allerdings nur mit Hilfe der Indexnummer oder des Namens das richtige Element aussuchen läßt. Das hat den Nachteil, daß der Compiler hier nicht unterstützen kann und Fehler erst zur Laufzeit entdeckt werden.
Also: Me.Controls("LetzterZugriff") würde sicherstellen, daß es garantiert ein Control mit diesem Namen ist, aber der Compiler checkt den String nicht. Wenn Du dagegen das Control abweichend mit z.B. "ctl_LetzterZugriff" benennst, dann kannst Du mit Me.ctl_LetzterZugriff auch sicher sein, daß Du auf das Control zugreifst.
Es empfiehlt sich daher immer, auch eine durchgehende Benennung für die Controls zu verwenden. Ich persönlich verwende mittlerweile nur noch "ctl_" als Prefix für alle Controls, früher habe ich das noch nach Controltyp getrennt, sorgt aber nur für mehr Arbeit ohne Nutzen. Hat man nur einen Prefix, findet man alle Controls schön sortiert beieinander in der langen IntelliSense-Liste.
Gruß
Christian