Office: (Office 2016) Form.Controls-Auflistung

Helfe beim Thema Form.Controls-Auflistung in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, folgendes Problem: ich habe ein Formular mit vielen, vielen Feldern, die ich per VBA füllen möchte. Statt die Controls über ihren Namen... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von User, 22. Februar 2016.

  1. Form.Controls-Auflistung


    Hallo,

    folgendes Problem:
    ich habe ein Formular mit vielen, vielen Feldern, die ich per VBA füllen möchte. Statt die Controls über ihren Namen anzusprechen (was vermutlich lange dauert, weil der Name jedesmal gesucht werden muss), möchte ich die Controls über ihren Index ansprechen (was dann sicher schneller wäre).

    Ich habe zwar die Aktiver-Reihenfolge geändert, aber die Auflistung
    forms.controls
    scheint davon nicht beeinflusst zu werden. In dieser Auflistung sind die Controls (vermutlich) in der zeitlichen Reihenfolge ihrer Definition gelistet.

    Wie kann ich die Controls-Auflistung in meine gewünschte Reihenfolge bringen, also genau so wie die Aktivier-Reihenfolge?

    :)
     
  2. Hi,
    Warum ?
    Warum nicht per gebundenem Formular darstellen..
    viele, viele Felder klingt schon mal verdächtig..
     
    fredfred, 24. Februar 2016
    #2
  3. Du hast zwar grundsätzlich recht damit, dass es schneller ist, Objekte in einer Collection über den Index anzusprechen, als über den Namen, aber ich bin sicher, dass du von der Geschwindigkeit her keinen wahrnehmbaren Unterschied feststellen wirst. - Es können maximal ca. 750 Controls in der Collection sein. Das ist für die Rechenleistung moderner Computer sehr wenig.
    Selbst wenn ein minimaler Unterschied spürbar wäre, würde ich diesen lieber zugunsten einer besseren Les- und Wartbarkeit des Codes in Kauf nehmen.

    Die Controls-Collection wird von Access verwaltet und du hast keine verlässliche Möglichkeit die Reihenfolge der Controls darin zu beeinflussen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  4. Form.Controls-Auflistung

    Ein gebundenes Formular kommt nicht in Erwägung, weil ich z. B. 200 Felder habe. Zum Binden müsste ich dieses Feld als UFO definieren...

    Ich möchte stattdessen meine Daten als Recordset laden und dann verschiedene Daten eines jeden Records (per VA in die gewünschte Form gebracht) meinen Feldern zuordnen.

    Mein Recordset hat immer die gleiche Größe (entsprechend der Felder in meinem Formular).

    Ich möchte einfach mein Recordset durchloopen, meine Daten zusammenbasteln und in meine Felder schreiben. Dabei wäre es gut, wenn der Recordset-Index mit dem Controls-Index übereinstimmen würde oder durch einfache Berechnung der Controls-Index ermittelt werden könnte.

    Vielleicht so:

    me.controls(tabindex(i))
     
  5. \@sonic
    Danke für deine Einschätzung. Ich dachte nur, dass es eher ungünstig ist, den Namen zu verwenden, weil der ja auch erst aus Loop-Variablen zusammengesetzt werden muss, was eben viele String-Operationen bedeutet.

    Ich könte vielleicht einfach onload alle controls durchlaufen und dann den tabindex speichern. So hätte ich eine Referenz-Tabelle.
     
  6. Vor Jahren wusste ich, wie man Access-Systemtabellen anzeigen kann. In diesen Tabellen sind all die Eigenschaften gespeichert und man kann sie verändern, wenn man weiß, was man tut...
     
  7. Hallo Dinkel,

    ich habe den Verdacht, dass du mit deiner Idee in die Irre läufst und/oder falsche Vorstellungen von der Funktionsweise von (gebundenen) Formularen hast. Auch sind deine Versuche deine Vorgehensweise (ansatzweise) zu begründen oder zu erklären kaum nachvollziehbar und wenig überzeugend.

    Was ist das denn für ein Recordset (-> SQL-Code zeigen), mit dem du die Textfelder des Formulars füllen willst? Ist das jeweils nur ein Datensatz oder willst du die Felder des Formulars aus mehreren (wie- / beliebig) vielen Datensätzen füllen? Letzteres kann ja wohl kaum funktionieren.

    BTW:
    Was könnte es schnelleres geben, als ein Control mit seinem Namen anzusprechen? Ich glaube kaum, dass der Zugriff über den Index einen spürbaren Unterschied macht. Zumal der ja auch erstmal ermittelt werden müsste.
    So ist es wohl, zumindest meiner Erfahrung nach.
    Ein Feld als Ufo definieren? Kannst du das bitte ausführlicher beschreiben bzw. erklären?
    Und überhaupt, was spricht gegen ein Ufo?
    Nein, hier irrst du wohl, Systemtabellen sind in der Regel nicht änderbar.
     
    MaggieMay, 24. Februar 2016
    #7
  8. Form.Controls-Auflistung

    Hallo!

    Ohne einen sinnvollen Nutzen dahinter zu sehen:
    Die Reihenfolge des Control-Index hängt von der Reihenfolge des Erstellens ab.
    Falls jemand Lust hat, ein wenig damit zu spielen:
    1. Application.SaveAsText ...
    2. Textdatei öffnen und die Reihenfolge der Definitionsblöcke der Steuerelemente verändern
    3. Application.LoadFromText ...

    => Die Reihenfolge der Steuerelemente in der Controls-Auflistung hat sich geändert

    mfg
    Josef
     
    Josef P., 24. Februar 2016
    #8
  9. OT:
    Warum steigen Sie auf Berge? Weil sie da sind!
    Warum will man die Indexreihenfolge der Controls ändern? Weil es eine gibt!
    /OT:

    Du könntest dir auch eine Transformationstabelle (bzw. Datenfeld) mit RS-Index und Feldnamen anlegen.
     
    Marsu65, 24. Februar 2016
    #9
  10. Das halte ich nach wie vor für ein ziemlich schwaches Argument. Gerade die gebundenen Formulare sind eine Stärke von Access. Ansonsten wäre auch .net eine Überlegung wert.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  11. \@Dinkel
    Vielleicht verrätst du dem Forum etwas mehr über das Projekt.
    Ob gebunden oder ungebunden, ansprechen über Namen oder ID - eigentlich alles nebensächlich, so lange der Zweck unbekannt ist.

    LG Markus
     
    markusxy, 24. Februar 2016
    #11
  12. Moin,

    die Controls haben keine Reihenfolge, sondern eine Position im Layout, HorizontalAnchor und VerticalAnchor: https://msdn.microsoft.com/de-de/lib.../jj250090.aspx

    Wozu brauchst Du denn eine Reihenfolge? Die Controls können doch in beliebiger Folge versorgt werden.

    Gruß Ralf
     
    drambeldier, 24. Februar 2016
    #12
  13. Form.Controls-Auflistung

    In den Systemtabellen sind nur die Container-Objekte (Forms, Reports, Tabellen, Abfragen, etc.) gespeichert, aber keine einzelnen Steuerelemente.
    Und ändern kann man die Daten in den Systemtabellen auf normalen Weg auch nicht.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  14. Wie gesagt, grundsätzlich schon richtig, aber erstens ist der Geschwindigkeitsunterschied nicht spürbar und zweitens machst du deinen Code viel komplizierter und schwerer nachvollziehbar, als er sein müsste.
    Ja, das würde funktionieren. - Aber lohnt es den Aufwand?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  15. Hm. Und wo wären die Eigenschaften der Controls hinterlegt?
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    drambeldier, 24. Februar 2016
    #15
Thema:

Form.Controls-Auflistung

Die Seite wird geladen...
  1. Form.Controls-Auflistung - Similar Threads - Form Controls Auflistung

  2. User form Drucken Position

    in Microsoft Excel Hilfe
    User form Drucken Position: Hallo Leute Habe den Code für das Ausdrucken einer User Form.. Die User Form wird im A4 Blatt gedruckt habe aber links nur einen Abstand von einem 1 cm zum Blattrand. Wie kann ich den Abstand vom...
  3. User Form

    in Microsoft Excel Hilfe
    User Form: Hallo Leute Habe ine User form dort kann ich Daten aus Tabelle Januar füllen. Habe jetzt noch 11 Tabellanblätter eingefügt Februar bis Dezember. Ist es möglich mit der gleichen User form auf...
  4. Gruppieren von Formen und Bildern in Word 2016

    in Microsoft Word Hilfe
    Gruppieren von Formen und Bildern in Word 2016: Hallo! Ich versuche gerade in Word 2016 ein Bild mit einer Form zu gruppieren. Ich möchte, dass das rote Viereck mit dem Bild gruppiert wird, so dass sie zusammen gehören. Mit Strg+Mausklick...
  5. Daten in neue Form umsortieren

    in Microsoft Excel Hilfe
    Daten in neue Form umsortieren: Muss eine vorhandene Excel Datei komplett neu strukturieren, und komme auf keinen grünen Zweig.
  6. Tägliche automatische Verschiebung eines Rechtecks

    in Microsoft Excel Hilfe
    Tägliche automatische Verschiebung eines Rechtecks: Hallo zusammen, ich habe folgendes Anliegen und hoffe jemand kann mir dabei helfen. Wie kann ich das rote Rechteck (siehe Anhang) automatisch am jeweiligen Tag beim erstmaligen Öffnen auf den...
  7. Excel Tabelle Spesen mit Formes nach Tagen

    in Microsoft Excel Hilfe
    Excel Tabelle Spesen mit Formes nach Tagen: [ATTACH] Hallo zusammen, nachdem ich beim letzten Mal so gut geholfen bekommen habe, versuche ich es nochmal mit einem neuen Thema. Mir fehlt auch etwas die Inspiration wie die Tabelle überhaubt...
  8. Bild in Form einfügen, druckt mit "hintergrund"

    in Microsoft Word Hilfe
    Bild in Form einfügen, druckt mit "hintergrund": Bei der Ansicht sieht alles normal aus, aber wenn ich drucke habe ich bei den Bildern einen "Hintergrund". Habe die Bilder auch schon als .png, .jpeg abgespeichert und versucht. Auch mit der...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden